rfriendsでラジオ録音

ラジコ、らじるらじる、タイムフリーのラジオ番組を録音

時刻合わせ (ubuntu)

ラジコ、らじるらじるを録音する上でもっとも大事なのはPCの時刻が正確であることです。これが狂っていると違う時間に録音を開始してしまいます。

 

ubuntuのntpサーバをコメントアウトし、日本のntpサーバを追加してください。

sudo vi /etc/ntp.conf

#server 0.ubuntu.pool.ntp.org

#server 1.ubuntu.pool.ntp.org

#server 2.ubuntu.pool.ntp.org

#server 3.ubuntu.pool.ntp.org

server ntp1.jst.mfeed.ad.jp

server ntp2.jst.mfeed.ad.jp

server ntp3.jst.mfeed.ad.jp

 

sudo service ntp restart

sudo ntpr -p

時刻合わせ (Windows10)

ラジコ、らじるらじるを録音する上でもっとも大事なのはPCの時刻が正確であることです。これが狂っていると違う時間に録音を開始してしまいます。

 

行うことは次の2項目です。

 

1)ntpサーバの設定

左下のWindowsアイコンを右クリック

コントロールパネルをクリック

日付と時刻をクリック

インターネット時刻のタブをクリック

 

標準では、「'time.windows.com'と自動的に同期するように設定されています。」と表示されます。

設定の変更をクリックして、サーバ名を変更してください。例 : ntp.jst.mfeed.ad.jp

NTP - wiki@nothing が参考になります。

 

2)時刻合わせのインターバル設定

Windowsの標準では、7日おきに時刻同期をするように設定されています。あまり短いとサーバに負荷をかけますが、7日は長すぎるので例えば1日に設定します。

regedit

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
SpecialPollInterval

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
UpdateInterval

 

上記2つの値を1日(24*60*60=86400)に変更 

16進 15180

10進 86400

24時間稼働のラジオ録音サーバ

 個人で24時間つけっぱなしのPCってなかなかむつかしいですよね。私はVPSレンタルサーバを借りています。

 

conoha 1GB HDD50GB

Lubuntu 16.04(32bits)

リージョン:東京

料金 900円/月

 

 録音専用なら512Bの契約(630円/月)でも大丈夫だと思います。GUIがメモリ不足になるようでしたら、SSHftpで運用すれば問題ありません。Dropboxをインストールすれば、全自動になります。

 

 好きなOSをインストールできるのは、ほかにonamaeくらいです。さくらインターネットは少し工夫すればできるようです。ubuntuが用意されているところならほかでも大丈夫でしょう。CentOSの場合は変更が必要です。VPSの宣伝ではないので、これくらいにしておきますが。

Windows,Linux 両対応について

 今回、rfriendsを製作するにあたり検討したことは

  • できるだけ共通のソースとすること
  • 使用するツールがどちらのプラットフォームにもあること
  • 開発時間があまりとれないのでCUIツールとすること

です。結果、次のようなことになりました。

  • 開発言語はPHPjavaにしようかとも考えたのですが、試行錯誤で作っていくのにはインタプリタのほうが楽だろうと考えました。バージョンは最初5で作ったのですが、7に上げても問題なかったので7にしました。
  • ツールは、次のものを選択しました。動作に違いがあると困るなと思ったのですが、今のところ大丈夫なようです。wget,swfextract,rtmpdump,ffmpeg,neroaactag,magick,mp4box

 

PHPのコーディングで注意したことは

  • 文字コードutf-8で問題ないと思いましたが、Windowsがバッチ等ではSJISになりがちなので文字化けに苦労しました。ログ等の出力はスクリプトの最初にutf-8の全角スペースを出力することで対処しました。
  • ディレクトリセパレータ。定義済定数の DIRECTORY_SEPARATOR を使用しました。
  • 改行コード。定義済定数の PHP_EOL を使用しました。

以上でほとんど問題なかったのですが、一部処理を変える必要がありました。例えば自動実行の登録部分です。Windowsはschtasks、Linuxはatです。そういった部分は、

 

