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
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 :
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
--all-subs
. Télécharge tous les sous-titres.--ignore-errors
. Peut-être utile pour télécharger une playlist qui contient quelques vidéos privées ou ayant été retirées.--playlist-start X
. Peut-être utile pour reprendre le téléchargement d'une playlist en ignorant les X
premiers.-r 50K
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
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é.
How to download your Udemy course videos using youtube-dl Archive du 14/02/2018 le 06/01/2020
.udemy.com TRUE / TRUE 1234567890 XXXX YYYY www.udemy.com FALSE / FALSE 1850531135 ZZZZ AAAA
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/
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
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
.