Pb pour télécharger vidéos depuis logiciel sous Linux Mint

Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   -  
Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je possède toujours le même pc portable Lenovo Thinkad X230 qui fonctionne toujours bien malgré que c'est un reconditionné, et je suis toujours sous Linux Mint Cinnamon (avec bureau personnalisé gnome).

Je rencontre un souci pour télécharger des vidéos sur Youtube avec un logiciel.

Il y aurait une dépendance yt-dlp qui poserait problème. Ca me l'affiche dans le logiciel Omniget, mais aussi avec Vidbee qui m'indique en rouge comme quoi yt-dlp pose problème.

Comment puis-je régler le problème, s'il-vous-plaît?

Voici une capture d'écran:

Merci d'avance pour vos réponses.

Cordialement.

Eglantier


Linux / Chrome 147.0.0.0

A voir également:

9 réponses

brucine Messages postés 24197 Date d'inscription   Statut Membre Dernière intervention   4 030
 

Bonjour,

Quelque part, on n'a pas besoin de je ne sais combien de logiciels qui vont réclamer des options et fonctionner quand ils auront le temps, on peut utiliser simplement la ligne de commande.

On doit avoir assez de:
sudo apt update
sudo apt install yt-dlp

Mais je me fais jeter par yt-dlp commande introuvable.

On passe alors par:

sudo apt install python3-yt

Et là on est bon sinon que tant avec ton URL qu'avec, pourquoi pas, au hasard Céline Dion:


yt-dlp "https://www.youtube.com/watch%3Fv%3D9bLD0tVep9M"

https://www.youtube.com/watch%3Fv%3D9bLD0tVep9M

on continue à se faire jeter HTTP error 429 too many requests (donc essayer plus tard).

Dans le cas où malgré tout des options yt-dlp seraient nécessaires, on peut les entrer à la main ou dans le fichier de configuration.


https://doc.ubuntu-fr.org/yt-dlp

0
mamiemando Messages postés 33898 Date d'inscription   Statut Modérateur Dernière intervention   7 914
 

Bonjour,

En réalité, le problème semble venir du fait que le navigateur s'attend à pouvoir invoquer la commande yt-dlp avec l'option --js-runtimes, or la version de yt-dlp actuellement invoquée par ton navigateur ne semble pas supporter cette option.

Dans la mesure du possible, il faut t'assurer que ton navigateur et yt-dlp a été installé via apt. Pour ce faire, tu peux passer par la logithèque ou utiliser les commandes apt adéquates depuis un terminal :

sudo apt update
sudo apt install yt-dlp

Tu peux ensuite contrôler que yt-dlp est bien installé et dans quelle version :

dpkg -l | grep yt-dlp

