次のコマンドは、sedを使用してyoutube-dlの出力を処理して、ビデオのファイル名を取得します。
youtube-dl "$URL" 2> /dev/null | \
sed -n 's/^\[download\] Destination: //p; s/^\[download\] \(.*\) has already been downloade.*/\1/p'
youtube-dlがHTMLのインポートと解析を終了し、ビデオのダウンロードを開始した直後(実行開始後数秒/秒)、ダウンロードが完了した後にビデオのファイル名を出力します(サフィックスに再生時間が追加されます).part
。ダウンロードしました)
だから問題の核心と私が妨げているのは、どのように上記のコマンドをバックグラウンドに入れて(続きをダウンロードする)、標準出力からビデオファイル名を取得して開くことができるかということです。ダウンロードが完了する前のビデオファイル。
ベストアンサー1
あなたが使用できるinotifywait
:
$ youtube-dl "$URL" &
$ inotifywait --event create --format '"%f"' . | xargs vlc
そこには競争条件があります。接続が非常に速い場合(私はそうです)、プレーヤーがファイルを開く前にファイルをダウンロードして名前を変更できます。また、youtube-dl
オーディオとビデオを別々にダウンロードするなどの操作を実行すると、間違ったファイルを開くことがあります。