if (PHP_OS == "WINNT" || PHP_OS == "WIN32") {
   // Windows 処理
} else  {

   // Linux 処理

 

で、処理を分けました。

 

 両対応には直接関係ありませんが、Windowsバッチ処理コマンドプロンプト(黒い画面)を出さないようにするのに苦労しました。

 vbsで画面なしの起動をさせることで対処できました。「バッチ 黒い画面 表示しない」で検索すると、同じ悩みの人がたくさんいたようでたくさんヒットしました。どうもありがとうございました。

 

 

 

FAQ

以下にFAQを追加していきます。

 

 

 1.ラジコのエリアフリーには対応していますか?

 対応予定ではありますが、当方エリアフリー契約をしていないのでテストができない状態です。

Ver. 2.6 で対応しました。

ラジコプレミアムの契約が必要です。

 2.PCがスリープしてしまい録音できません。

 電源とスリープの設定(特に詳細)を見直してください。

 ・スリープ時間

 ・休止時間(できればしない)

 ・ディープスリープ時間(しない)

 ・スリープ解除タイマの許可(する)

 

 よくわからない場合はスリープ時間を3時間(大抵の番組が2時間くらいなので)、スリープ解除タイマの許可をする、くらいを最低設定してください。

 24時間稼働PCだと問題ないのですが。

 3.rfriendsを複数動かしたいのですが。

 最新のものを動かしたいが安定版も残したいという場合、

 1)インストールアドレスを変える

  1つ目をc:\rfriends2 2つ目を c:\rfriends2dev というようにする。

 2)[6-2]ini編集でヘッダ・キュー番号を変える

  Windowsの場合、1つ目をRfriends2 、2つ目を Rfriends2dev というようにする。

  Linuxの場合、1つ目をc 、2つ目を e というようにする。

 

  この2つを変えないと正常に動作しません。

 

4.メニュープログラムを複数動かしても大丈夫ですか?

 メニュープログラムは1つのインストールに対して1つのみ動作させるようにしてください。

 

5.タイムフリーでエラーが発生しているのに正常に録音されているのですが。

 タイムフリーの録音でエラーが発生した場合、すべての録音終了後エラー分を再実行するようにしています。2度目の実行で成功しているものと思われます。詳しくはlogファイルを見てください。また、それでも成功していない録音がある場合は、[3-2]を実行してみてください。

 

6.画面が文字化けします。(Windows)

 「ファイル名を指定して実行」でcmdと入力し、コマンドプロンプトを実行する。既定値-フォントがラスターフォントなら、MSゴシックに変更する。これで文字化けは治るはずです。

 

7.updateしたら動作がおかしいのですが

 設定ファイルが新しくなっている可能性があります。[7-1-3]設定初期化を行ってみてください。

 

8.24時間稼働できるパソコンがありません。

 最も簡単な方法は、Raspbery Pi Zero Wを使用することです。消費電力も少ないためおすすめです。ACアダプタ等を手持ちのもので流用すれば2000円程度でそろいます。全部新規で買っても4000円くらいです。

 

9.ツールはどこから入手すればいいですか。

Windows版は以下の通りです。

 

Tera Term
teraterm-4.104.exe
teraterm-4.104.zip
https://ja.osdn.net/projects/ttssh2/releases/

 

FileZilla
FileZilla_3.38.1_win32-setup.exe
FileZilla_3.38.1_win32.zip
FileZilla_3.38.1_win64-setup.exe
FileZilla_3.38.1_win64.zip
https://ja.osdn.net/projects/filezilla/releases/

 

Win32DiskImager
Win32DiskImager-1.0.0-binary.zip
win32diskimager-1.0.0-install.exe
https://ja.osdn.net/projects/sfnet_win32diskimager/releases/

 

Advanced IP Scanner

https://www.advanced-ip-scanner.com/jp/

10.放送大学を対象から外したいんですが。

[6-1]でradiko_ng_station セクションに

HOUSOU-DAIGAKU

を追加してください。

11.ラジコタイムフリーとらじるらじる聞き逃しがダウンロードできればいいんですが。

