Table des matières
https://github.com/yt-dlp/yt-dlp/, Archive 2020.09.20, les Microsoft Visual C++ 2010 Redistributable Package (x86) et la librairie de conversion libav Archive x86_64-w64-mingw32-20170415
Choix de la qualité
Sans spécifier la qualité, il peut arriver que le téléchargement s'effectue en 720p alors que le format en 1080p existe.
Récupérer la liste des formats disponibles d'une vidéo.
yt-dlp -F https://www.youtube.com/watch?v=XXXXXXX
Télécharger le format spécifique d'une vidéo :
yt-dlp -f 22 http://www.youtube.com/watch?v=XXXXXXX
Certains formats ne contiennent que la vidéo (video only
) ou que la musique (audio only
). Notamment pour les vidéos de qualité supérieure à 720p. Pour les récupérer, il faut sélectionner les deux formats en les séparant par un +
et toujours mettre en premier la vidéo.
yt-dlp -f 137+140 http://www.youtube.com/watch?v=XXXXXXX
Les formats désignant la qualité semblent respecter un certain standard :
- Nombre à deux chiffres : contient la vidéo et la musique,
- Nombre à trois chiffres : contient uniquement la vidéo ou la musique,
- Les nombres commençant par 1 sont au format mp3 et/ou mp4,
- Les nombres commençant par 2 sont au format webm.
Pour ces raisons, il est préférable lors de la sélection des deux formats (audio+video) de choisir deux nombres à trois chiffres commençant tous les deux par le même chiffre. De toute façon, si vous ne le faites pas yt-dlp
ne manquera pas de vous le rappeler.
Il est aussi possible de forcer l'utilisation de la meilleure qualité
yt-dlp -f bestvideo+bestaudio http://www.youtube.com/watch?v=XXXXXXX
Options
- Sous-titre :
--all-subs
. Télécharge tous les sous-titres. - Ignorer les erreurs :
--ignore-errors
. Peut-être utile pour télécharger une playlist qui contient quelques vidéos privées ou ayant été retirées. - Sauter les N premières vidéos :
--playlist-start X
. Peut-être utile pour reprendre le téléchargement d'une playlist en ignorant lesX
premiers. - Limiter le débit :
-r 50K
Playlist
Dans le cas où on souhaite récupérer une longue playlist de Youtube, il va falloir ajouter des arguments
--retries 100 --fragment-retries 100 --playlist-start 1800
--retries 100 --fragment-retries 100
va être nécessaire car Youtube va volontairement faire jusqu'à 10 échecs (valeur par défaut du programme) mais rarement plus.
--playlist-start
car il faudra peut-être recommencer après un ban de Youtube avec des messages du genre WARNING: unable to download video info webpage: HTTP Error 429: Too Many Requests
- Mise à jour d'une playlist Youtube avec sous-titre
Youtube n'aime pas qu'on télécharge trop vite les sous-titres. Il faut donc cumuler l'option –sleep-subtitles 3
(pour mettre une pause entre chaque sous-titre) et l'option -w
pour ne pas télécharger un sous-titre déjà récupéré.
Authentification par cookie
How to download your Udemy course videos using youtube-dl Archive du 14/02/2018 le 06/01/2020
- Installer le plugin cookies.txt pour Chrome.
- Se connecter à udemy,
- Enregistre le cookie :
.udemy.com TRUE / TRUE 1234567890 XXXX YYYY www.udemy.com FALSE / FALSE 1850531135 ZZZZ AAAA
- Télécharger avec la commande
yt-dlp --cookies cookies.txt -f best -o '%(playlist)s/%(chapter_number)s - %(chapter)s/%(playlist_index)s. %(title)s.%(ext)s' https://www.udemy.com/cours-complet-ios10-swift-3-creez-15-applications/
Il est aussi possible de se passer de cookie.txt en mettant le nom d'utilisateur et le mot de passe directement dans yt-dlp
.
yt-dlp -u <username> -p <password> -f best -o '%(playlist)s/%(chapter_number)s - %(chapter)s/%(playlist_index)s. %(title)s.%(ext)s' https://www.udemy.com/cours-complet-ios10-swift-3-creez-15-applications/
Fusion des sous-titres avec la vidéo
On converti le format vtt en ass :
ffmpeg -i subtitle.en.vtt subtitle.en.ass
On fusionne la vidéo et le sous-titre :
ffmpeg -i input.mkv -f ass -i subtitle.ass -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy -c:s ass -metadata:s:s:0 language=eng output.mkv
Suppression des vidéos en double
Quand on relance le téléchargement d'une playlist, certaines vidéos peuvent être téléchargée à nouveau mais dans un meilleur format.
Attention, yt-dlp
va mettre comme date de modification, celle du serveur Youtube. Il n'est donc pas possible d'utiliser la date de modification.
Sous Windows, il faut utiliser la date de création. Pour cela, il est possible d'utiliser l'utilitaire youtube-dl-cleanup
.