Streamlink utils Tool Raspberry Pi
前回作成したyoutube-dl utils Toolのstreamlink版を作成してみました。
Streamlink
インストール
$ pip3 install --upgrade --user streamlink
基本の書式(ダウンロード)
$ streamlink URL best -o 'hogehoge'
$ streamlink –plugins
streamlinkはサイトごとのpluginで実行します。国内(動画)サイトでは abematv, nhkworld, nicoliveなどがありますが当サイトではabematvを利用しています(ほか未確認)
基本のプログラムはyoutube_dl_utils.pyをベースに作成(streamlink_utils.py)しましたが操作性の統一を図るためyoutube_dl_utils.pyにも若干の変更を加えています。
Listbox
listboxの表示は自然な並びにするためsort -V追加
multimedia_list = "ls -FA | sort -V"
URL欄 urlをコピペ
Title欄 タイトル入力
streamlinkではタイトルを取得するオプションが見つからなかったのでタイトルを手作業で入力。空欄の場合は日付+時間を適用。取り敢えずなにか(話数)だけ入れてDL後ファイルマネージャーで変更しても可
Stream Linkボタンで実行開始
Streams各ボタンはStream sizeを変更(デフォルトは任意に変更)
# default stream(480p)
stream = “480p”
640×480 4:3
854×480 16:9
JSON DATA
grep -E(正規表現) 数値(3桁〜4桁)+pの行を検索
# url(stream) def url_click(): url = url_entry.get(); url = url.strip() t = t_entry.get(); t = t.strip() if not url: messagebox.showinfo('streamlink', 'No URL !') return st = ("streamlink '" + url + "' -j | grep -E '[0-9]{3,4}p' | awk '{print($1)}' | cut -c 2-5") st = (subprocess.Popen(st, stdout=subprocess.PIPE, shell=True).communicate()[0]).decode('utf-8') messagebox.showinfo('streamlink', 'Streams \n\n' + st)
URL欄にurlを入力URLボタンで取得したJSON DATAから指定可能なstream sizeを抜き出します。urlを間違っていたり解釈不可の場合は空になります
abematvではurlが合っている限りこのサイズを表示します。比較的新しいコンテンツは指定可能ですが古い(4:3)形式のものは480pが出力されたりbestではエラーになることもあるようです(480pが無難)
180p worst
1080p best
youtube plugin
streamlinkは一応youtubeもpluginリストにあります。(youtube-dlがあるので使うことは無いのですが)
但しJSON DATAを取得出来ないurlが多い(DL不可)YouTubeの仕様変更に対してstreamlinkの対応が遅れているものと思います。
この例では144p(worst), 240p, 360p(best)が指定(DL)できます。
DLはbestが早いようだ
script file
scriptボタンでYouTube_dl Tool同様スクリプトファイルに書き出します。Title(edit)ボタンで編集
abematvのurlは連番形式とわかりやすくなっています。またタイトルもここで編集可(ファイル名 .streamlink.sh)
Listboxからファイル.streamlink.shを選択してStream Linkボタン(Yes)でDL開始
mediainfo
$ sudo apt install mediainfo
abematvの配信形式はMPEG-TSになっています。(トランスポートストリーミング)
Piでは拡張子が無くてもmpv,vlcからは正常に認識、再生可。拡張子を付けるならtsが適当と思います。
update
streamlinkのupdateはインストール時と同じコマンド
オプションstreamlink –version-checkを実行して同じバージョンならOKボタン
–version 2.3.0のorangepi3で実行確認
新しいバージョンがあればYes/Noボタン
youtube_dl_utils.py
scriptファイルの編集はType(edit)ボタンに変更、URLボタンは2つのウインドウが出るので見やすい方を選択
updateはw3mでサイトを確認するようにしました。
参考
streamlink_utils.py.20210917
youtube_dl_utils.py.20210917
2020年米RIAAからの著作権問題についてはyoutube-dlは白の判定が下りましたが各サイトについてはグレーです。
くれぐれも個人利用、自己責任で!