Herunterladen mehrerer Dateien mit youtube-dl

45

Ich verwende youtube-dl, um Dateien von YouTube herunterzuladen. Ich habe versucht, mehrere Dateien herunterzuladen, aber es funktioniert nicht für mich. Ich muss mehrere Terminals öffnen und jedes Mal neu starten, wenn ich ein Video herunterladen möchte.

Können Sie mir helfen, mehrere Dateien mit einem einzigen Terminalfenster herunterzuladen, indem Sie nur alle URLs auf einmal erwähnen? Ich benutze Ubuntu 12.04 64-Bit.

Mecha-Unix
quelle
1
Keine Antwort auf Ihre Frage, aber andere könnten darüber stolpern. Wenn die Videos in irgendeiner Weise zusammenhängen, denke daran, dass youtube-dl alle Videos von einer Wiedergabeliste, einem Nutzer oder einem Kanal herunterladen kann.
Dennis
In der folgenden Antwort (die derzeit nicht die am besten bewertete ist) wird vorgeschlagen, nur ein Leerzeichen zwischen den URLs einzufügen, und Sie sind fertig.
Gota

Antworten:

54

Tastenkombinationen

Wenn sich alle Videos in derselben Wiedergabeliste oder auf demselben Kanal befinden, können Sie mithilfe der folgenden Verknüpfungen Zeit sparen.

Wiedergabeliste

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-playlist>

... wobei <url-of-playlist>durch die URL der Wiedergabeliste ersetzt wird und beispielsweise durch ein FORMATbeliebiges verfügbares Videoformat ersetzt wird 18. Sie können die -FOption verwenden, um alle gültigen Formate wie folgt anzuzeigen:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

Laden Sie einen Teil einer Wiedergabeliste vom Anfang des Stapels bis zum Ende des Stapels herunter

youtube-dl -f FORMAT -ci --playlist-start NUMBER --playlist-end NUMBER <url-of-playlist>  

... wobei <url-of-playlist>durch die URL der Wiedergabeliste ersetzt wird FORMAT, zum Beispiel durch ein verfügbares Videoformat ersetzt wird 18und NUMBERdie Nummer des Videos in der Wiedergabeliste ist, um das Herunterladen zu starten / zu beenden.

Kanal

youtube-dl -f FORMAT -ciw -o "%(title)s.%(ext)s" -v <url-of-channel>

... wobei <url-of-channel>durch die URL des Kanals ersetzt wird und beispielsweise durch ein FORMATbeliebiges verfügbares Videoformat ersetzt wird 18.

Videos, die sich nicht in derselben Wiedergabeliste oder demselben Kanal befinden

Erstellen Sie zunächst eine Batch-Datei, die eine Textdatei mit einer Liste von URLs von Videos von YouTube enthält, die Sie herunterladen möchten. Die URLs sollten in einer Liste angeordnet sein, die nur eine URL und nichts anderes in jeder Zeile enthält. Für jede URL in der Liste sollte eine neue Zeile eingefügt werden. Speichern Sie die Batch-Datei unter einem Namen, den Sie sich leicht merken können, z. B. batch-file.txt. Wenn sich alle Dateien auf derselben Wiedergabeliste, demselben Kanal oder derselben Benutzerwebseite in YouTube befinden, können Sie eine Textdatei mit einer Liste mit allen Links auf dieser Seite erstellen, indem Sie den folgenden Befehl ausführen:

sudo apt install jq  
youtube-dl -j --flat-playlist "https://<yourYoutubeWebpage>" | jq -r '.id' | sed 's_^_https://youtu.be/_' > batch-file.txt

Vom Terminal laufen:

youtube-dl -ct --simulate --batch-file='/path/to/batch-file.txt'

Dies ist der grundlegende Befehl. Sie müssen jedoch auch die Formate der Videos hinzufügen, die Sie herunterladen möchten. Andernfalls können Sie Videos in Formaten herunterladen, die Sie nicht möchten. Simulieren Sie also zuerst Ihren Download, um zu sehen, ob das gewünschte Format verfügbar ist:

