====== YouTube-dl ======
youtube-dl est un programme en ligne de commande très puissant pour télécharger des vidéos provenant de YouTube ou de tout un tas d'autres plateformes ou sites. :!: Python est nécessaire pour son execution.\\
Il fonctionnera sur votre Unix Box ou bien macOS ou Windows. Il est entièrement Open Source, il peut donc être modifié, redistribué à souhait.
youtube-dl [OPTIONS] URL [URL...]
Voir la liste des [[https://github.com/ytdl-org/youtube-dl/blob/master/README.md#options|options]].
===== Installation =====
Pour installer **youtube-dl** sur un système UNIX, entrer dans le **Terminal** :
sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Vous pouvez aussi utiliser **wget** :
sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl
Sur macOS, il est aussi possible d'utiliser **brew** :
brew install youtube-dl
Les utilisateurs **Windows** devront télécharger sur le site du programme un fichier .EXE et le placer quelque part.\\
Sans oublier de spécifier son PATH, à l'exception de ''%SYSTEMROOT%\System32''.
\\
\\
===== Utilisation =====
==== Options à connaître ====
''-F, --list-formats'' : Lister tous les formats des flux audio et vidéo disponibles pour une URL\\
''-r, --limit-rate'' : Limiter le débit du téléchargement (500K ou 3.5M par exemple)\\
''-a, --batch-file'' : Fournir une liste d’URLs à télécharger via un fichier (une URL par ligne)\\
''-i, --ignore-errors'' : Continuer si une erreur se produit lors d’un téléchargement, surtout utile quand on fournit une liste d’URLs à télécharger (--batch-file)\\
''-o, --output'' : Nommer le fichier de sortie à partir de template, voir les exemples et la documentation\\
''-x, --extract-audio'' : Extraire le flux audio\\
''--audio-format'' : Spécifier le format audio de sortie (« best », « aac », « flac », « mp3 », « m4a », « opus », « vorbis », « wav », « best » par défaut)\\
''--audio-quality'' : Spécifier la qualité audio de sortie (valeur entre 0 la meilleure et 9 la pire)
''-f best'' : Télécharger le meilleur format mp4 disponible ou le meilleur format disponible si le mp4 n’est pas disponible, voir les exemples et la documentation.\\
''-f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best''' : idem (mais plus safe).\\
==== Processus ====
Pour faire simple avec un lien YouTube (par exemple), commencer par lister tous les formats possibles à télécharger :
youtube-dl -F https://[URL...]
Un tableau se génère comme ceci :
format code extension resolution note
249 webm audio only DASH audio 54k , opus @ 50k, 1.37MiB
250 webm audio only DASH audio 71k , opus @ 70k, 1.79MiB
171 webm audio only DASH audio 120k , vorbis@128k, 3.31MiB
140 m4a audio only DASH audio 128k , m4a_dash container, mp4a.40.2@128k, 3.73MiB
251 webm audio only DASH audio 140k , opus @160k, 3.61MiB
278 webm 256x144 144p 99k , webm container, vp9, 24fps, video only, 2.71MiB
160 mp4 256x144 144p 110k , avc1.4d400c, 24fps, video only, 3.01MiB
242 webm 426x240 240p 220k , vp9, 24fps, video only, 5.46MiB
133 mp4 426x240 240p 382k , avc1.4d4015, 24fps, video only, 8.05MiB
243 webm 640x360 360p 420k , vp9, 24fps, video only, 10.26MiB
244 webm 854x480 480p 753k , vp9, 24fps, video only, 18.11MiB
134 mp4 640x360 360p 762k , avc1.4d401e, 24fps, video only, 17.86MiB
135 mp4 854x480 480p 1302k , avc1.4d401e, 24fps, video only, 30.78MiB
247 webm 1280x720 720p 1535k , vp9, 24fps, video only, 36.72MiB
136 mp4 1280x720 720p 2326k , avc1.4d401f, 24fps, video only, 52.41MiB
248 webm 1920x1080 1080p 2700k , vp9, 24fps, video only, 62.83MiB
137 mp4 1920x1080 1080p 4390k , avc1.640028, 24fps, video only, 93.12MiB
18 mp4 640x360 medium 727k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 21.34MiB (best)
* Pour télécharger la vidéo seulement en 1080p et en mp4, reporter le **format code** (ici) //137//, précédé du drapeau ''-f'' :
youtube-dl -f 137 https://[URL...]
* La méthode sera la même pour télécharger l'audio seulement, exemple ici pour un fichier .m4a 128k :
youtube-dl -f 140 https://[URL...]
* Pour obtenir un fichier contenant Audio+Video, il faut reporter les deux codes des formats voulus, séparés par un signe ''+''. Par exemple, en reprenant les formats des deux exemples précédents :
youtube-dl -f 137+140 https://[URL...]
* On peut aller plus loin pour être certain d'avoir le mieux du meilleur :
youtube-dl -f best https://[URL...]
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' https://[URL...]
:!: Attention pour ces dernières méthodes, il est nécessaire d'installer au préalable [[https://www.ffmpeg.org/|FFMPEG]] ou bien [[https://libav.org/|avconv]] puisqu'il faudra convertir les deux fichiers pour les fusionner. Sur certains sites, notamment YouTube, les vidéos peuvent être récupérées dans un format de qualité supérieure sans son. youtube-dl détectera si avconv / ffmpeg est présent et choisira automatiquement la meilleure option.
===== Exemples d'utilisation =====
==== Récupérer une liste de vidéos ====
youtube-dl -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' --output "~/Downloads/%(title)s.%(ext)s" --ignore-errors --batch-file '~/Desktop/liste.txt'
Un simple fichier .txt regroupant l'ensemble des liens à télécharger selon les conditions demandées, grâce à l'option ''--batch-file''.
Attention par contre à la moindre erreur (lien brisé, vidéo absente, ...), youtube-dl stoppera le téléchargement, il est peut-être du coup nécéssaire d'ajouter l'option ''-i'' pour ignorer les erreurs et continuer les téléchargements.
==== Récupérer des vidéos AZURE STREAM ====
youtube-dl --merge-output-format mp4 "https://eus-streaming-video-rt-microsoft-com.akamaized.net/bba2a59a-8e1b-4ccf-88c2-b2e82d55e58e/243487f7-44d0-45b0-bf14-f711b775.ism/manifest(format=mpd-time-csf)"
==== Récupérer des vidéos BLOB (Tweeter) ====