Radishで録音したm4aにタグを付ける、Dockerで
radikoを録音するシェルスクリプトを探していたら、なんやかんやあってradishにたどり着いた。
いろいろサイトをたどったのだけど、誰が何を作ってどこで配布してみたいな経緯はもうよくわからない。リンク切れもよくある。
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で予約するとかあとは色々お好みでやっておしまい。