rfriendsでラジオ録音

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

rfriendsでラジオ録音 (補足説明書)

補足事項を記述していきます。

 [修正] 2020/02/29

1.時刻合わせ (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

 

2.時刻合わせ (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

 

3.番組表アドレス

ラジコ

http://radiko.jp/v3/program/date/20170927/JP13.xml

 

らじるらじる

http://www2.nhk.or.jp/hensei/api/sche.cgi?c=4&mode=xml&ch=netr1&date=20170927&tz=all&area=001

 

http://api.nhk.or.jp/r2/pg/list/4/130/r1/2017-09-29.json

 

[ch]

ラジオ第一 netr1 r1

ラジオ第二 netr2 r2

ラジオFM  netfm r3

[area]

札幌  700 010

仙台  600 040

東京  001 130

名古屋 300 230

大阪  200 270

広島  400 340

松山  800 380

福岡  501 400

 

4.らじる配信アドレス

各地域のストリームURL

http://www.nhk.or.jp/radio/config/config_web.xml

 

5.キーワードについて

rfriends は設定されたキーワードをもとにラジコ、らじるらじるの番組表内を検索してマッチした番組を録音します。単一キーワードのみで複雑な条件は設定できませんが、実用上は全く問題ないと思います。

 

キーワードのヒント(Ver.2.0)

  • 番組名を指定すると確実です。例えば、「オールナイトニッポン」と指定すれば、オールナイトニッポンを含む番組がすべて録音されます。特定の番組のみを録音したい場合は「菅田将暉オールナイトニッポン」のように指定してください。
  • パーソナリティを指定した場合、その人の番組およびゲスト出演の番組も録音される可能性があります。
  • 歌手名を指定した場合、出演番組だけでなく、その人の曲を流しただけの場合もあります。
  • 人名は、「姓名」でほとんど大丈夫ですが、たまに「姓 名」の場合もあります。3文字の人に多い傾向があります。例:星野源、星野 源
  • 「Abc」と「ABC」は区別します。
  • 「姓」「名」を別々に登録すると、ヒット数が増えて困ることがあります。
  • 複数のキーワードにヒットしても、同一番組は1つしか録音されません。
  • 複数ヒットがあった場合、コメントタグには最初のキーワードが設定されます。

Ver2.5より若干仕様が変わりました。キーワードを比較する前に以下の処理を行います。

  • 全角英数文字を半角英数に変換します。
  • 全角空白、半角空白を削除します。
  • 半角大小文字の区別をしません。

この仕様変更により、ヒットする確率が上がります。半面、誤ヒットの確率も上がります。しかし、実用上問題ないと判断しました。

  •  星野源」、「星野 源」も「星野源」というキーワードのみでOKになります。
  • ただし、「星野源太」にもヒットします。Ver.2.0でも同様
  • a.b.c-z」「A.B.C-Z」「A.B.C-Z」も「A.B.C-Z」というキーワードのみでOKになります。
  • Ver2.5より若干仕様が変わりました。キーワードを比較する前に以下の処理を行います。
  • の「姓」「名」を別々に登録すると、ヒット数が増えて困ることがあります。
  • 複数のキーワードにヒットしても、同一番組は1つしか録音されません。
  • 複数ヒットがあった場合、コメントタグには最初のキーワードが設定されます。
  • 「姓」「名」を別々に登録すると、ヒット数が増えて困ることがあります。
  • 複数のキーワードにヒットしても、同一番組は1つしか録音されません。
  • 複数ヒットがあった場合、コメントタグには最初のキーワードが設定されます。

 

6.自動処理について

rfriends は以下の機能を使って自動処理を行っています。

 

1)Windows

 ・デイリー処理

 タスクスケジューラに毎日05:10に起動するよう登録して実行しています。

・録音処理

 各番組の録音はタスクスケジューラに録音開始時間の3分前に起動するよう登録して実行しています。(設定で起動時間を変更できます)

 

2)Linux

 

 ・デイリー処理

 cron に毎日05:10に起動するよう登録して実行しています。

・録音処理

 各番組の録音はat に録音開始時間の3分前に起動するよう登録して実行しています。(設定で起動時間を変更できます)

 

7.番組について

rfriends は以下の流れで番組の録音を行っています。

 

1)番組開始時間の3分前に起動

