Bei youtube-dl schaue ich zuerst, welche Videoqualität verfügbar ist, und lade im zweiten Schritt die höchstmögliche Qualität herunter (in diesem Beispiel -f 137+140
). Youtube-dl führt automatisch Audio- und Videostream (DASH-Format) zusammen.
Wie automatisiere ich das mit einem Shell-Skript? Zu wählen bei jedem Video höchste Audio- und Videoqualität?
> 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 , [email protected] (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
(...)
Ich habe einige seltsame Fälle gefunden, in denen der Standard (siehe # 5447 , # 5456 ) bestvideo+bestaudio/best
720p-Video herunterladen würde, selbst wenn ein 1080p verfügbar war. Der Grund, dass die bitrate des 720p etwas höher war, schien für youtube-dl eine bessere Qualität zu sein. Ich bevorzuge die höhere Auflösung, auch alle anderen schicken YouTube-Downloader-Anwendungen haben die 1080p (als Kontrolle) heruntergeladen.
Deshalb schlage ich vor und verwende dies:
-f ("bestvideo[width>=1920]"/bestvideo)+bestaudio/best
Es wird nach dem besten, mindestens 1920 breiten Video suchen. Wenn dies nicht möglich ist, greift es zu dem zurück, was es normalerweise wählen würde. Der beste Teil am Ende ist Teil der Standardkonfiguration.
Nebenbei empfehle ich, %(format_id)s
irgendwo im Dateinamen zu platzieren, damit Sie wissen, was diese Datei verwendet. Wenn Sie später eine Reihe von Videos ohne Archiv erneut herunterladen möchten, wird mit --no-overwrites
eine bessere/andere Qualität neben dem alten Dateinamen als neuer Dateiname angezeigt (sodass Sie dies vergleichen können).
Verwenden Sie einfach -f bestvideo+bestaudio/best
für höchste Ergebnisqualität.
Wenn Sie Container im MP4-Format anstelle von WebM bevorzugen möchten, verwenden Sie Folgendes:
-f bestvideo[ext!=webm]+bestaudio[ext!=webm]/best[ext!=webm]
.
Oder Sie könnten einfach verwenden,
youtube-dl https://www.youtube.com/watch?v=blabla
Dadurch werden Video und Audio in höchster Qualität heruntergeladen und automatisch zusammengeführt. Und ich glaube, ich habe irgendwo gehört, dass Sie ffmpeg für dieses automatische Verhalten installieren müssen. Aber ich wette, die meisten Systeme haben es schon.
Da die Anzahl der Formate begrenzt ist, habe ich folgendes gemacht:
youtube-dl -f 299+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f 137+140 "http://www.youtube.com/watch?v=P9pzm5b6FFY"
youtube-dl -f best "http://www.youtube.com/watch?v=P9pzm5b6FFY"
Wenn der 299 + 140 heruntergeladen wurde, wird der 137 + 140 nicht heruntergeladen, und wenn keiner von diesen heruntergeladen wurde, haben Sie den besten Start mit 22. Das einzige Problem ist, dass Sie den besten Webm als Duplikat haben, aber Sie kann das ext! = webm benutzen, um dies zu vermeiden.
Natürlich können Sie bei 313 + 140 oder einem anderen höheren Format beginnen.
Überprüfen Sie die verfügbaren Formate für dieses bestimmte Video anhand der folgenden Anweisungen:
youtube-dl -F video-url
Laden Sie das Video folgendermaßen herunter:
youtube-dl -f code video-url
Beispiel ::
youtube-dl -F "http://www.youtube.com/watch?v=P9pzm5b6FFY"
Hier ist die Ausgabe:
[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 , [email protected] (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)
führen Sie dann diesen Vorgang aus, um ein Video für 1280 * 720 Pixel herunterzuladen:
youtube-dl -f 22 "http://www.youtube.com/watch?v=P9pzm5b6FFY"