Avec youtube-dl, je commence par regarder quelle qualité vidéo est disponible, puis dans la deuxième étape, je télécharge la qualité la plus élevée possible (dans cet exemple, -f 137+140
). Youtube-dl fusionnera automatiquement les flux audio et vidéo (format DASH)
Comment automatiser cela avec un script shell? Trop choisir avec chaque vidéo la plus haute qualité audio et vidéo?
> youtube-dl -F 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[youtube] VAdRBLyjLRQ: Downloading DASH manifest
[info] Available formats for VAdRBLyjLRQ:
format code extension resolution note
249 webm audio only DASH audio , opus @ 50k
250 webm audio only DASH audio , opus @ 70k
251 webm audio only DASH audio , opus @160k
171 webm audio only DASH audio 117k , vorbis@128k (44100Hz), 7.68MiB
140 m4a audio only DASH audio 128k , m4a_dash container, aac @128k (44100Hz), 11.58MiB
160 mp4 256x144 DASH video 112k , avc1.4d400c, 15fps, video only, 9.94MiB
278 webm 256x144 DASH video 136k , webm container, VP9, 15fps, video only, 9.10MiB
133 mp4 426x240 DASH video 248k , avc1.4d4015, 30fps, video only, 22.27MiB
242 webm 426x240 DASH video 316k , vp9, 30fps, video only, 22.20MiB
243 webm 640x360 DASH video 557k , vp9, 30fps, video only, 41.05MiB
134 mp4 640x360 DASH video 609k , avc1.4d401e, 30fps, video only, 52.94MiB
244 webm 854x480 DASH video 1021k , vp9, 30fps, video only, 74.05MiB
135 mp4 854x480 DASH video 1115k , avc1.4d401f, 30fps, video only, 97.02MiB
247 webm 1280x720 DASH video 2011k , vp9, 30fps, video only, 150.61MiB
136 mp4 1280x720 DASH video 2282k , avc1.4d401f, 30fps, video only, 189.40MiB
248 webm 1920x1080 DASH video 3838k , vp9, 30fps, video only, 286.61MiB
137 mp4 1920x1080 DASH video 4209k , avc1.640028, 30fps, video only, 354.19MiB
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
> youtube-dl -f 137+140 'https://www.youtube.com/watch?v=VAdRBLyjLRQ&feature=youtu.be&t=8m14s'
[youtube] Downloading login page
[youtube] Logging in
[youtube] VAdRBLyjLRQ: Downloading webpage
[youtube] VAdRBLyjLRQ: Downloading video info webpage
[youtube] VAdRBLyjLRQ: Extracting video information
(...)
J'ai trouvé des cas étranges où la valeur par défaut (voir # 5447 , # 5456 ) bestvideo+bestaudio/best
télécharge une vidéo 720p même lorsqu'un fichier 1080p est disponible. La raison pour laquelle le bitrate sur le 720p était très légèrement supérieur, par conséquent, il semblait une meilleure qualité pour youtube-dl. Je préfère la résolution supérieure, ainsi que toutes les autres applications de téléchargement sur youtube sophistiquées téléchargées en 1080p (en tant que contrôle).
C'est pourquoi je propose et utilise ceci:
-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
Il recherchera la meilleure vidéo d'au moins 1920. Si ce n'est pas disponible, il aura recours à ce qu'il choisirait normalement. La partie/best à la fin fait partie de la configuration par défaut.
Par ailleurs, je vous recommande de placer la %(format_id)s
quelque part dans le nom du fichier afin que vous sachiez ce que ce fichier utilise. Si vous souhaitez télécharger à nouveau un ensemble de vidéos sans utiliser d'archive, avec --no-overwrites
, une qualité meilleure/différente formera un nouveau nom de fichier à côté de l'ancien (afin que vous puissiez comparer ou peu importe).
Utilisez simplement -f bestvideo+bestaudio/best
pour obtenir la meilleure qualité disponible.
Si vous souhaitez préférer les conteneurs au format MP4 à WebM, utilisez:
-f bestvideo[ext!=webm]+bestaudio[ext!=webm]/best[ext!=webm]
.
Ou vous pouvez simplement utiliser,
youtube-dl https://www.youtube.com/watch?v=blabla
Cela téléchargera la vidéo et l'audio de la plus haute qualité et les fusionnera automatiquement. Et je pense avoir entendu quelque part qu'il faut que ffmpeg soit installé pour avoir ce comportement automatique. Mais je parie que la plupart des systèmes l’ont déjà.
Vérifiez les formats disponibles pour cette vidéo en utilisant ceci:
youtube-dl -F video-url
Téléchargez la vidéo en utilisant ceci:
youtube-dl -f code video-url
Exemple ::
youtube-dl -F "http://www.youtube.com/watch?v=P9pzm5b6FFY"
Voici la sortie:
[youtube] Setting language
[youtube] P9pzm5b6FFY: Downloading webpage
[youtube] P9pzm5b6FFY: Downloading video info webpage
[youtube] P9pzm5b6FFY: Extracting video information
[info] Available formats for P9pzm5b6FFY:
format code extension resolution note
140 m4a audio only DASH audio , audio@128k (worst)
160 mp4 144p DASH video , video only
133 mp4 240p DASH video , video only
134 mp4 360p DASH video , video only
135 mp4 480p DASH video , video only
136 mp4 720p DASH video , video only
17 3gp 176x144
36 3gp 320x240
5 flv 400x240
43 webm 640x360
18 mp4 640x360
22 mp4 1280x720 (best)
puis effectuez cette opération pour télécharger la vidéo pour 1280 * 720 pixels:
youtube-dl -f 22 "http://www.youtube.com/watch?v=P9pzm5b6FFY"