ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

youtube-dl

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Wiki/Icons/terminal.png Eine immer wiederkehrende Frage bezieht sich darauf, wie man Videos von YouTube oder anderen Video-Portalen speichern kann – ob man das darf, ist eine andere Frage und hängt von den rechtlichen Rahmenbedingungen im Heimatland bzw. am Standort des Benutzers ab (siehe Links).

youtube-dl 🇬🇧 ist eine Möglichkeit für die Kommandozeile. youtube-dlG und ytd-gtl 🇬🇧 bieten einfache grafische Oberflächen. Weitere Programme sind im Artikel Streams speichern zu finden.

Voraussetzungen

Das Programm benötigt Python (Version > 2.6 oder > 3.3) und Libav oder FFmpeg (konkret die Kommandozeilenprogramme avconv und avprobe bzw. ffmpeg und ffprobe). Diese Abhängigkeiten waren bei Ubuntu in der Vergangenheit bereits vorinstalliert. Leider trifft das bei Ubuntu 14.04 nicht mehr zu. Zum einen ist FFmpeg vorübergehend aus den offiziellen Paketquellen entfernt worden und steht erst ab Ubuntu 15.04 wieder zur Verfügung, zum anderen ist Libav nicht vorinstalliert. Daher sollte man zuerst das folgende Paket selbst installieren [1]:

  • libav-tools (ab Ubuntu 14.04 in universe)

Befehl zum Installieren der Pakete:

sudo apt-get install libav-tools 

Oder mit apturl installieren, Link: apt://libav-tools

Installation

