PCの音楽プレイヤーでyoutubeの動画音声をだらだら流したいってことありますよね?
方法としては動画をローカルに保存して、音声ファイルに変換したりして流すってのがメジャーなやりかたかなと思います。
私は音楽再生をサーバー上のmpdでやっていて、いちいちダウンロードや変換をするのは無駄が多いと思っていました。
調べた結果、urlからネットワーク上の音声ファイルを直接再生する方法があるようなのでそれを紹介します。
まずは音声ファイルのurlを取得する方法ですが、yt-dlp(調べてないですが、youtube-dlでも行けるかもしれません)を利用します。
下記のオプションを付けて実行すると返り値にurlが返ってきます。(海外サイトから見つけてきたもののままなので、オプションは最適化できるかもしれません)
yt-dlp --no-check-certificate --no-playlist -e -f bestaudio -g [元動画url]
返ってきたurlを音楽プレイヤーに突っ込んであげればそのまま聞けます。
ついでに、mpdでの運用を考えるなら、httpサーバーも一緒に入れて下記のような構成にすると便利かもしれません。というか私がそうしています。
- youtube api等を用いてキーワードから検索したり、動画urlを入力できるwebページを用意
- webページの入力内容等をそのままコマンドラインに流し込んでyt-dlpに入力し、返ってきたurlをmpc addで追加
ただ、しばらくしたら同じurlで聞けなくなってたりする気がします。連続再生制限とかに引っかかってるんでしょうか。
手法だけ書いておけば再現は容易と思いますので、具体的なコードなんかはそのうち気が向いたり要望がきたりしたら追記します。