Concernant les autres logiciels que tu évoques (omniget, vidbee), il en va de même. La difficulté principale est de trouver l'éventuel paquet qui leur correspond (pour cela tu peux utiliser apt search).

  • Si c'est logiciels sont installables via la logithèque, c'est l'idéal
    • Si c'est ce que tu as fait et que l'erreur persiste, c'est que les paquets vidbee et/ou omniget présent un bug qui devrait être remonté.
  • Sinon, deux possibilité :
    • Soit tu ne fais pas le téléchargement au travers de ces logiciels et tu invoques yt-dlp par toi-même depuis un terminal (et bien sûr, sans l'option --js-runtimes). 
      yt-dlp https://www.youtube.com/watch?v=4u6kqRZg2lk
    • Soit tu installes par un chemin détourné une version de yt-dlp qui supporte l'option --js-runtimes espérée par tes logiciels. Dans ce cas, il faudrait indiquer quelle version de Linux Mint tu utilises et la version de yt-dlp actuellement installée. Avec un peu de chance, un paquet Mint (pour une version plus récente de Mint) existe et permettrait ainsi d'avoir l'option qui te manque.

Bonne chance

0
tonhowtf Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 

Si tu rencontres des problèmes comme celui-ci, tu peux toujours rejoindre le Discord d'omniget, je réponds en quelques minutes.

  • Si tu as besoin de yt-dlp et tu peux le télécharger directement depuis omniget.
  • Si tu n'as pas yt-dlp, tes plateformes seront limitées, parce que je n'ai pas encore réussi à faire un downloader pour toutes les plateformes.

Pour télécharger yt-dlp, va dans les paramètres puis dans "outils" et de là, tu pourras l'installer.

Si tu as encore des problèmes après avoir installé yt-dlp, envoie-moi un message, ou rejoins le discord d'omniget, ou ouvre une "issue" sur le dépôt d'omniget et je répondrai au plus vite, je veux le meilleur pour mes utilisateurs.

0
Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   4
 

Bonjour Brucine, Mamiemando, Tonhowtf,

Merci pour vos réponses à tous les trois et pour vos explications.

Je vais regarder dans la journée et je vous tiens au courant.

Cordialement.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   4
 

Bonjour Mamiemando,

J'ai fait ce que tu m'as recommandé dans le terminal, et il est indiqué que yt-dlp est déjà installé vers la version la plus récente.

Par contre, quand j'essaie de télécharger via le terminal, ça m'affiche plein d'erreurs:

[youtube] Extracting URL: https://www.youtube.com/watch?v=4u6kqRZg2lk
[youtube] 4u6kqRZg2lk: Downloading webpage
[youtube] 4u6kqRZg2lk: Downloading ios player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)...
[youtube] 4u6kqRZg2lk: Downloading ios player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (2/3)...
[youtube] 4u6kqRZg2lk: Downloading ios player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (3/3)...
[youtube] 4u6kqRZg2lk: Downloading ios player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] Unable to download API page: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
[youtube] 4u6kqRZg2lk: Downloading android player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)...
[youtube] 4u6kqRZg2lk: Downloading android player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (2/3)...
[youtube] 4u6kqRZg2lk: Downloading android player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (3/3)...
[youtube] 4u6kqRZg2lk: Downloading android player API JSON
WARNING: [youtube] YouTube said: ERROR - Precondition check failed.
WARNING: [youtube] Unable to download API page: HTTP Error 400: Bad Request (caused by <HTTPError 400: Bad Request>)
[youtube] 4u6kqRZg2lk: Downloading player d95a0e03
WARNING: [youtube] 4u6kqRZg2lk: Signature extraction failed: Some formats may be missing
WARNING: Only images are available for download. use --list-formats to see them
ERROR: [youtube] 4u6kqRZg2lk: Requested format is not available. Use --list-formats for a list of available formats
 

Que faire?

Merci d'avance.

Cordialement.

0
mamiemando Messages postés 33898 Date d'inscription   Statut Modérateur Dernière intervention   7 914
 

Bonjour,

Explication du problème

Si tu t'es contenté d'installer yt-dlp ces erreurs sont normales. En effet les commandes (équivalentes). Note qu'ici je mets directement l'ID de la vidéo au lieu de l'URL complète (https://www.youtube.com/watch?v=4u6kqRZg2lk)

yt-dlp -F 4u6kqRZg2lk
yt-dlp --list-format 4u6kqRZg2lk

... affiche plusieurs messages d'avertissement dont :

WARNING: Only images are available for download. use --list-formats to see them

... et la table :

ID  EXT   RESOLUTION FPS │ PROTO │ VCODEC MORE INFO
────────────────────────────────────────────────────
sb3 mhtml 48x27        0 │ mhtml │ images storyboard
sb2 mhtml 80x45        0 │ mhtml │ images storyboard
sb1 mhtml 160x90       0 │ mhtml │ images storyboard
sb0 mhtml 320x180      0 │ mhtml │ images storyboard

... qui correspondent aux effectivement vignettes :

yt-dlp -f sb0 4u6kqRZg2lk

... or j'imagine que tu cherches plutôt à télécharger le son.

Résolution du problème

Comme l'explique cette discussion, l'un des enjeux est de passer les "challenges" javascript, et pour ça il faut installer yt-dlp-ejs. Malheureusement, ce dernier ne semble pas déployé avec le paquet yt-dlp fourni par APT, qui ne fournit pas de paquet yt-dlp-ejs non plus...

Installation