Wiki/Icons/synaptic.png Youtube-dl ist in den offiziellen Paketquellen enthalten und kann über folgendes Paket installiert werden:

  • youtube-dl (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install youtube-dl 

Oder mit apturl installieren, Link: apt://youtube-dl

Die Version aus den offiziellen Paketquellen ist im Regelfall älter als die aktuelle Version. Möchte man eine möglichst neue Version nutzen (empfehlenswert), die man später jederzeit selbst aktualisieren kann, folgt man den Anweisungen im nächsten Abschnitt.

Eine weitere Alternative zur Installation aus den offiziellen Paketquellen ist die Installation via pip.

Manuell

Vorab sollte eine aus den offiziellen Paketquellen stammende Version deinstalliert werden. Dann reichen folgende Befehle in einem Terminalfenster [2] aus, um das Programm für den aktuellen Benutzer zu installieren (siehe auch wget und chmod):

mkdir ~/bin
wget https://yt-dl.org/downloads/latest/youtube-dl -O ~/bin/youtube-dl
chmod u+x ~/bin/youtube-dl 

Alternativ kann man youtube-dl auch systemweit installieren. Diese Variante benötigt Root-Rechte [3]:

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+x /usr/local/bin/youtube-dl 

Hinweis!

Fremdsoftware kann das System gefährden.


Anmerkung: Optional, aber empfehlenswert ist die Kontrolle des Downloads anhand der Prüfsumme mit md5sum, sha1sum oder sha256sum (siehe Hashfunktionen). Die jeweils gültigen Prüfsummen sind über die Downloadseite 🇬🇧 verfügbar.

Bei dieser Installationsvariante fehlt die Manpage. Bei Bedarf kann man auf die offizielle Dokumentation ausweichen.

Aktualisierung

Wer das Programm manuell installiert hat, kann es auch manuell aktualisieren:

  • Bei einer Installation nur für den aktuellen Benutzer:

    youtube-dl -U 
  • Bei systemweiter Installation:

    sudo youtube-dl -U 

Benutzung

Nach der Installation kann man Videos im Terminal herunterladen. Die allgemeine Syntax lautet:

youtube-dl [OPTIONEN] URL_DES_VIDEOS 

Beispiel:

youtube-dl "http://www.youtube.com/watch?v=HED4h00xPPA" 
[youtube] Setting language
[youtube] HED4h00xPPA: Downloading webpage
[youtube] HED4h00xPPA: Downloading video info webpage
[youtube] HED4h00xPPA: Extracting video information
[download] Destination: Ubuntu told by Nelson Mandela-HED4h00xPPA.mp4
[download] 100% of 4.43MiB in 00:06

Möchte man die Youtube-ID aus dem Namen/Titel des Videos entfernen, lautet der Befehl wie folgt:

youtube-dl -o "%(title)s.%(ext)s" "http://www.youtube.com/watch?v=HED4h00xPPA" 

Benötigt man dagegen nur die Tonspur des Videos, reicht folgender Befehl:

youtube-dl -x "http://www.youtube.com/watch?v=HED4h00xPPA" 

Man kann auch festlegen, in welchen Format der Ton gespeichert werden soll:

youtube-dl -x --audio-format mp3 --audio-quality 0 "http://www.youtube.com/watch?v=HED4h00xPPA" 

Mit der Angabe der Playlisten-URL kann auch eine ganze Playliste heruntergeladen werden:

youtube-dl [OPTIONEN] URL_DER_PLAYLISTE 

In neueren Version unterstützt youtube-dl auch verschiedene deutsche Mediatheken, u.a. die von ARD, ZDF und ARTE. Alle unterstützten Video-Portale listet der Befehl:

youtube-dl --list-extractors | less 

Da die Ausgabe sehr lang ist, wird sie hier mit less seitenweise ausgegeben. Die Anzeige wird mit der Taste Q beendet. Man kann die zahlreichen weiteren Optionen neben der Manpage auch über den Befehl:

youtube-dl --help | less 

in Erfahrung bringen. Wer nicht gerne am Bildschirm liest, kann die Ausgabe auch im Homeverzeichnis speichern:

youtube-dl --help > ~/youtube-dl_help.txt 

Konfiguration

Wenn bestimmte Optionen häufiger benutzt werden, können diese auch in einer Konfigurationsdatei eingetragen werden. Diese könnte ggf. standardmäßig nicht vorhanden sein und müsste dann also selber angelegt werden. Die systemweite heißt /etc/youtube-dl.conf, die benutzerspezifische ~/.config/youtube-dl/config. Man kann den Speicherort aber auch selber auf der Kommandozeile bestimmen durch die --config-location-Option. Jede Zeile stellt einen Parameter in der gleichen Syntax wie auf der Kommandozeile dar. Zeilen, die mit einem Rautenzeichen (#) beginnen, werden als Kommentare behandelt. Beispiel:

## Benutzerspezifische Beispielkonfigurationsdatei für youtube-dl
# Lade bei Vorliegen von zwei höchst-qualitativen separaten Dateien für Audio und Video diese getrennt herunter
# (aber nur die in den Formaten m4a bzw. mp4);
# ansonsten nehme die höchst-qualitative AV-Kombi-Einzeldatei
-f bestvideo[ext=mp4]+bestaudio[ext=m4a]/best
# Entferne die Youtube-ID aus dem Namen/Titel des Videos
-o "%(title)s.%(ext)s"
# Beschränke Dateinamen auf reine ASCII-Zeichen und vermeide dort u.a. "&" und Leerzeichen, aber auch Umlaute;
# wobei Leerzeichen in Unterstriche (_) sowie Umlaute in a, o und u umgewandelt werden:
--restrict-filenames

Um zu erreichen, dass systemweite und benutzerspezifische Konfigurationsdateien ignoriert werden, muss das Programm mit der Option --ignore-config aufgerufen werden:

youtube-dl --ignore-config [OPTIONEN] URL_DES_VIDEOS 

Mehr Informationen zur Konfiguration sind in der Manpage bzw. der Dokumentation zu finden.

Problembehebung

Wenn der folgende Fehler auftritt:

"ERROR: ffprobe or avprobe not found. Please install one."

fehlt das Paket libav-tools (siehe Voraussetzungen).

Aktualisierung

Ab Ubuntu 13.10 ist es nicht mehr möglich, ein aus den offiziellen Paketquellen installiertes youtube-dl mit der Option -U zu aktualisieren. Man erhält eine Fehlermeldung:

"It looks like you installed youtube-dl with a package manager, pip, setup.py or a tarball. Please use that to update."

Die Aktualisierung von youtube-dl soll also über die Paketverwaltung erfolgen. Aufgrund der Update-Politik von Ubuntu sollte man dann auf eine manuelle Installation ausweichen.

Unterschiedliche Video-Qualitäten

Teilweise (beispielsweise bei YouTube) werden unterschiedliche Qualitäten des gleichen Videos angeboten. Um alle verfügbaren Qualitätsstufen anzuzeigen, verwendet man folgenden Befehl:

youtube-dl -F YOUTUBE_URL_DES_VIDEOS 

Entscheidend in der Ausgabe ist der format code. Anschließend kann mit:

youtube-dl -f FORMAT_CODE YOUTUBE_URL_DES_VIDEOS 

die gewünschte Qualitätsstufe heruntergeladen werden. Ohne Angabe eines Format-Codes wird bei älteren Programmversionen die höchste Qualitätsstufe einer AV-Kombi-Einzeldatei als eine zusammenhängende Datei heruntergeladen (aus der Sicht von youtube-dl in der Ausgabe mit der Option "-F" als (best) gekennzeichnet).

Hinweis:

Seit Ende April 2015 und Version 2015.04.26 benutzt youtube-dl -f bestvideo+bestaudio/best als Standard-Einstellung. Das heißt, dass bei Vorliegen von zwei höchst-qualitativen separaten Dateien für Audio und Video diese wie in den folgenden Beispielen zunächst getrennt heruntergeladen werden und dann zusammengemuxt werden. Liegt hingegen eine höchst-qualitative AV-Kombi-Einzeldatei vor, so wird automatisch diese genommen.

Die beste Qualität für Video und Audio kann aber bei älteren youtube-dl-Versionen mit folgendem Befehl erzwungen werden:

youtube-dl -f bestvideo+bestaudio YOUTUBE_URL_DES_VIDEOS 

⚓︎ Dabei werden zwei Dateien (Video und Audio separat) heruntergeladen, die dann in eine resultierende Datei gemischt werden. Abschließend werden die ursprünglichen Dateien automatisch gelöscht. Das ist jedoch nicht immer von Erfolg gekrönt, da ziemlich oft nicht miteinander kompatible Video- und Audio-Formate (Codecs) kombiniert werden. Infolgedessen können unerwünschte Effekte auftreten (der benutzte Player kann den Audio- bzw. Video-Teil nicht abspielen). Beispiel:

youtube-dl -F https://www.youtube.com/watch?v=DcKGyJKnuQI 

[youtube] DcKGyJKnuQI: Downloading webpage
[youtube] DcKGyJKnuQI: Downloading video info webpage
[youtube] DcKGyJKnuQI: Extracting video information
[youtube] DcKGyJKnuQI: Downloading MPD manifest
[info] Available formats for DcKGyJKnuQI:
format code  extension  resolution note
249          webm       audio only DASH audio   60k , opus @ 50k, 26.22MiB
250          webm       audio only DASH audio   81k , opus @ 70k, 34.64MiB
140          m4a        audio only DASH audio  131k , m4a_dash container, mp4a.40.2@128k (44100Hz)
171          webm       audio only DASH audio  137k , vorbis@128k, 60.25MiB
251          webm       audio only DASH audio  149k , opus @160k, 68.59MiB
160          mp4        220x144    DASH video   97k , avc1.4d400c, 25fps, video only
278          webm       220x144    144p  114k , webm container, vp9, 25fps, video only, 44.46MiB
133          mp4        368x240    DASH video  230k , avc1.4d400d, 25fps, video only
242          webm       368x240    240p  254k , vp9, 25fps, video only, 105.38MiB
243          webm       550x360    360p  453k , vp9, 25fps, video only, 192.40MiB
134          mp4        550x360    DASH video  551k , avc1.4d4016, 25fps, video only
244          webm       734x480    480p  840k , vp9, 25fps, video only, 341.47MiB
135          mp4        734x480    DASH video 1024k , avc1.4d401e, 25fps, video only
17           3gp        176x144    small , mp4v.20.3, mp4a.40.2@ 24k
36           3gp        320x210    small , mp4v.20.3, mp4a.40.2
18           mp4        550x360    medium , avc1.42001E, mp4a.40.2@ 96k
43           webm       640x360    medium , vp8.0, vorbis@128k (best)
$

Wie man sieht, hat youtube-dl die letzte Zeile (format code 43) als die beste Qualitätsstufe markiert (best) und sie wird per Voreinstellung (youtube-dl ohne Optionen) bei älteren youtube-dl-Versionen auch heruntergeladen.

Dabei gibt es die besseren Video-Streams (format code 244 und 135). Die resultierende Datei, die mit der Optionen bestvideo+bestaudio produziert wurde, konnte vom Player VLC nur ohne den Ton abgespielt werden.

Youtube separiert Video- und Audio-Streams (Linien, die mit DASH markiert sind), so dass man die beste Qualität und die kompatible Formate für Video und Audio selbst auswählen kann:

youtube-dl -f 135+140 https://www.youtube.com/watch?v=DcKGyJKnuQI 

Oder man lässt es youtube-dl erledigen:

youtube-dl -f bestvideo[ext=mp4]+bestaudio[ext=m4a] YOUTUBE_URL_DES_VIDEOS 

[youtube] DcKGyJKnuQI: Downloading webpage
[youtube] DcKGyJKnuQI: Downloading video info webpage
[youtube] DcKGyJKnuQI: Extracting video information
[youtube] DcKGyJKnuQI: Downloading MPD manifest
[dashsegments] Total fragments: 853
[download] Destination: Nockherberg 2007 - Singspiel komplett - 'Staatszirkus Nockherberg'-DcKGyJKnuQI.f135.mp4
[download] 100% of 403.53MiB in 14:53
[dashsegments] Total fragments: 432
[download] Destination: Nockherberg 2007 - Singspiel komplett - 'Staatszirkus Nockherberg'-DcKGyJKnuQI.f140.m4a
[download] 100% of 65.17MiB in 07:25
[ffmpeg] Merging formats into "Nockherberg 2007 - Singspiel komplett - 'Staatszirkus Nockherberg'-DcKGyJKnuQI.mp4"
WARNING: Your copy of avconv is outdated, update avconv to version 10-0 or newer if you encounter any errors.
Deleting original file Nockherberg 2007 - Singspiel komplett - 'Staatszirkus Nockherberg'-DcKGyJKnuQI.f135.mp4 (pass -k to keep)
Deleting original file Nockherberg 2007 - Singspiel komplett - 'Staatszirkus Nockherberg'-DcKGyJKnuQI.f140.m4a (pass -k to keep)

Für weitere Information siehe Askubuntu 🇬🇧 und den Abschnitt FORMAT SELECTION 🇬🇧 auf GitHub.

Diese Revision wurde am 8. Mai 2017 03:33 von XM-Franz erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Multimedia, Audio, Video, Internet, YouTube