Table des matières
youtube-dl | yt-dlp
Le logiciel yt-dlp est considéré par beaucoup comme «le» successeur de youtube-dl. Il bénéficie d'une maintenance active et on le retrouve dans les distributions Linux les plus répandues.
Installer yt-dlp
Les mises à jour incessantes des plateformes imposent une mise à jour incessante des logiciels de téléchargement.
Dans ces conditions, il n'est pas possible de s'en remettre aux paquetages standard, obsolètes, fournis par la majorité des distributions Linux2).
Sous Debian, deux options4) d'installation s'ouvrent à nous :
- via les backports de la version stable si elle est installée sur notre ordi5),
- manuellement.
La première permet à yt-dlp de bénéficier automatiquement des mêmes moyens de contrôle, d'alerte et de mise à jour que l'ensemble du système. Cette automaticité n'est cependant pas triviale à mettre en place car elle oblige à modifier la politique de mise à jour du système.
La seconde est plus simple à mettre en œuvre mais elle est loin de présenter les mêmes garanties de sécurité que la première6). De plus, les mises à jour de yt-dlp doivent être faites manuellement, en sus des mises à jour du système7).
Installation via les backports
La présentation de ce type d'installation sort du cadre de cette fiche. Une autre fiche y est consacrée : Prioriser des dépôts backports sous Debian.
Si vous avez déjà fait de type de configuration ou si vous suivez un autre tuto, les deux indications suivantes pourraient vous aider :
- Il suffit d'ajouter le composant main du dépôt, par exemple pour bookworm :
deb https://deb.debian.org/debian bookworm-backports main
- yt-dlp est l'unique paquetage à installer depuis les backports car toutes les dépendances sont résolues dans les dépôts standard. En conséquence, 3 lignes suffisent pour modifier les priorités :
Package: yt-dlp Pin: release n=bookworm-backports Pin-Priority: 990
Installation manuelle
La technique présentée est utilisable par une utilisatrice classique : par besoin d'être sudoeuse ou d'avoir des privilèges exceptionnel. L'installation se fait dans l'espace de l'utilisatrice.
$ wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O ~/.local/bin/yt-dlp $ chmod a+rx ~/.local/bin/yt-dlp
Retrouver le fichier téléchargé
La date de dernière modification du fichier téléchargé n'est pas celle du téléchargement. En effet, youtube-dl conserve la date du fichier fournie par youtube. Une fois téléchargé, le fichier peut sembler introuvable, enseveli au fin fond du répertoire, faisant croire à un échec du téléchargement.
Une technique fiable consiste à s'appuyer sur la trace d'exécution de youtube-dl. Par exemple, en identifiant une ligne du type :
… [ffmpeg] Destination: Jane Doe - Invisible Woman (Remix)-ABCde3f.wav …
qui indique le nom exact du fichier.
La commande find permet de s'assurer de la présence du fichier
find . -name "*Invisible Woman*" -print
de forcer sa date de modification
find . -name "*Invisible Woman*" -exec touch {} \;
et de nettoyer le nom du fichier
find . -name "*Invisible Woman*" -exec detox {} \;
Il est préférable d'ajuster le motif de recherche à l'obtention d'un résultat unique. Ici, j'ai fait simple en n'utilisant que ce qui me semblait être discriminant, dans mon cas d'utilisation. Un copier/coller du nom complet affiché par youtube-dl marche aussi :
find . -name "Jane Doe - Invisible Woman (Remix)-ABCde3f.wav" -print
Commandes courantes
Source : Youtube-dl Tutorial With Examples
Audio seul
Par défaut, youtube-dl télécharge au format opus.
Pour une qualité optimale, je force le format à WAV. Dans les cas où j'ai fait la comparaison avec opus, l'amélioration de qualité était flagrante8) ! Dans les cas où j'ai fait le test, le téléchargement au format FLAC n'apportait qu'une infime compression.
youtube-dl -x --audio-format wav https://www.youtube.com/watch?v=XYZt
Le paramètre “-x” indique un téléchargement en audio seul. Il est indispensable lorsqu'on utilise le paramètre “–audio-format” pour imposer le format de téléchargement audio.
Extraire la piste audio
Même dans le cas où on choisit un format “audio seul”, le flux audio est encapsulé dans un conteneur mp4. Une autre fiche décrit comment extraire ce flux, sans perte.
Formats disponibles
youtube-dl -F <URL>
Choix d'un format
La commande précédente permet de prendre connaissance des formats disponibles au téléchargement. Pour chaque format, il est précisé si le téléchargement correspondant ne contient que l'audio ou la vidéo. Rien n'est précisé s'il contient les deux.
youtube-dl -f xx <URL> youtube-dl -f xx+yy <URL> // dans ce cas xx désigne obligatoirement le format vidéo
ERROR: Unable to extract uploader id
Lors de certains téléchargements, youtube-dl échoue en signalant l'erreur “ERROR: Unable to extract uploader id”. Ce serait lié à des changements dans youtube qui n'ont pas encore été répercutés dans le paquetage ou la version installée sur l'ordi.
Le patch
En attendant une solution via une mise à jour du paquetage, un patch de “/usr/lib/python3/dist-packages/youtube_dl/extractor/youtube.py” permet de contourner le problème.
Éditer le fichier en question et rechercher la ligne fautive que l'on commente et remplace. Le résultat voulu est le suivant :
'uploader': video_details['author'],
# 'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id', default=None),
'uploader_url': owner_profile_url,
Source : https://youtu.be/tMtszkwxo48
ERROR: [youtube] abc: Sign in to confirm you’re not a bot.
Cette erreur n'est censée se produire que lorsqu'on télécharge des contenus de playlists privées, ayant des restrictions d'âge ou accessibles aux seules membres.
Le message d'erreur complet contient deux liens vers des pages de la documentation en ligne de yt-dlp expliquant comment contourner ce blocage :
Solution semi-automatique
La solution présentée comme la plus simple consiste à ouvrir le contenu youtube dans un navigateur puis à laisser yt-dlp récupérer les cookies nécessaires dans les fichiers du navigateur.
Solution manuelle (non testée)
Plus complexe, une solution d'extraction manuelle des cookies du navigateur requiert l'installation d'extensions particulièrement intrusives.
.