On va donc passer par PIP (le gestionnaire de paquet python) et installer yt-dlp et yt-dlp-ejs dans un dossier (que j'appelle ci-dessous arbitrairement "toto" mais que tu peux nommer comme tu le souhaites) :

sudo apt update
sudo apt install python3 python3-venv
python3 -m venv toto
source toto/bin/activate

Note qu'à ce stade ton invite de commande va être précédée de (toto) ce qui matérialise le fait que tu es dans l'environnement virtuel toto. Passons à l'installation :

pip install yt-dlp yt-dlp-ejs
pip list | grep yt-dlp
which yt-dlp

La seconde commande permet de voir les paquets installés par PIP et ne conserve que les lignes qui contiennent yt-dlp, tu devrais voir :

yt-dlp     2026.3.17
yt-dlp-ejs 0.8.0

La troisième commande permet de vérifier que la commande qu'on utilise est bien celle déployée dans le venv :

/home/mando/toto/bin/yt-dlp

À présent, si on réessaye l'une de ces commandes :

yt-dlp -F 4u6kqRZg2lk
yt-dlp --list-format 4u6kqRZg2lk

... on voit soudainement que de très nombreux identifiants sont apparus, dont ceux des pistes audio :

(toto) (mando@silk) (~) $ yt-dlp -F 4u6kqRZg2lk
[youtube] Extracting URL: 4u6kqRZg2lk
[youtube] 4u6kqRZg2lk: Downloading webpage
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
[youtube] 4u6kqRZg2lk: Downloading android vr player API JSON
[info] Available formats for 4u6kqRZg2lk:
ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2 mhtml 80x45        0    │                  mhtml │ images                                  storyboard
sb1 mhtml 160x90       0    │                  mhtml │ images                                  storyboard
sb0 mhtml 320x180      0    │                  mhtml │ images                                  storyboard
139 m4a   audio only      2 │   15.47MiB   49k https │ audio only          mp4a.40.5   49k 22k [en] low, m4a_dash
249 webm  audio only      2 │   17.39MiB   55k https │ audio only          opus        55k 48k [en] low, webm_dash
140 m4a   audio only      2 │   41.06MiB  129k https │ audio only          mp4a.40.2  129k 44k [en] medium, m4a_dash
251 webm  audio only      2 │   44.80MiB  141k https │ audio only          opus       141k 48k [en] medium, webm_dash
160 mp4   256x144     30    │    5.60MiB   18k https │ avc1.4d400c     18k video only          144p, mp4_dash
278 webm  256x144     30    │   18.09MiB   57k https │ vp9             57k video only          144p, webm_dash
394 mp4   256x144     30    │    7.93MiB   25k https │ av01.0.00M.08   25k video only          144p, mp4_dash
133 mp4   426x240     30    │   12.11MiB   38k https │ avc1.4d4015     38k video only          240p, mp4_dash
242 webm  426x240     30    │   34.27MiB  108k https │ vp9            108k video only          240p, webm_dash
395 mp4   426x240     30    │   14.11MiB   44k https │ av01.0.00M.08   44k video only          240p, mp4_dash
134 mp4   640x360     30    │   23.79MiB   75k https │ avc1.4d401e     75k video only          360p, mp4_dash
18  mp4   640x360     30  2 │  114.79MiB  362k https │ avc1.42001E         mp4a.40.2       44k [en] 360p
243 webm  640x360     30    │   73.41MiB  232k https │ vp9            232k video only          360p, webm_dash
396 mp4   640x360     30    │   26.79MiB   84k https │ av01.0.01M.08   84k video only          360p, mp4_dash
135 mp4   854x480     30    │   37.71MiB  119k https │ avc1.4d401f    119k video only          480p, mp4_dash
244 webm  854x480     30    │   93.34MiB  294k https │ vp9            294k video only          480p, webm_dash
397 mp4   854x480     30    │   43.00MiB  136k https │ av01.0.04M.08  136k video only          480p, mp4_dash
136 mp4   1280x720    30    │   52.58MiB  166k https │ avc1.4d401f    166k video only          720p, mp4_dash
247 webm  1280x720    30    │  160.75MiB  507k https │ vp9            507k video only          720p, webm_dash
398 mp4   1280x720    30    │   69.66MiB  220k https │ av01.0.05M.08  220k video only          720p, mp4_dash
137 mp4   1920x1080   30    │  253.03MiB  798k https │ avc1.640028    798k video only          1080p, mp4_dash
248 webm  1920x1080   30    │  366.80MiB 1157k https │ vp9           1157k video only          1080p, webm_dash
399 mp4   1920x1080   30    │  122.75MiB  387k https │ av01.0.08M.08  387k video only          1080p, mp4_das

Il suffit à présent de lire ce tutoriel pour comprendre comment extraire ce qu'on veut.

yt-dlp 4u6kqRZg2lk -x --audio-format "mp3"

Quand on a fini, on quitte le venv (en appuyant sur ctrl+D ou en lançant) :

deactivate

Le terminal revient à la normal.

Utilisation futures

On réactive simplement le venv, on lance la ou les commandes yt-dlp adéquates, et on quitte le venv

source toto/bin/activate
yt-dlp -F 4u6kqRZg2lk
yt-dlp 4u6kqRZg2lk -x --audio-format "mp3"
deactivate

Bonne chance

0
mamiemando Messages postés 33898 Date d'inscription   Statut Modérateur Dernière intervention   7 914
 

Remarques complémentaires : concernant tes logiciels (omniget...)

Installation dans un venv

Si on suit le message précédent, les logiciels qui utilisent yt-dlp doivent être installés ou lancés depuis le venv, afin qu'ils résolvent correctement la commande. Mais il existe deux autres manières de procéder, plus intrusive concernant l'installation de ton Linux.

Installation au niveau du dossier utilisateur (~/.local)

Tu peux aussi installer les paquets avec PIP en dehors d'un venv dans le dossier d'un utilisateur. Cela peut impacter cet utilisateur puisqu'on installe des paquets pythons qui potentiellement peuvent "court-circuiter" ceux normalement déployés par ta distribution Linux.

Ce n'est pas l'approche la plus propre du monde, mais en pratique elle est parfaitement envisageable et présente des risques modérés.

Dans cas l'installation devient : 

sudo apt update
sudo apt install python3 python3-pip
pip3 install yt-dlp yt-dlp-ejs --break-system-packages

Il faudra probablement modifier ta variable d'environnement PATH pour que le dossier dans lequel la commande sera installé soit effectivement pris en compte. par exemple en ajoutant à la fin de ton fichier ~/.bashrc l'instruction suivante : 

export PATH="$HOME/.local/bin:$PATH"

Installation au niveau du système (/usr/local)

Même principe, au niveau du système, et donc impacte potentiellement tous les utilisateurs et le système. Les risques restent toutefois modérés (on peut toujours nettoyer ce qui pose problème dans /usr/local).

Dans ce cas l'installation devient :

sudo apt update
sudo apt install python3 python3-pip
sudo pip3 install yt-dlp yt-dlp-ejs --break-system-packages

Comme les exécutables sont déployés dans /usr/local/bin qui est déjà dans ton PATH, on n'a même pas à s'en préoccuper.

Bonne chance

0
Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   4
 

Bonsoir Mamiemando,

Merci pour ta réponse et d'avoir pris le temps de m'écrire tout cela.

J'ai rentré les lignes de commande que tu m'as décrites plus haut.

Concrètement, pour télécharger des vidéos de Youtube dans un terminal, je dois rentrer les 4 lignes de commandes que tu as décrites en-dessous de "utilisations futures"? Et ensuite? Je ne comprends pas très bien. Le code c'est pas trop mon truc.

Les dernières lignes de commande que tu m'as décrites, j'ose pas trop essayer, comme tu m'as dit qu'il y avait des risques, même si c'est modéré...

0
Winux01 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   12
 

Salut Églantier,

Pour télécharger des vidéos YouTube ou même ailleurs, sous Linux je connais vidéo downloader, très simple et sans prise de tête, tu le retrouveras dans la bibliothèque Ubuntu ou mint, une fois installé il s'appelle tout simplement téléchargeur vidéo ou un truc du genre, tu peux aussi l'installer en ligne de commande ici: https://flathub.org/en/apps/com.github.unrud.VideoDownloader


0
Eglantier3333 Messages postés 286 Date d'inscription   Statut Membre Dernière intervention   4
 

Bonjour Winux, :)

J'ai trouvé dans la logithèque. Merci beaucoup de m'avoir fait connaître ce logiciel, il fonctionne bien.

0