RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
急遽、文化放送の某番組を録音する必要が出てしまいました。
当初はメインPCであるwin機を使って・・・と色々考えたのですが、
調べた限り、時間設定で自動起動→録音してくれて、文化放送をカバーしてくれるとなると厳しそう・・・。
当初はメインPCであるwin機を使って・・・と色々考えたのですが、
調べた限り、時間設定で自動起動→録音してくれて、文化放送をカバーしてくれるとなると厳しそう・・・。
ということで、もういっそのことサーバーの方で撮っちゃえばいいやと、こうなりました。
今回使用するのはradikoという”通常の”ラジオ番組をwebで放送しているwebサービスです。
radikoプレミアムに入会していないと番組によって聞ける地域が異なりますが
文化放送はradikoで関東1都6県、実際のラシオだと電離層の状態によっては新潟でも視聴できたりするそうです。
深夜帯は韓国の局と混信するとかしないとか
今回はこれを録音するシステムをサーバー上に構築していきます。
スクリプトはこちらのサイトで掲載されている簡易Radiko録音スクリプトを利用させていただきました。
※GitHubに飛びます
まずはわらげっとを用いてGitHubよりソースを頂きます。
wget https://gist.github.com/matchy2/3956266/raw/1b38b25eb954419b019cada7ba4081e88ea1fb16/rec_radiko.sh chmod 755 rec_radiko.sh
これでスクリプトが動けば皆HAPPYなのですが、まぁ動きません。
このスクリプトを動作させるにはrtmpdump,swftools,ffmpegの3つのパッケージが必要になります。
あちらこちらのサイト様ではContOS6で構成されているのか、割と簡単に落ちてるようで
ここらの工程ガン飛ばしが主流のようですが、当方CeontS7では簡単には落ちませんでした。なーにがyumで落とせじゃ(´・ω・`)
という訳でDLインストール工程も記述します。
まずはrtmpdumpですが、6では rpmforgeレポジトリにあったりするようなのですが、
7では存在しないのでわらげっとしてくる必要があります。
ところでリポジトリ?レポジトリ?
もちろん操作はroot権限で行かないと大変面倒なことになります。
wget http://rtmpdump.mplayerhq.hu/download/rtmpdump-2.3.tgz tar xvfz rtmpdump-2.3.tgz cd rtmpdump-2.3 make SYS=posix make install
以上のようにソースコンパイルします。
rtmpdump -hと打ってヘルプが出れば正常にインストールができているようです。
最後にコマンドをbinに投げます。ここでは/usr/local/binに投げてますが、
後で利用するcrontabには/usr/local/binにパスが通ってないので一緒にパスを通してしまいます。
/usr/binに投げればパス通さなくて良い気もするけど脳死対症療法で行きます。
パスはcrontabの2行目が置換されるようになっているのでcrontabがいじられてると吹っ飛ぶかも。
後追いの際は要確認なのです。
cp -p rtmpdump rtmpgw rtmpsrv rtmpsuck /usr/local/bin sed -i "2c\PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin" /etc/crontab
次にswftoolsですが、
こちらも7では存在しない(一応RPMのパッケージはあるっぽいけどドマイナーっぽい)のでぽい?
上と同様にソースコンパイルします。
wget http://www.swftools.org/swftools-0.9.1.tar.gz tar xvfz swftools-0.9.1.tar.gz yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel cd swftools-0.9.1 ./configure make make install
こちらの特徴はインストールに必要なツールの数が多いことでしょうか。
一応全部yumでインストールできるのですが、gccの関連がほぼ全部入ってしまうので割と時間がかります。
依存パッケージも含めて必要なものだけを特定するのはだいぶ骨が折れそうだったので
今回はそのままということで。どっかに意識高い人いないかなぁ。
最後にffmpegですが、こちらはレポジトリを2つインストールすれば依存を含めてAll OKだったので
今回はレポジトリ→yum方式を採用しました。
必要なレポジトリはepelとNux-Dextopです。epelは割と使うし既に入れてる場合もあるのでは。
まずはepel。ボクはphpmyadmin入れた時に入れてました。
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm rpm -ivh epel-release-7-5.noarch.rpm sed -i -e's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo
Nux-Dextopも同様にして入れていきます。ボクは入ってませんでした。
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm sed -i -e"s/enabled=1/enabled=0/" /etc/yum.repos.d/nux-dextop.repo
そして最後にffmpegをyumで落とします。これでやっとスクリプトが動作できる状態に。
yum -y --enablerepo=epel,nux-dextop install ffmpeg
まずは適当な番組で動作確認です。スクリプトを/rootにおいて以下コマンドで確認します。
~/rec_radiko.sh QRR 1 ~/ test
これで1分待つとhomeにtest_YYYY-MM-DD-HH_MM.mp3というファイルができているはずです。
引数は最初が局コードです。QRRが文化放送です。コード一覧はこちら。
前述したように地域によって取得できる局が異なります。
次が録音時間。分単位で設定できるようになっており、実際は+0.3秒くらいでしょうか。
次がファイルの保存先ディレクトリ。今回はhomeです。
testはファイル名のプレフィックスです。日本語対応しているようです。
ボクは録音時間じゃなくてn回目というデータが欲しかったのでちょっと改変していますが、
これをベースに使わせていただいています。ラジオタイトル拾えたら楽なんだけど
で、最後に自動化です。ラジオといえば週1放送ですが、
CeontOS7のcron.weeklyは色々とどうしてこうなった感が強く個人的に推奨できないのでcrontabに直接記載していきます。
crontab -eを使うのは-rと間違える恐れがあり危険なので直接編集(という名の別の何か)を行います。
echo "59 1 * * 0 root /root/rec_radiko.sh QRR 32 /var/www/html chimame" >> /etc/crontab
今回は文化放送の土曜26:00~26:30の枠を録音するようにします。
一応前後1分余剰を入れてはいますが挙動によっては必要ないかも?ここはもうちょっと動作見て検討します。
番組単位の録音ではないので延長は考えてないです。できたらいいなぁ(´・ω・`)
>>を>にすると悲劇が起こるのでcrontab -rと危険性という意味では大きく変わらない気もしますが
今回は深く考えずにこれでいきましょう。最近はエディタを使わないファイル操作が個人的主流です。
何を考えてこんな記事を上げてるのかは勘の良い皆様ならもうおわかりかとは思いますが。
今日はこのような記事となっております。
放送開始は7/2の26時でしたね。皆様準備は念入りに。それでは今日は以上です。
本日の参考様
スクリプト | https://gist.github.com/matchy2/3956266 |
rtmpdump/swftools | http://blog.goo.ne.jp/roby619/e/c63ded90cc09cebd3ced7d1f6b23e3bf |
ffmpeg | http://vild.hatenablog.com/entry/2015/09/29/125940 |
(^・ω・)ノ curonet at RadiumProduction
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
(01/11)
プロフィール
HN:
Luz
性別:
男性
アーカイブ