youtube-dl -ct -f 34 --simulate 'http://www.youtube.com/some-alphanumeric-string'

Wenn das Videoformat nicht verfügbar ist , erhalten Sie eine Fehlermeldung erhalten , die besagt: requested format not available. Wenn das Videoformat verfügbar ist, wird bei Verwendung der --simulateOption keine Fehlermeldung angezeigt. Sie können auch die Option -F hinzufügen, um alle gültigen Formate anzuzeigen:

youtube-dl -F 'http://www.youtube.com/some-alphanumeric-string'

Im dritten Befehl habe ich das gemeinsame flv 360p - Video - Format verwendet:
-f 34. Möglicherweise bevorzugen Sie das flv 480p-Videoformat mithilfe von -f 35. Nachdem Sie das gewünschte Videoformat zum Befehl hinzugefügt haben, sieht der Befehl folgendermaßen aus:

youtube-dl -ciw -o "%(title)s.%(ext)s" --batch-file='/path/to/batch-file.txt'

Anmerkungen:

Ich habe die --simulateOption nicht zum letzten Befehl hinzugefügt , daher würde dieser Befehl für echt ausgeführt.

karel
quelle
18

Sie können die URLs nacheinander mit einem Leerzeichen dazwischen platzieren. Youtube-dl lädt sie nacheinander herunter. Dies ist ein bisschen einfacher als das Erstellen einer Batch-Datei.

Beachten Sie, dass --help sagt youtube-dl --help Usage: youtube-dl [options] url [url...]

Beispieleingabe:

youtube-dl http://www.youtube.com/watch?v=fqULJBBEVQE http://www.youtube.com/watch?v=vDbbz-BdyYc http://www.youtube.com/watch?v=OrIFaWJ9Glo

Beispielausgabe:

    [youtube] Setting language
    [youtube] fqULJBBEVQE: Downloading video webpage
    [youtube] fqULJBBEVQE: Downloading video info webpage
    [youtube] fqULJBBEVQE: Extracting video information
    [download] Destination: Web Components - A Tectonic Shift for Web Development - Google I_O 2013-fqULJBBEVQE.mp4
    [download] 100% of 238.14MiB in 36:54
    [youtube] vDbbz-BdyYc: Downloading video webpage
    [youtube] vDbbz-BdyYc: Downloading video info webpage
    [youtube] vDbbz-BdyYc: Extracting video information
    [download] Paul Irish on Web Application Development Workflow-vDbbz-BdyYc.mp4 has already been downloaded
    [youtube] OrIFaWJ9Glo: Downloading video webpage
    [youtube] OrIFaWJ9Glo: Downloading video info webpage
    [youtube] OrIFaWJ9Glo: Extracting video information
    [download] Got server HTTP error. Retrying (attempt 1 of 20)...
    [download] Destination: Single Page Web Applications - JavaScript End-to-End (The Hard Stuff)-OrIFaWJ9Glo.mp4
    [download] 100% of 553.10MiB in 42:17
coreyb
quelle
1
Beste Antwort meiner Meinung nach! Sehr einfach!
Gota
5

Schritt 1: Gehen Sie zu Ihrem Desktop und erstellen Sie ein Textdokument mit dem Namenlist(oder einem anderen Namen). Kopieren Sie die URLs und fügen Sie sie ein, wenn Sie Dateien in die Datei herunterladen möchten (eine URL pro Zeile)

Schritt 2: Öffnen Sie das Terminal und gehen Sie zum Desktop

cd Desktop

Schritt 3: Um die Dateien aus Ihrer Liste herunterzuladen, geben Sie Folgendes ein (ersetzenlistSie sie entsprechend, wenn Sie Ihrer Datei einen anderen Namen gegeben haben)

youtube-dl -a list

So laden Sie einen YouTube- Kanal herunter

Führen Sie diesen Befehl aus