ライトメニューを用意しています。表示上で少なくしているだけなので、機能は変わりません。

 rf2lite.bat(.sh)を実行してください。

12.アップデートに失敗したのですが。

rfriendsをインストールしたディレクトリで rf_up を実行し通常版にアップデートしてください。

[Windows]

cd rfriends2
rf_up.bat


[Linux]

$ cd rfriends2
sh rf_up.sh

ちなみに、rf_up.bat(.sh)は本体がバグ等で起動しなくなった場合のエマージェンシープログラムです。本体に依存せずに変更を極力しないようにしています。

13.radiko,radiruの録音で頭や後ろが切れます。

PCの時間が正確になっていないようです。[9-6]で確認してdiffが大きく違っているようなら時間を設定しなおしてください。

NTP : 2019/11/23 11:17:45
PC : 2019/11/23 11:17:45 (diff : -0.84)

14.gdrive機能が使用不可です。

現在、使用しているgdrive アプリではGoogleDrive の認証ができなくなっているようです。認証しようとすると「このアプリでは「Google でログイン」機能が一時的に無効」と表示されます。

https://github.com/gdrive-org/gdrive/issues/514

15.同じ番組名のものをスキップできませんか。

同一番組名チェック機能を使ってみてください。ただし、注意事項があります。違う内容で同一番組名のものが存在することです。
[MENU 6-1]局指定の最後に以下のセクションを追加してください。ここに書かれたワードが番組名に存在するものはダブって録音されます。ほかにもあれば追加する必要があります。はっきりしているのは語学番組には有効だけど、ほかのCHでは有害な機能だということです。それ以外の用途の人はこの機能はOFFのままがいいと思います。あまり例外ワードが多くなるようだと、この機能は廃止するかもしれません。

:exception_program
#
ニュース
天気予報
交通情報
ラジオ体操
気象情報
株式市況
名曲の小箱
イマジネーター

16.ディスクフルを回避できませんか?

録音データ領域制御機能を使ってみてください。設定した量を超えると自動的に古いものから削除します。

17.ディスク容量が足りなくなったことを知る方法はありませんか。

メール送信機能を使ってみてください。設定容量以下になったらメールが届きます。

18.timefree録音時にradikoの同一番組を削除できませんか。

[7-1-2]timefree_radiko_del = 1にすると、タイムフリー録音完了時にradiko ディレクトリを調べて同一ファイルがあれば消します。

19.NHK聞き逃しでアルバムアーティストが99になるんですが。

NHK聞き逃しの場合、アルバムアーティストTAGに局名(r1,r2,fm)を設定していますが、番組によってはこれが99になる場合があります。NHK側の問題ですので、rfriendsでは対処できません。

20.VLCプレーヤで再生するとジャケット画像が出ません。

 ほかのプレーヤでは表示されるのにvlcだけ表示されるものと表示されないものがあります。その場合、
、%APPDATA%\vlc\art\artistalbum (\ は半角の¥)の内容を削除すると表示されるようになります。
 vlcはジャケット画像を一旦ここに保存していて、それを表示しているようです。
 vlcの代わりにMPC-BEプレーヤの使用をお勧めします。

 

21.現在いる場所と異なる地域になっているのですが。

 メニュープログラムを再起動するか、radikoの地域情報の確認/更新機能を使用してください。 [2-8]
 パソコンの場合、radikoIPアドレスで地域を判定しています。radikoにアクセスすると地域判定がおこなわれます。rfriendsはradikoに負荷をかけないために毎回アクセスせずに一度得た地域情報を1時間保持し、次にアクセスしたときに前回より1時間以上経過していたら更新することにしています。ところが出張や旅行等で他県に移動した直後は、地域は変わったのに地域情報が変わらないということが発生してしまいます。そこで、この機能ですぐに地域情報を更新できるようにしています。ただし、これは地域情報を自由に変更できるという意味ではありません。今接続している状況に即時更新できるだけです。

 これでも変わらない場合、契約しているベンダーが提供するIPアドレスが異なる地域となっていることが考えられます。ネットの切断/再接続をすると大丈夫な場合があります。

 