2)配信の遅れ時間、番組の開始前にどれくらい余裕を持たせるか、により録音開始時間の計算を行う。配信遅れ10秒で余裕25秒ならスリープ時間は45秒。配信遅れ40秒で余裕25秒ならスリープ時間は75秒。(現在は配信遅れが大きいので1分前に起動する意味が薄れてきている。なお、起動指定は分単位しかできない)

3)録音開始までスリープ

4a)認証処理(radikoのみ)

4b)テンポラリディレクトリに録音(aac m4a)

5)タグを付加(m4a)

6)cover image を付加

7)録音データ格納場所に転送

8)iTunes録音データ格納場所に転送 (Windowsのみのオプション)

 

8.エリア番号について

エリア番号は県ごとに振り当てられたものです。

ISO 3166-2:JP - Wikipedia

 

   1 北海道 2 青森県 3 岩手県 4 宮城県 5 秋田県
   6 山形県 7 福島県 8 茨城県 9 栃木県 10 群馬県
   11 埼玉県 12 千葉県 13 東京都 14 神奈川県 15 新潟県
   16 富山県 17 石川県 18 福井県 19 山梨県 20 長野県
   21 岐阜県 22 静岡県 23 愛知県 24 三重県 25 滋賀県
   26 京都府 27 大阪府 28 兵庫県 29 奈良県 30 和歌山県
   31 鳥取県 32 島根県 33 岡山県 34 広島県 35 山口県
   36 徳島県 37 香川県 38 愛媛県 39 高知県 40 福岡県
   41 佐賀県 42 長崎県 43 熊本県 44 大分県 45 宮崎県
   46 鹿児島県 47 沖縄県

 

なお、エリア番号の変更画面には上記ガイドを表示します。

9.プレミアム時のtimerec録音予約設定方法(プレミアム契約が必要)

例)東京がメインで大阪も録音したい場合 [6-7]
premium.dat

:premium_main_station
JP13
:premium_station
JP27
# 大阪府
:premium_JP27
やってまーす
:premium_timerec_JP27
# 局名,曜日,開始,終了,タイトル,アーティスト
MBS,SAT,10:00,11:00,osaka-t,osaka-mc
# 毎日の場合
MBS,,11:00,12:00,osaka-t2,osaka-mc2
#

10.Google Drive転送機能 (現在、使用不可)

1)準備
 Google Drive のアカウントを取得する。このアカウントはできればrfriends用に新規に取得したほうがいいと思います。既存のアカウントの場合、録音データによりgmail等の領域が圧迫される可能性があります。

2)rfriends2 ディレクトリにある、rfgdinit.bat(.sh)を実行する。

 ・Google Driveの認証を行う。
以下のようなメッセージが出るので、https://以下をブラウザにcopy&pasteする。
 指示に従って進めると認証されるので、その際に表示された認証コードを
 Enter verification code: にcopy&pasteする。

-------------------------------------------------------------------------
Authentication needed
Go to the following url in your browser:
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=(-省略-)&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state

Enter verification code: (-省略-)
-------------------------------------------------------------------------

 ・次にアップロード用ディレクトリ(例:rfriends2)の作成を行う。
 このディレクトリ名は rftrans_dir に設定する必要があります。


3)rfriends2メニュー(7-2)のパラメータ設定で以下のように設定する。

 ftrans = 3 ; 0:off,1:iTunes,2:局別番組別,3:Google Drive
 rftrans_dir = 'rfriends2' ; ディレクト
 rftrans_radiko = 1 ; radiko  (2:move 1:copy 0:off)
 rftrans_radiru = 1 ; radiru  (2:move 1:copy 0:off)
 rftrans_timefree = 1 ; timefree (2:move 1:copy 0:off)
 rftrans_radiru_vod = 1 ; radiru_vod  (2:move 1:copy 0:off)

 この例の場合、録音したデータは録音後、先ほど作成したGoogle Driveのrfriends2ディレクトリ以下にコピーされます。
 もし、データを移動したい場合は、2にします。ただし、うまくいくまではコピーのほうがいいと思います。

11.各種プレーヤの変更 [7-1-2]

 標準プレーヤは以下のとおり。

$default_editor_cui_win = '';
$default_editor_gui_win = $bindir.'terapad';
$sdefault_nd_player_win = 'wmplayer';

