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 -
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
- Pb pour télécharger vidéos depuis logiciel sous Linux Mint
- Logiciel - Guide
- Ce logiciel gratuit et léger optimise complètement votre PC en quelques clics - Guide
- Telecharger downloader pour pc - Télécharger - Téléchargement & Transfert
- Télécharger clavier arabe - Télécharger - Divers Web & Internet
- Télécharger linux mint 32 bits français iso - Télécharger - Systèmes d'exploitation
9 réponses
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
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.
- 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).
Bonne chance
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionBonjour 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.
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
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
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é...
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
