youtube-dl
Will man YouTube-Videos herunterladen, weil man sie entweder in einem Desktop-Videoplayer gucken möchte, später ohne Internetverbindung zum Beispiel auf dem Fernseher sehen möchte, oder weil man die Videos gern archivieren möchte, bevor sie auf YouTube gesperrt werden, kann man youtube-dl verwenden.
Installation
Das Programm ist als
youtube-dl
in community
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Nach der Installation ist das Programm mittels youtube-dl
aufrufbar. Die Manpage bietet eine ausführliche Übersicht und Beschreibung aller möglichen Parameter und Optionen.
Verwendung
youtube-dl akzeptiert sowohl einen kompletten Video-URL, als auch nur die Video-ID, im URL nach dem v=
zu finden.
youtube-dl http://www.youtube.com/watch?v=67j45hhhr678
[youtube] Setting language [youtube] 67j45hhhr678: Downloading video webpage [youtube] 67j45hhhr678: Downloading video info webpage [youtube] 67j45hhhr678: Extracting video information [download] Destination: mein tolles video-67j45hhhr678.mp4 [download] 100% of 3.69MiB in 00:04
Wenn nicht näher spezifiziert, wird das qualitativ beste, herkömmliche Video heruntergeladen, und unter dem Videotitel mit angehängter ID gespeichert. Will man eine andere Qualität des Videos herunterladen, kann man sich zuvor die verfügbaren Formate anzeigen lassen.
youtube-dl -F 67j45hhhr678
[youtube] Setting language [youtube] 67j45hhhr678: Downloading video webpage [youtube] 67j45hhhr678: Downloading video info webpage [youtube] 67j45hhhr678: Extracting video information Available formats: 22 : mp4 [720x1280] 18 : mp4 [360x640] 43 : webm [360x640] 5 : flv [240x400] 36 : 3gp [240x320] 17 : 3gp [144x176] 137 : mp4 [1080p] (DASH Video) 136 : mp4 [720p] (DASH Video) 135 : mp4 [480p] (DASH Video) 134 : mp4 [360p] (DASH Video) 133 : mp4 [240p] (DASH Video) 160 : mp4 [192p] (DASH Video) 141 : m4a [256k] (DASH Audio) 140 : m4a [128k] (DASH Audio) 139 : m4a [48k] (DASH Audio)
Das höchstqualitative normale Video hat die Qualitäts-ID 22
(zu den DASH
-Formaten siehe nächster Abschnitt), dies wird automatisch heruntergeladen. Wenn einem eine kleinere Version reicht, kann man die entsprechende Qualitäts-ID beim Aufruf übergeben.
youtube-dl -f 43 67j45hhhr678
[youtube] Setting language [youtube] 67j45hhhr678: Downloading video webpage [youtube] 67j45hhhr678: Downloading video info webpage [youtube] 67j45hhhr678: Extracting video information [download] Destination: mein tolles video-67j45hhhr678.mp4 [download] 100% of 1.33MiB in 00:01
Damit wurde die webm-Variante des Videos heruntergeladen.
In den Beispielen wurde eine zum Zeitpunkt des erstellens nicht existierende Video-ID verwendet. Sollte sich das inzwischen geändert haben, so ist dies nicht beabsichtigt, und sollte einfach kurz im Artikel geändert werden.
Script für DASH-Videos
Auf YouTube wurde vor einiger Zeit endgültig auf das DASH-System umgestellt, um HD-Videos größer als 720p (1080p, 2K, 4K) auszuliefern. Dies funktioniert derart, dass Audio- und Videodaten als getrennte Streams bereitgestellt werden, und lediglich nur ein paar Sekunden vorgepuffert werden.
Dies verhindert nicht nur unnötigen Traffic, falls jemand das Video nicht vollständig guckt, sondern auch, dass 1080p-Videos ohne weiteres heruntergeladen werden können. Mittels folgender Funktion (zum Beispiel in der bashrc) kann man die nötigen Schritte automatisieren.
function 1080p-dl () { _filename=$(youtube-dl --get-filename ${1}); youtube-dl -o 'a.m4a' -f 140 "${1}"; youtube-dl -o 'v.mp4' -f 137 "${1}"; ffmpeg -i "v.mp4" -i "a.m4a" \ -c:v copy -c:a copy \ "${_filename}" \ && rm a.m4a v.mp4 }
Als ersten und einzigen Parameter braucht die Funktion lediglich die YouTube-Video-ID (v=…
), und lädt danach das Audio, und dann das 1080p-Video herunter, kombiniert beides mit dem richtigen Dateinamen, und löscht die dann überflüssig gewordenen Daten hinterher, so dass nur noch die kombinierte Datei übrig bleibt. Da als Audio- und Video-Codec copy
verwendet wird, kommt es zudem zu keinem Qualitätsverlust.
Andere Videoanbieter
Anders als der Name vermuten lässt, beherrscht youtube-dl auch das Herunterladen von Videos aus anderen Quellen. Darunter andere Videoplattformen wie zum Beispiel myvideo.de, vimeo, blip.tv, metacafe.com oder Dailymotion. Zusätzlich erkennt youtube-dl Videoeinbettungen mancher offiziell nicht unterstützter Seiten automatisch.
youtube-dl -F "http://www.arte.tv/guide/de/048963-321/sendung?autoplay=1"
[arte.tv:+7] 048963-321: Downloading webpage [arte.tv:+7] 048963-321: Downloading info json [arte.tv:+7] 048963-321: Extracting information [info] Available formats for 048963-321_PLUS7-D: format code extension resolution note 200-300-VA-STMA flv 320x200 UT Hörgeschädigte (worst) 200-300-VA flv 320x200 Dt. Version 360-1500-VA-STMA mp4 640x360 UT Hörgeschädigte 360-1500-VA mp4 640x360 Dt. Version 406-800-VA-STMA flv 720x406 UT Hörgeschädigte 406-800-VA flv 720x406 Dt. Version 406-1500-VA-STMA flv 720x406 UT Hörgeschädigte 406-1500-VA flv 720x406 Dt. Version 720-2200-VA-STMA flv 1280x720 UT Hörgeschädigte 720-2200-VA flv 1280x720 Dt. Version (best)
Auch Videos aus der arte-Mediathek „ARTE+7“ können durch youtube-dl heruntergeladen werden. Im Beispiel werden die verfügbaren Qualitäten aufgelistet. (Auch hier wieder anhand einer fiktiven Video-ID.)
Weitere unterstützte Seiten können auf der offiziellen Homepage eingesehen werden.