以上

rfriendsでラジオ録音 (Linux版)

ー ラジコ、らじるらじる、タイムフリーの録音ツール

目次

 

初出:2017/05/11 

更新:2017/05/12

更新:2017/06/12

 

本ドキュメントはWindows版ドキュメントに対する補足という形で記述しています。また、Linux中級者を想定しています。

本ドキュメントはVer.1に対応しています。Ver.2には対応していません。

 

3.ダウンロード

 rfriendsはダウンロードページよりダウンロードしてお使いください。 


更新用   rfriends_X.X.X_201XXXXX_script.zip

 常に「更新用」をダウンロードしてください。他は不要です。動作確認は、Ubuntu 16.04(32bits) で行っています。

 現在、バージョンによりディレクトリ構成や設定ファイルに変更があるため、上書きはせずに、一旦rfriends以下を削除して新規にインストールしてください。

  

4.インストール

 

1)まずインストールするディレクトリを決めてください。ここでは、仮に、/home/user/rfriendsとします。以下これを前提に話を進めますので、違うディレクトリにした場合は読みかえてください。

2)ダウンロード
  ダウンロードページよりファイルをダウンロードしてください。

3)展開
  ダウンロードしたファイル(rfriends_X.X.X_201XXXXX_script.zip)を/home/userにコピーします。次にunzipを使用して解凍します。

  このような構成になっていたら成功です。rfriends.txtが、/home/user/rfriendsの直下にありますか?なければ、解凍方法を見直してください。 

/home/user/rfriends ルートディレクト
----bat バッチファイル
----bin 外部プログラム
--------php PHP
----data データディレクト
--------log ログ
--------rec_radiko radiko録音データ
--------rec_radiru radiru録音データ
--------rec_timefree timefree録音データ
--------rsv 予約データ
--------tmp テンポラリ
----sample キーワード等サンプル
----script PHP実行スクリプト
----sh シェルスクリプト
/home/user/rfriends_Rfriends rfriendsファイル
/home/usetr/rfriends/Rfriends.txt このファイル

注意:/home/user/rfriends/_Rfriendsを、この位置から削除したり移動すると、rfriendsは動作しません。

 

5.各種設定


 初期設定およびツールのインストールを行います。

 sh /home/usr/rfriends/sh/_tools.sh

を実行することにより、PHP,ffmpeg等のツールがインストールされます。エラーが表示されたときはインストールが正常にできていません。

 

 sh /home/usr/rfriends/sh/_config.sh

を実行することにより、ファイルのコピー、設定が行われます。

 

6.タイムフリー番組の録音

 /home/user/rfriends/sh にあるshを実行することにより手動録音ができます。

1)キーワード指定

 キーワード指定で過去一週間の番組の中から録音(ダウンロード)します。

 sh rfriends_timefree_once.sh

を実行してください。キーワードにヒットした番組をダウンロードします。ダウンロードした番組は以下に保存されます。

 /home/user/rfriends\usr\timefree


2)キーワードファイル指定

 テキストエディタで以下のキーワードファイルを編集してください。両方のファイルを参照します。

 

radiko,radiru,timefree共通キーワード

 /home/user/rfriends/usr/keyword_common.dat 

・timefree専用キーワード  
 /home/user/rfriends/usr/keyword_timefree.dat   

 

  sh rfriends_timefree.sh

を実行してください。キーワードファイルのキーワードにヒットした番組をダウンロードします。(最大7日前から8日間)ダウンロードした番組は以下に保存されます。

 /home/user/rfriends\usr\timefree

 

7.crontabへの登録

 crontabに登録するとradiko,radiru,timefreeの番組が自動で録音されるのでとても便利です。

 /home/usr/rfriends/sh/crontab.txt を参考にしてcrontabを編集してください。crontab.txt はradiko,radiruの予約およびtimefreeの自動録音が毎日05:10に開始されるようになっています。


 Linux版では、実行しているPCが24時間稼働のものを推奨します。
 理解できない方は、crontabへの登録はしないでください。

 

以上です。