web-dev-qa-db-ja.com

YouTubeからオーディオをストリーミングする

YouTube動画をストリーミング(ダウンロードせずに)したいだけです。 pythonでこれを行う簡単な方法はありますか、それを行うスクリプトが存在しますか?または、ビデオを一時ファイルにダウンロードし、変換して再生する必要がありますか?

2
Wet Water

pafyは、VLCやmplayerなどに渡すURLを取得するために使用できるPythonライブラリです。オーディオのみを指定できます。よく文書化されています here で、Sudo apt-get install python-pafyでインストールできます。

youtube-dlに似ているytdlと呼ばれるコマンドラインツールが付属しているため、実際には望んでいることを実行できないことに注意してください。いくつかのpythonを作成する必要があります。あなたの質問の性質上、これは問題ではないと思いますが、さらにサポートが必要な場合はお知らせください。

5
wxl

これはあなたの問題に対する完璧な解決策ではありませんが、おそらくあなたを助けるでしょう。

youtube-dl

youtube-dlというコマンドラインツールがあり、多くのオプションが用意されています。最初に完全なビデオをダウンロードしてから、オーディオに変換すると思います。オーディオストリームのみをダウンロードする可能性があるかどうかはわかりませんが、そうではないと思います。また、youtube-dlはpythonで書かれていますが、単なるスクリプトではありません。

マンページをご覧になる場合は、後処理オプションを探してください。 --extract-audioは、たとえば、ビデオファイルをオーディオファイルに変換します。 --audio-format--audio-qualityを設定することもできます。 --exec CMDを使用してダウンロードした後、カスタムコマンドを実行することもできます。

VLC蒸し

または、VLCを使用してビデオをストリーミングし、ビデオ機能を無視またはオフにすることができます。

URLをコピーし、vlcを開いてCtrl + Vを押すか、ネットワークSteam(CTRL + N)を開いてURLを貼り付けると動作するはずです。次に、「ビデオ」->「ビデオトラック」->「無効化」をクリックします。

これにより、ビデオ全体がストリーミングされますが、表示されないことに注意してください。

2
verpfeilt

Vlcとテキストベースのブラウザlynx(どちらもUbuntuのリポジトリから入手可能)を使用している場合、コマンドラインからビデオをストリーミングするために使用できる巧妙なトリックがあります。私が使用するコマンドは、検索を実行し、vlcで再生される結果の最初のページのプレイリストを作成します。

トリッキーな構文を処理する簡単なスクリプトを作成しました。スクリプトは次のとおりです。

#!/bin/bash
lynx -dump "https://www.youtube.com/results?search_query=\"$1\"" | egrep -o "http.*watch.*" | vlc -

したがって、stream_youtubeと言ってスクリプトに名前を付けると、「stream_youtube "search term"」と入力できます。

しばらく使用せずに試してみたところ、今まで見たことのないウィンドウにいくつかのエラーが表示されるのに気づきましたが、いらいらしながらも機能しました。誰かがそれを役に立つと思うかもしれませんし、少なくとも面白いかもしれません。 :-)

2
Marty Fried

Youtube-dlの出力を任意の形式でffplayにパイプして、ウィンドウを表示することはできません。

例:

youtube-dl -f 251 https://www.youtube.com/watch?v=vdRJMuOFO88 -o - | ffplay -nodisp -autoexit -i -

これはシェルを介して行われますが、両方のアプリにpythonバインディングがあるため、必要に応じてプログラムで行うことができます。

0
demon36