
Ich habe vor kurzem gefragtDiese Frage zur Verwendung der gpaste get
Ausgabe als STDIN
für youtube-dl. Diese Frage wurde inzwischen beantwortet, aber ich möchte nun zum nächsten Schritt der Automatisierung einer Multi-Command-Aufgabe übergehen:
Starten Sie einen Download des Videos im aktuellen Ordner mithilfe der URL, die Sie aus der URL-Leiste im Firefox-Befehl kopiert haben:
youtube-dl $(gpaste get [video url])
Konvertieren Sie die MKV-, MP4- oder M4A-Datei in einen WAV-
Befehl:ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav
[...Prozess geht weiter...]
Meine Frage ist: Ich bin noch neu bei Regex. Gibt es eine Regex-Sequenz, die ich verwenden kann, um den Dateinamen aus der vom youtube-dl
Befehl erstellten Datei zu übernehmen und ihn als Eingabe für den folgenden ffmpeg
Befehl zu verwenden?
Hier ist ein Beispiel:
gpaste get 0
kehrt zurückhttps://somevideo.com/video
youtube-dl $(gpaste get 0)
Y
Lädt die Datei mit dem Dateinamen && in den aktuellen Ordner herunter
ffmpeg -i <filename Y>
Gibt ein Duplikat der ursprünglichen Datei zurück, jetzt im .wav
Format
Wie kann ich Bash dazu bringen, den Dateinamen Y abzurufen, bevor er existiert, damit ich das alles in ein Skript einfügen kann?
Muss ich auch nach einer Reihe von Dateitypen (alle Videotypen) filtern oder nach der aktuellsten Datei im aktuellen Ordner oder einer Kombination aus beidem?
Antwort1
Habe gerade die Dokumentation von youtube-dl geprüft, es akzeptiert diesen Parameter:
--get-filename Simulate, quiet but print output filename
Vielleicht können Sie so etwas versuchen:
videourl=$(gpaste get [video url])
videofilename=$(youtube-dl --get-filename $videourl)
youtube-dl $videourl
#further processing.