youtube-dl -o - <webpage> | vlc -
VLCにビデオを表示します。しかし、ビデオは管路(このようにfd://0
)前方/後方にジャンプする可能性を抑制します。
ただし、youtube-dl -j <webpage>
複数の「url」属性を含むJSONデータが一覧表示されます。これにより、vlc <url>
VLCはローカルビデオを再生するのと同じように、ビデオの長さ、ジャンプなどを表示します。
質問:URLを抽出するための小さなPythonスクリプトを書くことは完全に可能です。しかし、単純なBash(できるだけ行のコード)を使ってこれを行う簡単な方法はありますか?
注:youtube-dl -j
さまざまな品質のビデオストリームが一覧表示されているので、最高品質のビデオを選択するのが最善です。
答え1
シェルからJSONを解析するのは一般的に良い考えではありません。 U&Lのほとんどすべての質問に対する答えは、「シェルでこのJSONをどのように解析するのですか」ということを簡単に見つけることができます。jq
またはjshon
)。
youtube-dl
そのため、利用可能な複数のビデオバージョンがある場合は、ビデオバージョンを選択してそのURLをダウンロードするのではなく、標準出力に印刷する機能を利用することをお勧めします。
--format
または-f
: 書式を指定できます。最高の品質を得るためにbest
。実際には、次の理由でこれが必要ない場合があります(manページを参照youtube-dl(1)
)。デフォルトでは、youtube-dlは利用可能な最高品質をダウンロードしようとします。
--get-url
、またはは-g
ビデオのダウンロードを防ぎ、選択したビデオのURLのみを標準出力として印刷します。
次に、機能を利用してvlc
URLでビデオを再生(および検索)します。 URLを次に送信できますvlc
。
youtube-dl --get-url --format best 'https://www.youtube.com/watch?v=video_id' | vlc -
または、vlc
コマンド置換を使用してURLを引数として呼び出します。
vlc "$(youtube-dl --get-url --format best 'https://www.youtube.com/watch?v=video_id')"