Raspberry Pi Streamlinkでradiko再生

CLIで実行する従来のradikoスクリプトはFlashを利用しておりAdobeのサポート終了に伴ってradikoの対応もいずれは廃止の方向に向かうものと思われます。
Streamlinkはストリーミング動画をコマンドラインで実行するpythonユーティリティです。radikoも対応しています。
コマンドラインから実行できるもうひとつの環境として試して見ます。

インストール

https://streamlink.github.io/index.html
Streamlinkはpluginでサイトに対応しています。現時点のRaspiOS(debian系)のパッケージは古いのでradikoに対応していません。
Streamlinkサイト Installation PyPI package and source codeの項からpipでインストール
インストールはシステムにインストールする方法とユーザーにインストールする方法があります
(ユーザーを選択)

$ pip3 install --upgrade --user streamlink

実行ファイルは~/.local/binに置かれます。パスを通しておくといいでしょう。

プレーヤーはvlcがインストールされています(Pi4) その他mpvをインストール

# apt install mpv

ffmpeg,youtube-dlは依存でインストールされます。youtube-dlは古いのでremoveする
radikoは以上でOK RTMPプロトコルのサイトはrtmpdumpをインストール

radiko

$ streamlink -p mpv http://radiko.jp/#!/live/FMT best
bash: !/live/FMT: event not found

ターミナルから直接radikoのurlを実行するとshellはhistoryを参照するようです(/#!/)
上記のコマンドをスクリプトにする
~/radiko-streamlink.sh

#!/bin/sh
~/.local/bin/streamlink -p mpv http://radiko.jp/#!/live/FMT best
# ffplay
# ~/.local/bin/streamlink -p 'ffplay -nodisp' http://radiko.jp/#!/live/FMT best

ffplayはffmpegに含まれる再生プレーヤー(音声のみはoption -nodisp)

スクリプト実行

$ chmod 755 radiko-streamlink.sh
$ ./radiko-streamlink.sh


簡単ですね! 面倒な作業無しに再生可能です。CLIスクリプトも作れそうです。
プレーヤーはvlc,mpv,ffplayで再生可
mplayerではradikoは動作しませんでした。

録音

#!/bin/sh
~/.local/bin/streamlink http://radiko.jp/#!/live/FMT best -o fmt.m4a


$ mediainfo fmt.m4a
AAC LC SBR

abema.tv

https://abema.tv/
お気に入りのプレーヤーで視聴 urlは取得する

$ streamlink -p vlc https://abema.tv/url best

download

$ streamlink https://abema.tv/url best -o hoge.ts

Radiko Streamlink Player

以前作成したpython radiko playerをstreamlink仕様にしてみました。

参考 radiko-streamlink.py
(保存すると日本語正常に表示すると思います)
player選択は# — default settings —
の項で切り替え可

起動当初は時折ブツブツ言っていたのですが時間経過ともに安定してきました。
再生開始はmpv10秒位、ffplay5秒位掛かっています。(Pi4)
Raspi zeroも再生可能ですが20〜30秒位掛かります。
Pi3クラスであれば問題なく運用可能と思います。