Holen Sie sich youtube video-Titel, während video-Download

In meinem bash-Skript, das ich konsequent video-download:

youtube-dl -f mp4 -o '%(id)s.%(ext)s' --no-warnings $URL

und dann immer video Titel:

TITLE=$(youtube-dl --skip-download --get-title --no-warnings $URL | sed 2d)

Diese beiden Befehle einige Zeit dauern: der ehemalige dauert 1-10 min (je nach video-Dauer), und das letztere dauert 10-20 Sekunden.

Gibt es eine Möglichkeit, um video-Titel im hintergrund, während das herunterladen von video?

PS. Kann ich nicht senden, um hintergrund-erste Befehl (video-download), weil ich nach der Arbeit mit video-Datei: get Dateiname Größe und Dauer für die item meta in rss-Feeds.

InformationsquelleAutor n0n | 2017-11-03



One Reply
  1. 2

    Allerdings könntest du den zweiten Befehl ausführen im hintergrund, so dass zwei Zugriffe auf YouTube, besser wäre tun Sie es mit einem einzigen Aufruf zu youtube-dl mit der --print-json option, kombiniert mit einem jq filter:

    title=$(youtube-dl -f mp4 -o '%(id)s.%(ext)s' --print-json --no-warnings "$url" | jq -r .title)

    Videos werden im hintergrund heruntergeladen, und alle video-details werden sofort. Sie können dann filtern Sie die Felder von Interesse mit jq wie oben, oder speichern Sie Sie für später verwenden:

    youtube-dl -f mp4 -o '%(id)s.%(ext)s' --print-json --no-warnings "$url" >metadata
    title=$(jq -r ".title" metadata)
    duration=$(jq -r ".duration" metadata)
    view_count=$(jq -r ".view_count" metadata)

    In Fall, dass Sie wollen, haben Fortschritt ausgegeben, während das herunterladen von und speichern von Metadaten zu einer JSON-Datei, die Sie verwenden müssen, die --write-info-json option statt. Die Daten werden in die Datei mit dem Namen der video-Datei, jedoch mit der Erweiterung .info.json. Zum Beispiel:

    youtube-dl -f mp4 -o 'video.%(ext)s' --write-info-json "$url"
    title=$(jq -r ".title" "video.info.json")
    • Vielen Dank, es funktioniert! Kann ich youtube-dl Ausgabe auf STDOUT download-Fortschritt?
    • In diesem Fall möchten Sie vielleicht die Verwendung der --write-info-json option statt. Siehe mein update.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.