2015/9/14: 録音できなくなっていることに気がついたので、こちらを参考に9月1日以降の仕様変更に対応しました
2015/9/20: なんかちゃんと録音できてなかったので、こちらを参考に全面的にスクリプトを修正しました
2015/10/14: rtmpdump が不安定なようなので、現時点で最新の開発バージョンの私家版rpmを作成しました。本記事の末尾を参照してください
2017/9/5: らじる★らじるの配信が rtmp から HLS (HTTP Live Streaming) に完全移行し、rtmp を廃止したようです。HLS は直接 ffmpeg や avconv で吸い出すことができますので、それを使うようにスクリプトを修正しました
2022/6/22: 久しぶりに使ってみたら動かなかったので、2022年3月以降の新サーバーに対応させました
先日の Linux で Radiko を録音する話の続きである。すぐに続けるつもりが随分たってしまった。
これまた先日書いたことだけど、このBlogのサーバーを移転したわけなんだけども、さくらの VPS が安くてそこそこ安定していて、個人利用には充分らしいという噂を Ruby / MySQL / Postfix 界隈の有名人であるとみたまさひろさん (日本OSS貢献者賞受賞おめでとうございます) からおききしていたので、そこにしたのである。
で、なんでも石狩にデータセンターがあるということで、石狩ってーとあれですか、北海道ですか。ミスターこと鈴井貴之氏のラジオ番組とか録音できるのかなあと思っていろいろ試したところ、北海道の放送は1つも入らず、首都圏の放送が録音できる状態だったので、なんだか良かったような悪かったような。
まあ今まで首都圏の番組を録音するのに利用してたサーバーはあんまり大きな声では言えないところのをゲリラ的に使っていたので(こらこら)、ほんのちょっとでも後ろめたいところがあるとこよりこっちのほうがもちろんいいわけで、まあ移転できて良かったんだけども。
さて、世間は新年度ということで、学生さんもぼちぼち学校はじまっているわけだけれども、ラジオに関して言うとNHK 第2放送なんかで語学の番組が新しい年度ということでリニューアルスタートをしているものが多かったりする。これを機にエエトシはこいているけれども、改めてラジオで語学の勉強をするのもいいかもなあ、こちとら工業高校卒なので、中学1年から英語をやり直すとか…などと夢想するのであった<夢想するだけかい。
というわけで、先日のスクリプトでは NHK は録音できないので、同じ塩梅で NHK のらじる★らじるを録音できるスクリプトを、これまた先達の成果をいろいろかすめとりつつ、Radiko のスクリプトと同じ形式にまとめてみた。
スクリプト
今回のスクリプトはこちら。例によって gist ってサイトを使っているので、リンク先の「raw」ってところをクリックして保存すればダウンロードできるみたいよ。
簡易らじるらじる(NHK)録音スクリプト (2022/03 以降版)
依存ツール
前回とほぼ同じなのだけれども、キモである rtmpdump というヤツが最新開発版でないとらじるらじるの録音ができないらしい。らじるらじるはFlash形式だけでなくaspxなWindows Media 配信もしているので、このスクリプトでは mplayer を使用している。ここに書いた追加リポジトリを使えるようにした上で、「sudo yum install mplayer」と実行して mplayer をインストールしよう。サーバーなのに使いもしない X 関係のライブラリがたくさん入ってしまうのがちょっと気に食わないけれども、rtmpdump の開発版を自分でビルドしなおすより面倒がないハズ。
イマドキ (2017年9月時点) の ffmpeg がうごけばたぶん大丈夫。ウチの Raspberry Pi の avconv でも動いている。
使い方
使い方はこんなカンジ。もちろん rec_nhk.sh に実行属性を付与しておくように。
./rec_nhk.sh チャンネル 録音時間(分) 保存先ディレクトリ ファイル名
第1引数は放送局のチャンネル指定。第2引数は分単位の録音時間。第3引数はファイルの保存先ディレクトリで、指定しなければカレントディレクトリに保存される。第4引数は番組名など、ファイル名にしたい文字列を指定する。HOGEHOGEと指定すれば保存されるファイル名は HOGEHOGE_日付.mp3 だし、指定しなければファイル名はチャンネル_日付.mp3 の形式になる。
つまり、NHK-FM日曜 8:10~9:00 放送の『吹奏楽のひびき』を録音したければ、以下のようなカンジで crontab に登録すれば良いハズだ。
10 08 * * Sun /foo/bar/bin/rec_nhk.sh FM 50 /foo/bar/data SUISOGAKU_NO_HIBIKI
スクリプトの中身を見てもらうとわかるが、mplayer は rtmpdump と違って録音時間を指定できないので、sleep コマンドと組み合わせて同等機能を実現している。んが、なんか思っているより短めになってしまうようで、それはらじるらじるが正確な時間より気持ち早めに配信されているからなのかもしれないが、念のため指定より15秒長く録音するように細工してあるので、途中で切れてしまうことはないハズ。まちょと覚悟はしておけ。というかイヤなら1分余分に指定しておいた方が良いかもしれない。うんNHKはCMがない分、時間がシビアみたいだ。
チャンネル一覧
指定するチャンネルは次のとおり (2017/9/5 チャンネル追記)。
- 第1放送 — NHK1
- 第2放送 — NHK2
- NHK-FM — FM
- 札幌第1放送 — NHK1_SAPPORO
- 札幌NHK-FM — FM_SAPPORO
- 仙台第1放送 — NHK1_SENDAI
- 仙台NHK-FM — FM_SENDAI
- 名古屋第1放送 — NHK1_NAGOYA
- 名古屋NHK-FM — FM_NAGOYA
- 大阪第1放送 — NHK1_OSAKA
- 大阪NHK-FM — FM_OSAKA
- 広島第1放送 — NHK1_HIROSHIMA
- 広島NHK-FM — FM_HIROSHIMA
- 松山第1放送 — NHK1_MATSUYAMA
- 松山NHK-FM — FM_MATSUYAMA
- 福岡第1放送 — NHK1_FUKUOKA
- 福岡NHK-FM — FM_FUKUOKA
私家版rpm(暫定)
rtmpdump の動作が不安定なようなので、2015年10月14日時点の git の HEAD から私家版 rpm を作成しました。以下のようなカンジでお使いくださいな。あ、もちろんなにか問題あっても責任はとれませんってことで。
sudo rpm -ivh https://www.matchy.jp/repos/yum/el5/i386/matchy-release-1-0.2.noarch.rpm sudo yum install rtmpdump
CentOS/RHEL 5 (i686/x86_64)、6 (i686/x86_64)、7 (x86_64) のバイナリを作ったつもりです。
次回は…
さてこれで録音はNHKも含めてできるようになった。保存先も前回書いたようにBoxを使えばサーバーのディスクを浪費することもない。次はこれを便利に聴く方法、つまり Podcast 化する方法を紹介したい。気長にお待ちを….
コメント
あなたのブログ私教育だ。
スクリプト使わさせていただきました。
問題あればご一報ください。
本文にも書いていますが、ワタシが作ったものというよりはいろいろな先達が作ったものをまとめたものといいますか、先達のスクリプトも特に制限はなかったと思うので、問題ないと思いますよー
ありがとうございます!
rtmpdumpで録音してましたが、時々上手くいかない時がありました。mplayerで安定すると良いのですが・・・使わせて頂いてしばらく様子を見ます。
ありゃ、そうですか。いまのところこの方法で失敗したことはないです
NHKが8月途中から急に聞けなくなってどうしたものかと思っていましたが、記事を見て納得しました。
さっそく対応の記事を書いていただき、ありがたいです。
無事動くようになりました。ありがとうございました。
こちらもNHKが9月から録音出来ず、この記事の情報でやってみましたが、10秒ぐらいで終了してしまいます。
Linuxディストリビューションはcentos5ですが、これも関係していますでしょうか。
ああっホントだ切れてる!!!これはイカンですね。mplayerがイマイチっぽい。むしろrtmpdumpでできるようになっているという噂があるのでそっちでスクリプト組み直してみます。しばしお待ちを
というわけで大幅に修正しました。今度は大丈夫なはずです!
さっそくの修正ありがとうございます
初心者のためrtmpdump2.4のインストールに
戸惑いましたが結果オーライでできました
ばっちりです
またリナックスラジオ生活に戻れます
ありがとうございます。修正版rtmpdumpでやって見ました。手動でシェル実行しましたが、問題なく録音出来たり、接続時に止まってしまったり、安定しませんね。
WARNINGが出るのが気になります。
下記の場合は、途中1.41secで止まった画面です。
————————————————————————-
WARNING: No application or playpath in URL!
Connecting …
WARNING: HandShake: Type mismatch: client sent 6, server answered 9
INFO: Connected…
Starting Live Stream
For duration: 62.000 sec
INFO: Metadata:
INFO: audiodatarate 48.00
INFO: audiocodecid mp4a
9.233 kB / 1.41 sec
あの後スクリプト使いやすいように編集して何回か実行してみましたが、今は安定しているようです。訂正してお詫びします。但し、こちらの環境ではCronで実行する場合、rtmpdumpやffmpegはフルパスにしておかないと実行出来ませんでした。
本日、cronで18時から115分NHK第一放送を予約録音を試みましたが失敗でした。
接続の所で、固まるようです。
時間帯なのか、設置環境なのか・・皆さんの所は安定してますか。
うむーイマイチですねー
当方は安定しています CentOS6.6 32bit
rtmpdump2.4が必要だったので
http://memorandum.yamasnet.com/archives/Post-1383.html
を参考にインストール
rtmpdumpは/opt/rtmpdump/に入ったのでスクリプト中でフルパス指定しました
それ以外はオリジナルのままです
rtmpdumpは以下のメッセージが出ています Cron で1分指定です
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
Connecting …
WARNING: HandShake: Type mismatch: client sent 6, server answered 9
INFO: Connected…
Starting Live Stream
For duration: 75.000 sec
INFO: Metadata:
INFO: audiodatarate 48.00
INFO: audiocodecid mp4a
0.909 kB / 0.09 sec
2.242 kB / 0.30 sec
中略
468.132 kB / 74.80 sec
WARNING: Larger timestamp than 24-bit: 0xfffffeb6
469.179 kB / 74.97 sec
Download complete
なるほそ、rtmpdumpのバージョンが問題なんすかね。そろそろ私家版rpm作らんとイカン感じかなー
当方もrtmpdumpはV2.4を使用していまして、DTIのServerMan@vpsのレンタルサーバでcentos5 3.2bit版の環境です。
本日、昼過ぎの番組は問題なく録音出来ていました。
もう少し、様子を見ることにします。
ラズパイ(Raspbian)で、rtmpdump v2.4 を使っていますが不安定です。
録音しないで、パイプで mplayer に繋いでラジオとして聞いてみても
症状は変わらないようです。(時々は、OKです)
rtmpdump の問題でしょうか? しばらく様子を見ています。
いろんなはなしをきくと、rtmpdump の git から新しいのをビルドすればいいらしいという話がありますね。時間ができたら私家版 rpm を作ってみようかな
というわけで最新開発版rtmpdumpの私家版rpm (RHEL/CentOS用) を作ってみました。安定して録音されてる気がします。debian 系の方は…とりあえず野良ビルドされてみてはいかがでしょーか。気が向いたらそのうちPPAかなんか作ります
MATCHYさんの私家版rpm使用させて頂き安定して動き出しました。ありがとうございます。
ところで、録音スクリプトのffmpegでmp3に変換したあと、NHKFMがモノラルに変換されてしまいます。他の人はどうでしょうか。
-ac 2のオプションを付けてもだめです。
コーデックを使用せず、-acodec copyでm4aへ変換しても良いのですが、音量が小さい感じがします。それで-volを付けて音量を上げようと思ったのですが、何をしてもダメなようです。
最近録音するばかりでなかなか聴く時間がないんですけど(汗)こちらではそんなことないような気がします。なんででしょうね??
デコードしないm4aとデコードしたmp3に変換した音源をiPodへ転送してみて聞いて気が付きました。
mp3はステレオ感が全くない感じです。rajikoのFM局スクリプトでffmepg変換したmp3はこのようなことないのですが・・・らじるの基音源の問題か??
公開いただいているスクリプト、いつも助かっています!
迅速な修正ありがとうございました!
こちらの環境でも問題なく動作しました。
利用している環境は、Ubuntu16.04 LTS, ffmpeg 2.8.11 (apt-getでインストールしたもの) です。
こちらのスクリプトで好きな番組を録音できそうです。
本当ありがとうございました!
スクリプト変更、ありがとうございました。
NHK、また仕様変更したなとは思ったのですが、RTMPDUMPを廃止したとは...
これを機会に自分でも何かできるように、
先人の道をたどりながら色々調べて、勉強してみます。
本当にありがとうございました。
2年前に続き早速の対応ありがとうございます。
私もラズパイですがあっさり動いてくれました
matchyさんすごいですね
実はバックアップ用にCentOS6 32bitもあるのですが、
yumで入るのがffmpeg065でして、四苦八苦してソース
から3.2を入れたのですが動いてくれません。
そろそろCentOS7にすべきかなぁとか思いながら
もうちょっと四苦八苦することとします。
ありがとうございます。この方法を使って、NHKラジオ録音サイトを開発しました。
http://radio.ilaputa.org
更新と公開ありがとうございます。