moOde audio streamlink + radiko

前回作成したstreamlink仕様のradiko playerをmoOde audioで試してみました。 取り敢えず動作確認は出来たものの今まで使っていたradikoスクリプトが動かなくなってしまいました!!! 遅かれ早かれ移行することになると思うのでstreamlink仕様にsimul.pyその他関連する箇所を急遽修正してみました。

Warning

現在稼働中のradikoスクリプトの環境にstreamlinkを導入するとradikoスクリプトは動かなくなる可能性があります。 現在の環境を壊したくない場合は導入しないようにして下さい。

auth1_fms

radiko streamlink player確認後、radikoスクリプト実行

$ ./radiko.sh -p FMT
[stop] failed auth1 process (/var/tmp/auth1_fms_11798)

$ ll /var/tmp
-rw-r--r-- 1 pi pi      0 12月  3 17:12 auth1_fms_11798
-rw-r--r-- 1 pi pi 198393  7月 29 16:24 authkey.png
-rw-r--r-- 1 pi pi 685413 10月  7  2016 player.swf

認証に失敗しているようです???

radiko streamlink player

補足
このプログラムは実験、確認用です。
moOde audioでradikoを再生するにはpulse audioを設定、pulse audioをスタートした状態でないと音量100%で出力します。
常用するには適切にpulse audioをコントロールするようプログラムを変更する必要があります。

moOde audioでは環境は整っているのでstreamlinkをインストールするだけでOK

raspberry pi zero + streamlink + ffplay 再生まで20秒弱 ギリギリ我慢できる範囲内です。
Pi4からも再生可なのでいいことにします。

simul.py

プレーヤーはffplay

# default player
#player = "mpv"
player = "'ffplay -nodisp'"

実行はradiko.shからstreamlink(194行目附近)

#subprocess.run(bin_dir + "radiko.sh -p " + proc + " 1>/dev/null 2>/dev/null &", shell=True)
subprocess.run("~/.local/bin/streamlink -p " + player + " http://radiko.jp/#!/live/" + proc + " best &", shell=True)

ON AIR radiko(368行目附近)

# on station radiko
#command = ("ps ax | grep rtmpdump | grep -v grep | awk '{print substr($5,1)}'")
command = ("ps ax | grep radiko.jp | grep -v grep | awk '{print $(NF-1)}' | awk 'NR==1' | cut -c 8-13")

(373行目附近)

#if proc == 'rtmpdump': # Radiko
if proc == 'radiko':

(376行目附近)

#command = ("ps ax | grep rtmpdump | grep -v grep | awk '{print substr($9,1)}' | tr -d /_definst_")
command = ("ps ax | grep radiko.jp | grep -v grep | awk '{print $(NF-1)}' | awk 'NR==1' | cut -c 26-")

参考 simul.py

radiko logo画像

/var/www/html/pulse.php

//$station = shell_exec("ps ax | grep rtmpdump | grep -v grep | awk '{print substr($9,1)}' | tr -d /_definst_");
$station = shell_exec("ps ax | grep radiko.jp | grep -v grep | awk '{print $(NF-1)}' | awk 'NR==1' | cut -c 26-");

参考 pulse.php

Pi zeroでは再生開始が遅いのがネック
再生自体は問題ない
ちょっと予定より早くなってしまいましたが脱Flashできました。