Verhindern Sie die youtube-dl-Prozessaufspaltung beim Herunterladen von Metadaten für ein Video in einer Wiedergabeliste

Verhindern Sie die youtube-dl-Prozessaufspaltung beim Herunterladen von Metadaten für ein Video in einer Wiedergabeliste

Das Speichern der Metadaten für ein Video in einer Datei mit youtube-dl kann in bash durch den Aufruf von erfolgen

youtube-dl -j https://www.youtube.com/watch?v=${video_id} > metadata.json

Wenn jedoch auf das Video im Kontext einer Playlist verwiesen wird, d. h. durch den Aufruf

youtube-dl -j https://www.youtube.com/watch?v=${video_id}&list=${list_id}&index=${index} > metadata.json

dann verzweigt sich youtube-dl oder löst sich von der Shell (verstehe ich das richtig?) und die Ausgabe wird an das Terminal gesendet, anstatt an die Datei. Der Prozess scheint hängen zu bleiben, während er auf etwas wartet. Er kann mit Strg-C beendet werden.

Warum macht youtube-dl das und kann ich das verhindern? Ich möchte die Metadaten zur Wiedergabeliste sowie die Metadaten zum Video speichern.

Antwort1

DerHülseverschiebt Prozesse in den Hintergrund, wenn Sie sie mit dem &Operator ausführen.

Da die betreffenden YouTube-URLs ein "&" als Trennzeichen für die Abfrageparameter haben, müssen siezitiertum zu verhindern, dass die Shell dieses "&" als Operator interpretiert, setzen Sie entweder die gesamte URL in Anführungszeichen (empfohlen, wenn Sie auch Variablen in der URL verwenden) oder stellen Sie dem "&" zumindest einen Backslash voran:

"https://host?a=b&c=d"

https//host?a=b\&c=d

verwandte Informationen