出張おはき゛ろく

Twitterで書ききれないことを書こうと思います。

Radishで録音したm4aにタグを付ける、Dockerで

radikoを録音するシェルスクリプトを探していたら、なんやかんやあってradishにたどり着いた。

github.com

いろいろサイトをたどったのだけど、誰が何を作ってどこで配布してみたいな経緯はもうよくわからない。リンク切れもよくある。

github.com

radikoの仕様変更でFlashを使う必要がなくなって、昔使っていたrec_radioko2.shみたいにrtmpdumpを入れてswftoolsを入れて、パッケージがなかったり古かったりするからビルドして……みたいなことをしなくてもよくなった。

なのでDockerで動かすことにした。
Dockerfile超シンプル。

FROM alpine:3.10

RUN mkdir /var/radiko
RUN mkdir /var/radiko/rec
RUN apk --no-cache add git bash curl jq libxml2-utils ffmpeg
RUN apk --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing add atomicparsley
RUN git clone https://github.com/uru2/radish /var/radiko/radish

m4aにタグを付けるためにAtomicParsleyも入れる。m4aに対応したeyeD3みたいなもの。Alpine Linuxのtestingリポジトリにあるのでapkのオプションで教えてあげる。

docker buildする。radishのタグをつけておこう。

docker build -t radish .

docker run で録音とタグ付けをする。ファイル名とかタグとか適当につけてます。

CHANNEL=TBS      # radikoのチャンネルID
MINUTE=1         # 録音時間
TITLE="hogepiyo" # 番組タイトルとか
LOCAL_DIR="/path/to/dir" # ホスト側の保存ディレクトリ

# ファイル名つくる
TIMESTAMP=$(date "+%Y-%m-%d_%H-%M")
FILENAME=${TITLE}_${TIMESTAMP}.m4a

# 録音
docker run  -v ${LOCAL_DIR}:/var/radiko/rec -t radish \
bash /var/radiko/radish/radi.sh -t radiko -s ${CHANNEL} -d ${MINUTE} \
-o "/var/radiko/rec/${FILENAME}"

# タグ付け
docker run  -v ${LOCAL_DIR}:/var/radiko/rec -t radish \
AtomicParsley /var/radiko/rec/${FILENAME} --overWrite \
--title "${TITLE}_${TIMESTAMP}" --artist "radiko" --album "${TITLE}"

crontabで予約するとかあとは色々お好みでやっておしまい。