$default_editor_cui_osx = 'nano';
$default_editor_gui_osx = 'TextEdit.app';
$default_snd_player_osx = 'quicktime player.app';

$default_editor_cui_lnx = 'nano';
$default_editor_gui_lnx = 'gedit';
$default_snd_player_lnx = 'totem';

1)access_type = 0 ; 0:gui/cui自動判別 1:強制cui

 GUI/CUI環境の判定。判定がおかしい場合は、access_type = 1 (強制cui)で使用してください。

2)rfriends_name= ''

 メニューに表示される名前。

 [catalina] 番号を入力してください (1-9,end=x) :

3)download_aac = 0

 1と設定すればaacでダウンロード後、m4aに変換します。0の場合は直接m4aでダウンロード。
 非公式な機能として、ダウンロード中にtmp領域にあるaacファイルで追っかけ再生ができるようです。ただし、osxでは再生できましたが、Windows/Linuxではアクセス違反、file in useの警告が出て再生できません。この機能による障害については対応不可です。

12.メール送信機能

rfriendsからメール送信を行う機能です。うまく録音できなかった時やデイリー処理完了時にメールが送信されます。SMTPサーバ指定として、yahoo mail、gmailで動作確認しました。ほかでも可能だと思います。

 

0)opensslの有効化
Windows 既存ユーザの方のみ行ってください。新規やLinuxユーザの方は不要です。
rfriends2\bin\php\php.ini をエディタで開き
extension=opensslの先頭のを削除して保存してください。

extension=openssl

1)メール設定
[7-1-2]rfriends.iniの最後にメール設定を追加してください。新規にインストールした場合は、テンプレートが追加されています。

例1 google

[send_mail]
send_mail_mode = 2			 ; 0:stop 1:error 2:error+log 3:all
send_mail_remain = 500 ; // alarm 残容量 MB (100-1000) send_mail_host = "smtp.gmail.com" ; google send_mail_port = 587 ; TLS send_mail_user = "XXXXX@gmail.com" send_mail_pass = "YYYYY" ; password send_mail_from = "XXXXX@gmail.com" ; 送信元 send_mail_from_nm = "表示する名前1" send_mail_to = "TTTTT@zzzzz" ; 宛先 send_mail_to_nm = "表示する名前2"

 また、gmailの場合、以下の設定が必要になります。

・アカウントにログイン
・安全性の低いアプリのアクセス
https://support.google.com/accounts/answer/6010255?hl=ja

 

例2 Yahooの場合

[send_mail]
send_mail_mode = 2			 ; 0:stop 1:error 2:error+log 3:all
send_mail_remain = 500 ; // alarm 残容量 MB (100-1000)
send_mail_host = "smtp.mail.yahoo.co.jp" ; yahoo send_mail_port = 465 ; SSL send_mail_user = "XXXXX" ; @の前部分 send_mail_pass = "YYYYY" ; password send_mail_from = "XXXXX@yahoo.co.jp" ; 送信元 send_mail_from_nm = "表示する名前1" send_mail_to = "TTTTT@zzzzz" ; 宛先 send_mail_to_nm = "表示する名前2"

 また、yahooの場合、以下の設定が必要になります。

Yahoo! JAPAN公式サービス以外からのアクセスも有効にする
https://m.mail.yahoo.co.jp/cl/#mailer?ts=1583208662507

 

 

2)テストメール送信
 rfriendsを再起動してください。[7-1-5]テストメール送信でテストができます。これでメールが届かない場合は設定が間違っている可能性が大です。

3)その他
 最初はsend_mail_mode = 3で試して、うまくいっているのを確認したらsend_mail_mode = 2にするのがおすすめです。また、メール受信側でフィルタ設定を行い、subjectにrfriendsが含まれているメールを特定フォルダに移動する設定をしておくと便利です。

13.gmailsmtpサーバを使ったメール送信

 gmailsmtpサーバを使ってメールを送信しようとすると以下の設定が必要になります。安全性の低いアプリからのメールと認識されてブロックされるからのようです。

1)使用するgmailアカウントでログイン
2)以下にアクセス
https://myaccount.google.com/lesssecureapps
3)安全性の低いアプリの許可: 無効->有効

これでOKなのですが、どうも有効になるのに時間がかかる場合があるようです。うまくいかない場合は、1日程度経過後、再度メール送信をしてみてください。

 

 

以上