それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

pythonのリスト内包表記でネスト

list comprehensions で ネストしたい

for for をしたいなと思った。

data = [[ 3 ], [4] ]
[ e for row in data  for e in row ]

ネストと if 文

data = [[ 3 ], [4] ]
[ e for row in data  for e in row if e %2 ==0  ]

楽しい。 filter も map も要らない。list comprehensions 便利。

radikoの再生スクリプトを書き直した(python3.6)

radiko の再生スクリプトをマルっと書き直した

レポジトリはこちら

github.com

python3.6 でフォーマット文字列が導入されたので、ようやくPythonをシェルコマンド呼び出しに使って使いやすくなったので、ガンガン書き直した。

注意点とか

python3.6 で書き直した。

python 3.6の導入とか

pyenv を使う

git clone https://github.com/pyenv/pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
./pyenv/shims/bin/pyenv rehash
pyenv install 3.6.2
pyenv global 3.6.2
pyenv rehash
hash -r 

pyenv の準備ができたら

python play_radiko.py abc 

ABC*1 を再生

再生しながら録音、タイムフリー

ストリーミングを保存、タイムフリーの取得、再生、再生しながら保存などもついでにヤッておいた

rtmpdump は ffmpeg だけでもできるし、mplayerffmpeg 使ってるし、相当に冗長なんだけど、とりあえずraspi で 動けばいい的な

過去の関連資料

Radikoの再生&録音スクリプトをPythonで書きなおした - それマグで!

http://takuya-1st.hatenablog.jp/entry/2014/09/28/051532

Raspian(raspberryPi)でRadikoを聴く - それマグで!

コマンドからRadikoを録音する。 - それマグで!

*1:abc はradikoを運営してくれてる母体となった会社です。感謝。

Raspian(raspberryPi)でRadikoを聴く

Raspi でラジオを聞きたい

オーディオジャックから、ラジオを垂れ流したい。散々やってきたけど、Raspi ZeroからRaspi3に変えたので、オーディオジャックが使えるようになった

raspi のオーディオジャックでラジコを聴く

rtmpdump は必要。

rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp\
  --app ABC/_definst_\
  --playpath simul-stream.stream\
  -W http://radiko.jp/apps/js/flash/myplayer-release.swf\
  -C S:"" -C S:"" -C S:"" -C S:${authtoken}\
  --live --stop 5400 \
| omxplayer -o local  --hw --timeout 30s  --no-keys pipe:0

omxplayer が rtmp には対応してるけどキーを送れないのと、rtmpe は出来ないっぽい。この辺はそのうちもう少し調べたい。もしキー送信できたら omxplayer だけで完結するので。

--hwつけたら、ハードウェアデコードしてくれるらしいが、、効果あるんだろうか

omxplayer にパイプ

omxplayer に pipe でデータを渡すには --no-keys をつけて pipe:0 を指定する

この辺は過去資料にある。→ raspberry pi の omxplayer を標準入力でパイプして使う。 - それマグで!

コレだけの設定で、結構楽ちんに野球中継を垂れ流す事ができて幸せな感じある。

ちなみにタイムフリーは

ffmpeg を使うしか無い。omxplayer で m3u8 は再生できるが、CookieUA以外の、HTTPヘッダを追加できないみたいなので。

ffmpeg  -y \
   -headers 'X-Radiko-AuthToken: ${authtoken}'\
     -i 'https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=${channel}&ft=${start}&to=${end}'\
     -loglevel panic -acodec copy -  \
| omxplayer -o local --timeout 30s  --no-keys pipe:0

タイムフリー楽しい。