Introduction
Yt-dlp est un logiciel permettant de télécharger des fichiers audio et vidéo sur des milliers de sites (liste des sites compatibles : https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md).
Nous l'utilisons à ReNX principalement pour télécharger des musiques pour le mix sur youtube, soundcloud... mais il peut également être pratique pour le pôle média pour télécharger des vidéos sur youtube.
⚠ Attention ⚠ Les commandes en dessous sont pour windows, adapter la syntaxe pour Linux
Installation
- Télécharger l'exécutable yt-dlp depuis le github https://github.com/yt-dlp/yt-dlp et le mettre dans un dossier en amont de nos playlists (c'est plus pratique pour la suite)
- Installer ffmpeg (pour la conversion de fichier, voir leur site pour installation, ou faire dans le terminal windows : winget install ffmpeg)
- Installer deno (pour des trucs javascript de youtube, voir le site pour installation : https://deno.com/ ou faire dans le terminal windows : irm https://deno.land/install.ps1 | iex)
- Récupérer les cookies de son navigateur (à faire que pour des téléchargements avec youtube, pour montrer qu'on n'est pas un bot à youtube). ⚠ Attention ⚠ Risque de ban donc utiliser un compte youtube pas important ! :
- sur navigateur chrome (brave...) / edge : installer l'extension Get cookies.txt LOCALLY, ou sur navigateur Firefox installer l'extension cookies.txt
- Ouvrir une fenêtre de navigation privée
- Se connecter à youtube (avec un compte pas utile !)
- DANS LE MEME ONGLET aller sur : https://www.youtube.com/robots.txt (on doit avoir qu'un seul onglet actif !)
- Cliquer sur l’extension de cookie puis Export cookies
- Sauvegarder le fichier dans le même dossier que yt-dlp (ex: youtube_cookies.txt)
- Fermer immédiatement la fenêtre privée
Remarque : on fait ça pour avoir des cookies qui n'expirent pas. Cette suite d'étapes est tirée de ce lien : https://github.com/yt-dlp/yt-dlp/wiki/Extractors#exporting-youtube-cookies
Utilisation
Pour du mp3
Dans le terminal (powershell pour windows), on se place dans le dossier qui contient yt-dlp puis on lance la commande :
.\yt-dlp.exe -x --audio-format mp3 --embed-thumbnail --add-metadata --cookies youtube_cookies.txt --sleep-interval 6 -o "./path/%(title)s --- %(uploader)s.%(ext)s" URL
À CHANGER :
- URL par l'url de la playlist
- ./path/ par le dossier du PC dans lequel on veut mettre notre playlist
- youtube_cookies.txt par le nom du fichier qui contient nos cookies youtube
- Enlever sleep-interval 6 si on télécharge peu de musiques (<300)
Explication :
-x : garde que l'audio
--audio-format mp3 : convertit l'audio en mp3 avec ffmpeg
--embed-thumbnail : met la miniature comme image de référence du mp3
--add-metadata : ajoute les métadonnées au fichier mp3 (nom de la musique / de l'artiste, image de la musique...)
--cookies youtube_cookies.txt : utilise nos cookies youtube pour lui dire qu'on est pas un bot
-o "./path/%(title)s --- %(uploader)s.%(ext)s : ajoute les fichiers dans le dossier path et les renomme sous la forme : titre de la vidéo --- nom de la chaine qui upload . extension mp3
--sleep-interval 6 : indique d'attendre 6 secondes entre chaque téléchargement pour éviter que youtube nous bloque (pas obligatoire si on fait des petit téléchargement (<300 musiques))
URL : l'url de la playlist
Remarque : Si on veut commencer/finir de télécharger la playlist à une musique particulière, on rajoute --playlist-start NUMBER / --playlist-end NUMBER, en remplaçant NUMBER par le numéro de la musique à laquelle commencer / s'arrêter.
Pour du mp4
Pour du mkv (équivalent mp4) :
.\yt-dlp.exe --embed-thumbnail --add-metadata --cookies youtube_cookies.txt -o "./path/%(title)s --- %(uploader)s.%(ext)s" URL
Pour du mp4 :
yt-dlp -f "bv*+ba/b" --merge-output-format mp4 --embed-thumbnail --add-metadata --cookies youtube_cookies.txt -o "./path/%(title)s --- %(uploader)s.%(ext)s" URL
Pour convertir mkv en mp4 (se mettre dans le dossier avec des fichiers mkv) : Get-ChildItem *.mkv | ForEach-Object { ffmpeg -i "$_" -c copy "$($_.BaseName).mp4" }
/////