| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| yt-dlp [Le 20/04/2026, 06:36] – [Sous-titres des vidéos] reformulations, vocabulaire, syntaxe | options, dont embed-subs krodelabestiole | yt-dlp [Le 20/04/2026, 07:34] (Version actuelle) – [Récupérer la liste des flux disponibles pour une vidéo] +description multi (+) krodelabestiole |
|---|
| Il est aussi possible d'utiliser **yt-dlp** sans même l'installer grâce à **[[:Docker]]**. | Il est aussi possible d'utiliser **yt-dlp** sans même l'installer grâce à **[[:Docker]]**. |
| |
| - [[:docker#installation|Installez Docker]] (ou [[https://podman.io/|Podman]]). | - [[:docker#installation|Installer Docker]] (ou [[https://podman.io/|Podman]]). |
| - Créez ensuite un [[:alias]] en [[:tutoriel:comment_sauver_et_restaurer_un_fichier|ajoutant cette ligne]] au fichier ''~/.bash_aliases'' :<file bash .bash_aliases>alias yt-dlp='docker run --rm -it -v $PWD:/downloads jauderho/yt-dlp:latest'</file> | - Créer ensuite un [[:alias]] en [[:tutoriel:comment_sauver_et_restaurer_un_fichier|ajoutant cette ligne]] au fichier ''~/.bash_aliases'' :<file bash .bash_aliases>alias yt-dlp='docker run --rm -it -v $PWD:/downloads jauderho/yt-dlp:latest'</file> |
| - Relancez votre [[:terminal]]. | - Relancer le [[:terminal]]. |
| |
| Le programme sera téléchargé lors de la première exécution de la commande ''[[man>yt-dlp]]'', et beaucoup plus rapide ensuite. | Le programme sera téléchargé lors de la première exécution de la commande ''[[man>yt-dlp]]'', et beaucoup plus rapide ensuite. |
| |
| Lancer l'application ou via le [[:terminal]] (toutes [[:versions]] ou [[:variantes]] d'Ubuntu) avec la [[:commande_shell|commande]] : | Lancer l'application ou via le [[:terminal]] (toutes [[:versions]] ou [[:variantes]] d'Ubuntu) avec la [[:commande_shell|commande]] : |
| yt-dlp [OPTIONS] URL | yt-dlp OPTIONS URL |
| en remplaçant : | en remplaçant : |
| * ''[OPTIONS]'' par les éventuelles options (voir ci-dessous) | * ''OPTIONS'' par les éventuelles options (voir ci-dessous) |
| * et l'argument ''%%URL%%'' par l'[[:web#URL]] de la page web de la vidéo que vous souhaitez télécharger. | * et l'argument ''%%URL%%'' par l'[[:web#URL]] de la page web de la vidéo que vous souhaitez télécharger. |
| |
| ==== Récupérer la liste des flux disponibles pour une vidéo ==== | ==== Récupérer la liste des flux disponibles pour une vidéo ==== |
| |
| Quand plusieurs qualités de flux vidéo (et / ou audio) sont disponibles, **yt-dlp** télécharge //a priori// le meilleur par défaut, mais on peut en préférer un autre, ou une autre langue par exemple. | Quand plusieurs qualités de flux vidéo (et / ou audio) sont disponibles, **yt-dlp** télécharge //a priori// le meilleur de chaque (vidéo + audio) par défaut, mais on peut en préférer d'autres, ou une autre langue par exemple. |
| |
| L'option ''-F'' permet d'afficher (sans les télécharger) la liste des flux disponibles : | L'option ''-F'' permet d'afficher (sans les télécharger) la liste des flux disponibles : |
| C'est ensuite l'option ''-f'' qui permet de lancer le téléchargement de son choix : | C'est ensuite l'option ''-f'' qui permet de lancer le téléchargement de son choix : |
| <code>yt-dlp -f format URL</code> | <code>yt-dlp -f format URL</code> |
| En remplaçant ''format'' par le contenu de la colonne ''ID'' du retour de la commande précédente. | En remplaçant ''format'' par le contenu de la colonne ''ID'' du retour de la commande précédente.\\ |
| | Il peut s'agir : |
| | * d'un flux vidéo (dans ce cas le "meilleur" flux audio est aussi toujours téléchargé) |
| | * ou à l'inverse, d'un flux audio (on garde la vidéo par défaut) |
| | * ou d'une sélection de plusieurs flux audio ou vidéo séparés par le caractère ''+'' (sans espace) :<code>yt-dlp -f piste_vidéo+piste_audio URL</code> |
| | |
| | <note tip> |
| | De la sorte on peut aussi télécharger plusieurs flux audio (avec plusieurs ''+//piste_audio//'' juxtaposés) pour créer un fichier vidéo multilingue. |
| | </note> |
| |
| ==== Télécharger l'audio d'une vidéo ==== | ==== Télécharger l'audio d'une vidéo ==== |
| |
| ==== Sous-titres des vidéos ==== | ==== Sous-titres des vidéos ==== |
| |
| <note> | |
| Si la vidéo est dépourvue de sous-titres (ou que ceux-ci sont incrustés dans l'image vidéo), la dernière ligne du retour de ''yt-dlp -F'' sera ''//URL// has no subtitles''. | |
| </note> | |
| |
| Les options ''%%--write-subs%%'', ''%%--write-auto-subs%%'', ou ''%%--embed-subs%%'' permettent de récupérer les sous-titres. | Les options ''%%--write-subs%%'', ''%%--write-auto-subs%%'', ou ''%%--embed-subs%%'' permettent de récupérer les sous-titres. |
| |
| <note>On peut aussi utiliser l'option ''%%--skip-download%%'' pour télécharger uniquement les sous-titres.</note> | <note tip>On peut aussi utiliser l'option ''%%--skip-download%%'' pour télécharger uniquement les sous-titres.</note> |
| |
| === Lister les langues disponibles === | === Lister les langues disponibles === |
| |
| <code>yt-dlp --list-subs URL</code> | <code>yt-dlp --list-subs URL</code> |
| | |
| | <note> |
| | Si la vidéo est dépourvue de sous-titres (ou que ceux-ci sont incrustés dans l'image vidéo), la dernière ligne du retour sera ''//URL// has no subtitles''. |
| | </note> |
| |
| === Télécharger en définissant la langue === | === Télécharger en définissant la langue === |
| <code>yt-dlp --write-auto-sub --sub-lang LANG URL</code> | <code>yt-dlp --write-auto-sub --sub-lang LANG URL</code> |
| |
| === Télécharger et choisir le format de flux, en même temps que les sous-titres === | === Télécharger et choisir le format des flux, en même temps que les sous-titres === |
| | |
| <code>yt-dlp -f format --write-subs --sub-langs LANG URL</code> | |
| | |
| Ou dans le cas d'une vidéo et audio double-flux (vidéo et audio séparés) : | |
| <code>yt-dlp -f video-only+audio-only --write-subs --sub-langs LANG URL</code> | |
| |
| En remplaçant ''video-only'' et ''audio-only'' par les correspondances de la colonne ''ID'' retournée précédemment (par ''yt-dlp -F''). | <code>yt-dlp -f video+audio --write-subs --sub-langs LANG URL</code> |
| | En remplaçant ''video'' et ''audio'' par les correspondances de la colonne ''ID'' retournée précédemment (par ''yt-dlp -F //URL//''). |
| |
| ==== Exemple complet multilingue ==== | ==== Exemple complet multilingue ==== |
| **yt-dlp** inclut des fonctionnalités variées et puissantes de conversion multimédia (sans réencoder pour ne pas perdre en qualité) et d'encapsulation (//muxing//) au format de son choix (sauf matériel vidéo ancien, le format [[:matroska|MKV]] est généralement l'idéal). Avec les bonnes options il n'est presque jamais nécessaire de recourir à [[:FFmpeg]] ou au moindre outil de {{tagpage>encodage|ré-encodage}}. | **yt-dlp** inclut des fonctionnalités variées et puissantes de conversion multimédia (sans réencoder pour ne pas perdre en qualité) et d'encapsulation (//muxing//) au format de son choix (sauf matériel vidéo ancien, le format [[:matroska|MKV]] est généralement l'idéal). Avec les bonnes options il n'est presque jamais nécessaire de recourir à [[:FFmpeg]] ou au moindre outil de {{tagpage>encodage|ré-encodage}}. |
| |
| Il est par exemple possible de télécharger plusieurs flux audio (ici V.O. et V.F.), de convertir des sous-titres (ici de [[wpfr>WebVTT|VTT]] vers [[wpfr>SubRip|SRT]]), et d'encapsuler le tout à la volée dans un conteneur [[:matroska|MKV]]. Ici toujours pour arte.tv : | Il est par exemple possible de télécharger plusieurs flux audio (ici V.O. et V.F.), de convertir des sous-titres (ici de [[wpfr>WebVTT|VTT]] vers [[wpfr>SubRip|SRT]]), et d'encapsuler le tout à la volée dans un conteneur [[:matroska|MKV]].\\ |
| | Ici pour **arte.tv** : |
| <code>yt-dlp --embed-metadata --embed-subs --merge-output-format mkv --sub-format vtt --convert-subs srt --sub-langs fr --audio-multistreams -f bestvideo+VF-STF-audio_0-anglais__VO_+VF-STF-audio_0-français https://www.arte.tv/fr/videos/XXXXXX-000-A/xxxxxx/</code> | <code>yt-dlp --embed-metadata --embed-subs --merge-output-format mkv --sub-format vtt --convert-subs srt --sub-langs fr --audio-multistreams -f bestvideo+VF-STF-audio_0-anglais__VO_+VF-STF-audio_0-français https://www.arte.tv/fr/videos/XXXXXX-000-A/xxxxxx/</code> |
| * ''%%--embed-metadata%%'' permet de récupérer les métadonnées depuis la source (ici le site arte.tv), afin que les lecteurs indiquent les langues des pistes audio et des sous-titres, par exemple. | * ''%%--embed-metadata%%'' permet de récupérer les métadonnées depuis la source (ici le site **arte.tv**), afin que les lecteurs indiquent les langues des pistes audio et des sous-titres, par exemple. |
| * ''%%--embed-subs%%'' inclut les sous-titres au fichier [[:matroska|MKV]], ce qui évite d'avoir à créer un fichier indépendant pour les sous-titres avec ''%%--write-subs%%''. | * ''%%--embed-subs%%'' inclut les sous-titres au fichier (ce que permet [[:matroska|MKV]]), ce qui évite d'avoir à créer un fichier indépendant pour les sous-titres avec ''%%--write-subs%%''. |
| * ''%%--merge-output-format mkv%%'' pour encapsuler tous les flux audio et vidéo (avec les sous-titres, donc) dans un fichier [[:matroska|MKV]]. | * ''%%--merge-output-format mkv%%'' pour encapsuler tous les flux audio et vidéo (avec les sous-titres, donc) dans un fichier [[:matroska|MKV]]. |
| * ''%%--sub-format vtt%%'' indique le format source des sous-titres ([[wpfr>WebVTT|VTT]] pour arte.tv). | * ''%%--sub-format vtt%%'' indique le format source des sous-titres ([[wpfr>WebVTT|VTT]] pour **arte.tv**). |
| * ''%%--convert-subs srt%%'' convertit les sous-titres dans un format plus habituels pour les [[:lecture_et_encodage_de_fichiers_videos#lecture_de_fichier_video|lecteurs vidéo]] : [[wpfr>SubRip|SRT]]. | * ''%%--convert-subs srt%%'' convertit les sous-titres dans un format plus habituels pour les [[:lecture_et_encodage_de_fichiers_videos#lecture_de_fichier_video|lecteurs vidéo]] : [[wpfr>SubRip|SRT]]. |
| * ''%%--sub-langs fr%%'' : on télécharge les sous-titres en langue française. | * ''%%--sub-langs fr%%'' : on télécharge les sous-titres en langue française. |
| * ''%%--%%audio-multistreams -f //bestvideo//**+**//VF-STF-audio_0-anglais%%__%%VO_//**+**//VF-STF-audio_0-français//'' indique qu'on souhaite télécharger une piste vidéo et (''**+**'') deux pistes audio : la meilleure qualité pour la piste vidéo (''//bestvideo//''), ''+'' l'audio version originale (''//VF-STF-audio_0-anglais__VO_//''), ''+'' la version française (''//VF-STF-audio_0-français//''). On a obtenu les noms de ces pistes [[#Récupérer la liste des flux disponibles pour une vidéo|précédemment]], grâce à la commande :<code>yt-dlp -F URL</code> | * ''%%--%%audio-multistreams -f //bestvideo//**+**//VF-STF-audio_0-anglais%%__%%VO_//**+**//VF-STF-audio_0-français//'' indique qu'on souhaite télécharger une piste vidéo et (''**+**'') deux pistes audio : |
| * et pour finir l'[[:web#URL]] de la page présentant cette vidéo sur le site arte.tv (ici un exemple ''https://www.arte.tv/fr/videos/XXXXXX-000-A/xxxxxx/'' qui n'existe pas). | * la meilleure qualité pour la piste vidéo (''//bestvideo//'') |
| | * ''+'' l'audio version originale (''//VF-STF-audio_0-anglais__VO_//'') |
| | * ''+'' la version française (''//VF-STF-audio_0-français//'')\\ (on a obtenu les noms de ces pistes [[#Récupérer la liste des flux disponibles pour une vidéo|précédemment]], grâce à la commande ''yt-dlp -F //URL//''). |
| | * et pour finir l'[[:web#URL]] de la page présentant cette vidéo sur le site **arte.tv** (ici un exemple ''%%https://www.arte.tv%%/fr/videos%%/%%//XXXXXX-000-A//%%/%%//xxxxxx//%%/%%'' qui n'existe pas). |
| |
| ===== Problèmes courants ===== | ===== Problèmes courants ===== |
| Si vous recevez ce message d'erreur : | Si vous recevez ce message d'erreur : |
| <code>ERROR: unable to open for writing: [Errno 36] File name too long:</code> | <code>ERROR: unable to open for writing: [Errno 36] File name too long:</code> |
| ajouter l'option ''-o'' suivie du nom de renommage... | ajouter l'option ''-o'' suivie d'un nom de fichier (plus court que l'original). |
| |
| Exemple : <code>yt-dlp -o monfichierrenommé.mp4 URL</code> | Exemple : |
| | <code>yt-dlp -o monfichierrenommé.mp4 URL</code> |
| |
| ===== Désinstallation ===== | ===== Désinstallation ===== |
| | |
| Pour supprimer cette application, il suffit de [[:deb#desinstaller_un_paquet_deb|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés. | Pour supprimer cette application, il suffit de [[:deb#desinstaller_un_paquet_deb|supprimer son paquet]]. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les fichiers de préférence des utilisateurs dans leurs répertoires personnels sont toujours conservés. |
| * Pour la version des **dépôts Ubuntu**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>sudo apt remove yt-dlp</code> | * Pour la version des **[[:deb#desinstaller_un_paquet_deb|dépôts Ubuntu]]**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>sudo apt remove yt-dlp</code> |
| * Pour la version **[[:snap#suppression|snap]]**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>snap remove yt-dlp</code> | * Pour la version **[[:snap#suppression|snap]]**, vous pouvez passer par le [[:snap store|centre d'applications]], ou en ligne de commande :<code>snap remove yt-dlp</code> |
| * Pour le binaire isolé, il suffit de supprimer le fichier :<code>rm ~/.local/bin/yt-dlp</code> | * Pour le binaire isolé, il suffit de supprimer le fichier :<code>rm ~/.local/bin/yt-dlp</code> |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| | |
| * **(//en//)** [[https://github.com/yt-dlp/yt-dlp|Site officiel]] | * **(//en//)** [[https://github.com/yt-dlp/yt-dlp|Site officiel]] (GitHub) |
| |
| ---- | ---- |
| //[[:Contributeurs]] : [[:utilisateurs:Amiralgaby]], [[:utilisateurs:krodelabestiole]], [[:utilisateurs:piero]].// | //[[:Contributeurs]] : [[:utilisateurs:Amiralgaby]], [[:utilisateurs:krodelabestiole]], [[:utilisateurs:piero]].// |