Linux でらじる★らじるも録音しちゃう

CentOS

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 化する方法を紹介したい。気長にお待ちを….

関連記事

コメント

  1. 黒本瞳 より:

    あなたのブログ私教育だ。

  2. axt_star より:

    スクリプト使わさせていただきました。
    問題あればご一報ください。

    • matchy より:

      本文にも書いていますが、ワタシが作ったものというよりはいろいろな先達が作ったものをまとめたものといいますか、先達のスクリプトも特に制限はなかったと思うので、問題ないと思いますよー

  3. rtmpdumpで録音してましたが、時々上手くいかない時がありました。mplayerで安定すると良いのですが・・・使わせて頂いてしばらく様子を見ます。

  4. nemo より:

    NHKが8月途中から急に聞けなくなってどうしたものかと思っていましたが、記事を見て納得しました。
    さっそく対応の記事を書いていただき、ありがたいです。
    無事動くようになりました。ありがとうございました。

  5. KEYBO より:

    こちらもNHKが9月から録音出来ず、この記事の情報でやってみましたが、10秒ぐらいで終了してしまいます。
    Linuxディストリビューションはcentos5ですが、これも関係していますでしょうか。

    • matchy より:

      ああっホントだ切れてる!!!これはイカンですね。mplayerがイマイチっぽい。むしろrtmpdumpでできるようになっているという噂があるのでそっちでスクリプト組み直してみます。しばしお待ちを

      • matchy より:

        というわけで大幅に修正しました。今度は大丈夫なはずです!

        • aretha より:

          さっそくの修正ありがとうございます
          初心者のためrtmpdump2.4のインストールに
          戸惑いましたが結果オーライでできました
          ばっちりです
          またリナックスラジオ生活に戻れます

  6. keybo より:

    ありがとうございます。修正版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

  7. KEYBO より:

    あの後スクリプト使いやすいように編集して何回か実行してみましたが、今は安定しているようです。訂正してお詫びします。但し、こちらの環境ではCronで実行する場合、rtmpdumpやffmpegはフルパスにしておかないと実行出来ませんでした。

  8. KEYBO より:

    本日、cronで18時から115分NHK第一放送を予約録音を試みましたが失敗でした。
    接続の所で、固まるようです。
    時間帯なのか、設置環境なのか・・皆さんの所は安定してますか。

  9. aretha より:

    当方は安定しています 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

    • matchy より:

      なるほそ、rtmpdumpのバージョンが問題なんすかね。そろそろ私家版rpm作らんとイカン感じかなー

      • KEYBO より:

        当方もrtmpdumpはV2.4を使用していまして、DTIのServerMan@vpsのレンタルサーバでcentos5 3.2bit版の環境です。
        本日、昼過ぎの番組は問題なく録音出来ていました。
        もう少し、様子を見ることにします。

  10. MATH_T より:

    ラズパイ(Raspbian)で、rtmpdump v2.4 を使っていますが不安定です。
    録音しないで、パイプで mplayer に繋いでラジオとして聞いてみても
    症状は変わらないようです。(時々は、OKです)
    rtmpdump の問題でしょうか? しばらく様子を見ています。

  11. matchy より:

    いろんなはなしをきくと、rtmpdump の git から新しいのをビルドすればいいらしいという話がありますね。時間ができたら私家版 rpm を作ってみようかな

    • matchy より:

      というわけで最新開発版rtmpdumpの私家版rpm (RHEL/CentOS用) を作ってみました。安定して録音されてる気がします。debian 系の方は…とりあえず野良ビルドされてみてはいかがでしょーか。気が向いたらそのうちPPAかなんか作ります

  12. KEYBO より:

    MATCHYさんの私家版rpm使用させて頂き安定して動き出しました。ありがとうございます。
    ところで、録音スクリプトのffmpegでmp3に変換したあと、NHKFMがモノラルに変換されてしまいます。他の人はどうでしょうか。
    -ac 2のオプションを付けてもだめです。
    コーデックを使用せず、-acodec copyでm4aへ変換しても良いのですが、音量が小さい感じがします。それで-volを付けて音量を上げようと思ったのですが、何をしてもダメなようです。

    • matchy より:

      最近録音するばかりでなかなか聴く時間がないんですけど(汗)こちらではそんなことないような気がします。なんででしょうね??

  13. KEYBO より:

    デコードしないm4aとデコードしたmp3に変換した音源をiPodへ転送してみて聞いて気が付きました。
    mp3はステレオ感が全くない感じです。rajikoのFM局スクリプトでffmepg変換したmp3はこのようなことないのですが・・・らじるの基音源の問題か??

  14. 藤川神奈 より:

    公開いただいているスクリプト、いつも助かっています!
    迅速な修正ありがとうございました!

    こちらの環境でも問題なく動作しました。
    利用している環境は、Ubuntu16.04 LTS, ffmpeg 2.8.11 (apt-getでインストールしたもの) です。

    こちらのスクリプトで好きな番組を録音できそうです。
    本当ありがとうございました!

  15. 田舎住まいの爺さん より:

    スクリプト変更、ありがとうございました。
    NHK、また仕様変更したなとは思ったのですが、RTMPDUMPを廃止したとは...
    これを機会に自分でも何かできるように、
    先人の道をたどりながら色々調べて、勉強してみます。
    本当にありがとうございました。

  16. aretha より:

    2年前に続き早速の対応ありがとうございます。
    私もラズパイですがあっさり動いてくれました
    matchyさんすごいですね

    実はバックアップ用にCentOS6 32bitもあるのですが、
    yumで入るのがffmpeg065でして、四苦八苦してソース
    から3.2を入れたのですが動いてくれません。
    そろそろCentOS7にすべきかなぁとか思いながら
    もうちょっと四苦八苦することとします。

  17. より:

    ありがとうございます。この方法を使って、NHKラジオ録音サイトを開発しました。
    http://radio.ilaputa.org

  18. aki より:

    更新と公開ありがとうございます。