youtube-dl -citk -format mp4 -yes-playlist VIDEO_PLAYLIST_LINK
  • -c teilweise heruntergeladene Dateien fortsetzen
  • -i Fehler ignorieren.
  • -t Verwenden Sie den Videotitel als Dateinamen.
  • -k Lassen Sie das Video auf der Festplatte, nachdem die Nachbearbeitung abgeschlossen ist.
  • --format mp4 Speichern Sie die Videodateien als MP4-Dateien.
  • --yes-playlist bestätigt, dass die folgende URL auf eine Video-Wiedergabeliste verweist.
Ahmed Ismail
quelle
1
-citkist sehr irreführend und kann zu Fehlern führen. -cKräfte wieder aufzunehmen, auch wenn es nicht viel Sinn macht. Die Standardeinstellung lautet bereits "Weiter". -iEs könnte in Ordnung sein, aber sei vorsichtig, dass du bei einigen Videos möglicherweise Fehler übersiehst. -tist bereits die Standardeinstellung und veraltet. -kmacht keinen sinn mit -f mp4. Weitere Informationen finden Sie in den häufig gestellten Fragen zu youtube-dl .
Phihag
3

Wenn Sie mehrere Video-URLs haben, fügen Sie diese einfach in einer Wiedergabeliste zu Ihrer YouTube-Wiedergabeliste hinzu, indem Sie eine neue erstellen oder eine vorhandene verwenden.

Dann benutze den folgenden Befehl.

youtube-dl -f FORMAT --yes-playlist [url-of-playlist]

Die Option --yes-playlistlädt die Wiedergabeliste herunter, wenn die URL auf ein Video und eine Wiedergabeliste verweist.

Dies ist die einfachste und schnellste Option, die ich zum Herunterladen von Hunderten von Videos von einer Website gefunden habe, auf der Videos von YouTube verlinkt waren.

user669330
quelle
Dies ist nützlich, um viele Videos vom selben Kanal herunterzuladen. Sie können eine nicht aufgeführte Wiedergabeliste verwenden, um sie nicht öffentlich zu machen
qwr
3

Um mehrere Videos herunterzuladen, können Sie diese Struktur verwenden. Es ähnelt der Antwort von @ coreyb mit dem Zusatz, dass Sie es an anderer Stelle in bash verwenden können, zum Beispiel mit Echo. Hier sind zwei Möglichkeiten:

Hosenträger

youtube-dl -f FORMAT {url1,url2,url...}

Wiederholen Sie den letzten Befehl ohne das letzte Argument

youtube-dl -f FORMAT url1; !:- url2; !:-url...
Xui
quelle
3

Die einfachste Lösung wäre, ein solches Bash-Skript zu erstellen

#!/bin/bash
terminal=`tty`
exec < ~/Documents/youtubevideolinks.txt

while read -r line
do
    cd ~/Desktop/TilakDa/
    youtube-dl -f 18 "$line"
done
exec < "$terminal"

Kopieren Sie einfach die Videolinks in dieser TXT-Datei und fügen Sie sie in den Dokumentenordner ein. Fügen Sie dazu jede Video-URL in eine neue Zeile ein. Führen Sie dieses Skript aus, um die Videos nacheinander herunterzuladen. Standardmäßig ist die -f 18Option für 360p-Videos aktiviert

Shantanu Bedajna
quelle
1

Geben Sie den Befehl ein und geben Sie dann &&den folgenden Befehl ein:

youtube-dl--add-metadata -xic http://(the url) && youtube-dl--add-metadata -xic http://(the url) 
user859198
quelle
1

Versuchen Sie es mit einem Bash-Skript:

while read LL ; do youtube-dl "$LL" ; done < your_file
totolezero
quelle
1

Das Thema ist immer noch relevant, also:

  • Holen Sie sich Ihren YouTube-Link.
  • Entfernen Sie den ersten Videoparameter beginnend mit ?
  • benutze das so :-)

    youtube-dl.exe --yes-playlist https://www.youtube.com/watch?list=yourlistlink
    

Das funktioniert bei mir.

studen
quelle