東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

radikoの録音を録画サーバで構築したい。それ、docker使えばできる。


スポンサードリンク

背景

radikoの録音をリアルタイムで実施しています。古いノートPCにubuntuを入れて、各種ツールを駆使しているというのが状況です。

録画サーバを24時間通電しているので、かねてより録画サーバに乗せ換えようとしていました。

そこで、過去には以下の記事に書いたようにVMで構築してみました。コンパイルでエラーとなったものの、CentOS7.4でも動作することは確認できました。

nomusicnolife.hatenablog.com

で、録画サーバでradiko録音をするようにしようと考えていたのですが、radiko録音することで録画機能が急に動かなくなるのが嫌だと避けていました。

最近、dockerを触り始めたので、もしかしたらdockerでradiko録音ができるかもしれないと思い立ちました。dockerだったら環境を汚さないと思い、改めてradiko録音機能を録画サーバで動かすことを考えました。

先人達の知恵を参考にする

調べると、同じようなことを考えている方はいらっしゃるんですね。ざっと調べたのが以下です。

なじみのあるシェルをdocker 「docker_rec_radiko

簡易Radiko録音スクリプト · GitHubをベースにdockerにしているのが以下です。スクリプトを個人的に変更しているので、それを読み込ませれば自分好みに変更できそうです。

radiko録音スクリプトのdocker化 – into the lambda

mp3のタグOK 「sarlos/rec-radiko

mp3のタグを入れるようにしているのが以下です。

sarlos/rec-radiko - Docker Hub

Goで書いてる 「yyoshiki41/radigo」

以下のようにGoで書いてい、それをdockerで動かしている方もいらっしゃいました。すごいっす。

radikoの録音ツールをGoで書いた - Qiita

求める要件

radiko録音機能に求める要件は以下です。

  • リアルタイム録音ができる タイムフリーに対応していない番組もあるため
  • どの番組を録音したかファイル名で判別できる 複数録音するとどの番組かわからなくなってしまうため
  • 録音してできたファイルサイズは小さくしたい iPhoneへの転送時間を短くしたいし、HDDの空き容量は確保したいから
  • 録音したファイルは自宅NASに自動で格納したい ファイルはNASで一元管理したいから

試しに動かすと、動いた!

試しに「docker_rec_radiko」「yyoshiki41/radigo」の2つを動かしてみました。

「docker_rec_radiko」はちゃんとmp3での録音ができました。動かす際にファイル名を引数で渡せるので、ファイル名も変更できます。イメージを作る際にシェルを変更しておけばmp3だけではなく、aacでもいけるんじゃないかと思いますので、変更していきたいと考えています。

「yyoshiki41/radigo」は現状だとファイル名が変更できなさそうです。

イメージのサイズを確認してみました。はdocker_rec_radikoは402MB、yyoshiki41/radigo は66MBと約6倍の差があります。

# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
docker_rec_radiko               latest              0377a4daecf4        About an hour ago   402MB
yyoshiki41/radigo               latest              bd9673ada3c4        2 weeks ago         65.9MB

docker_rec_radikoのDockerファイルで「FROM debian:9.5-slim」と変更して作り直したら、328MB になりました。

# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
docker_rec_radiko               latest              33a5fdc48e3b        13 seconds ago      328MB

f:id:padobure:20181001105735j:plain:w300