Ceci est une ancienne révision du document !
yt-dlp
yt-dlp est un utilitaire en ligne de commande de téléchargement multimédia.
Il permet de sauvegarder des flux Internet vidéo, audio, ou des sous-titres sur un stockage local pour les consulter hors-ligne, mais aussi de les manipuler, les transcoder ou les remuxer à la volée. Il supporte YouTube, arte.tv, France TV, Twitch et littéralement des milliers d'autres services en ligne !
yt-dlp est un fork de youtube-dl basé sur le projet youtube-dlc désormais inactif. L'objectif principal de ce projet est d'ajouter de nouvelles fonctionnalités et des correctifs tout en restant à jour avec le projet original.
Bien que yt-dlp s'utilise nativement depuis un terminal, son fonctionnement basique est à la portée d'un débutant.
Il existe cependant des interfaces graphiques (aussi appelées GUI pour Graphical User Interface) permettant d'utiliser yt-dlp facilement, sans passer par un terminal :
Interfaces graphiques
Installation
Il existe de nombreuses méthodes, au choix, pour installer yt-dlp sur Ubuntu :
De plus la fonctionnalité d'auto-mise à jour
--update (ou -U en court) a été supprimée de cette version.
Dans ces conditions il est sans doute préférable de s'orienter vers une installation manuelle du binaire isolé (ou d'utiliser Docker si celui-ci est déjà installé). Ce sont ces méthodes qui permettent de profiter de la version la plus récente de l'application, et de la maintenir à jour très facilement.
APT
yt-dlp est disponible dans les dépôts officiels APT d'Ubuntu depuis la version jammy 22.04 (sur la version LTS précédente focal 20.04 il est disponible dans les dépôts backports).
Pour obtenir cette application il suffit donc d'installer le paquet yt-dlp.
Snap
yt-dlp est également disponible en snap depuis Snapcraft. Cette distribution n'est cependant pas officielle.
On peut donc l'installer sur Ubuntu simplement en installant yt-dlp depuis le centre d'applications (Snap Store), ou en installant le paquet yt-dlp en ligne de commande :
snap install yt-dlp
pip
yt-dlp est aussi disponible dans les dépôts du gestionnaire pip.
Pour l'installer ou le mettre à jour, saisissez dans un terminal :
python3 -m pip install -U yt-dlp
PPA
Une version éventuellement plus récente que celle des dépôts officiels est distribuée sur un PPA. Cette distribution n'est cependant pas officielle et pas recommandée.
- Installez ensuite le paquet
yt-dlp.
Binaire isolé
On peut installer yt-dlp en copiant le binaire exécutable depuis GitHub dans son répertoire des binaires personnels, en suivant cette procédure depuis un terminal :
- Télécharger le binaire :
wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O ~/.local/bin/yt-dlp
- Le rendre exécutable :
chmod +x ~/.local/bin/yt-dlp
La commande yt-dlp sera à présent disponible, et on peut la mettre à jour simplement avec yt-dlp -U.
Docker
Il est aussi possible d'utiliser yt-dlp sans même l'installer grâce à Docker.
- Installer Docker (ou Podman).
- Créer ensuite un alias en ajoutant cette ligne au fichier
~/.bash_aliases:- .bash_aliases
alias yt-dlp='docker run --rm -it -v $PWD:/downloads jauderho/yt-dlp:latest'
- Relancer le terminal.
Le programme sera téléchargé lors de la première exécution de la commande yt-dlp, et beaucoup plus rapide ensuite.
Mise à jour
yt-dlp peut se mettre lui-même à jour grâce à la commande :
yt-dlp -U
En fonction de la méthode d'installation, il peut être nécessaire d'utiliser sudo.
Configuration
On passe généralement les paramètres nécessaires directement à la commande yt-dlp, mais pour se simplifier ces lignes il peut être utile de configurer yt-dlp de manière permanente. Ceci se fait en éditant un fichier yt-dlp.conf.
À ce sujet voir (en) Configuration yt-dlp sur GitHub.
Utilisation
Télécharger une vidéo
Lancer l'application ou via le terminal (toutes versions ou variantes d'Ubuntu) avec la commande :
yt-dlp OPTIONS URL
en remplaçant :
OPTIONSpar les éventuelles options (voir ci-dessous)- et l'argument
URLpar l'URL de la page web de la vidéo que vous souhaitez télécharger.
La vidéo sera téléchargée dans le répertoire d'où a été entrée la commande (par défaut le répertoire personnel /home/$USER) et sera lisible par tous les lecteurs 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.
L'option -F permet d'afficher (sans les télécharger) la liste des flux disponibles :
yt-dlp -F URL
C'est ensuite l'option -f qui permet de lancer le téléchargement de son choix :
yt-dlp -f format URL
En remplaçant format par le contenu de la colonne ID du retour de la commande précédente.
Télécharger l'audio d'une vidéo
Utiliser l'option -x pour ne garder que la partie audio d'une vidéo (x signifie extraction).
exemple :
yt-dlp -x -f bestaudio URL
Vous pouvez enlever l'option -f bestaudio s'il n'y a qu'un seul flux audio disponible.
yt-dlp va télécharger la vidéo puis en extraire l'audio.
L'extraction de l'audio d'une vidéo requiert ffmpeg.
Obtenir les informations sur l'audio et télécharger la miniature
Pour obtenir les informations concernant le fichier audio (--add-metadata) et la pochette de l'album (--embed-thumbnail), utiliser cette commande :
yt-dlp -x -f bestaudio[ext=m4a] --add-metadata --embed-thumbnail URL
Sous-titres des vidéos
Les options --write-subs, --write-auto-subs, ou --embed-subs permettent de récupérer les sous-titres.
--skip-download pour télécharger uniquement les sous-titres.
Lister les langues disponibles
yt-dlp --list-subs URL
URL has no subtitles.
Télécharger en définissant la langue
yt-dlp --write-sub --sub-lang LANG URL
Télécharger en utilisant les sous-titres générés automatiquement
yt-dlp --write-auto-sub --sub-lang LANG URL
Télécharger et choisir le format des flux, en même temps que les sous-titres
yt-dlp -f video+audio --write-subs --sub-langs LANG URL
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
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 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 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 VTT vers SRT), et d'encapsuler le tout à la volée dans un conteneur MKV.
Ici pour arte.tv :
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/
--embed-metadatapermet 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-subsinclut les sous-titres au fichier (ce que permet MKV), ce qui évite d'avoir à créer un fichier indépendant pour les sous-titres avec--write-subs.--merge-output-format mkvpour encapsuler tous les flux audio et vidéo (avec les sous-titres, donc) dans un fichier MKV.--sub-format vttindique le format source des sous-titres (VTT pour arte.tv).--convert-subs srtconvertit les sous-titres dans un format plus habituels pour les lecteurs vidéo : SRT.--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çaisindique 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 précédemment, grâce à la commandeyt-dlp -F URL).
- et pour finir l'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
Erreur "nom trop long"
Si vous recevez ce message d'erreur :
ERROR: unable to open for writing: [Errno 36] File name too long:
ajouter l'option -o suivie d'un nom de fichier (plus court que l'original).
Exemple :
yt-dlp -o monfichierrenommé.mp4 URL
Désinstallation
Pour supprimer cette application, il suffit de 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 centre d'applications, ou en ligne de commande :
sudo apt remove yt-dlp
- Pour la version snap, vous pouvez passer par le centre d'applications, ou en ligne de commande :
snap remove yt-dlp
- Pour le binaire isolé, il suffit de supprimer le fichier :
rm ~/.local/bin/yt-dlp

