rfriendsでラジオ録音

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

rfriendsのインストールディレクトリを変更されたかたへ(改定)

インストールディレクトリを変更されてない方は以下の操作は不要です。

訂正:2021/06/12 wget でサイズが0になるため、zipファイルに変更しました。


--------------------------------------------------------------------
rfriend2.3.7.4.2 (安定板)
rfriend2.3.7.5-a6 (開発版)
までのバージョンをお使いの方は、インストールディレクトリを変更すると
オンラインアップデートができません。

以下の操作を行い、
rfriend2.3.7.4.3 (安定板)
rfriend2.3.7.5-a7 (開発版)
以降にアップデートしてください。
--------------------------------------------------------------------

Linuxユーザを例にとり説明します。

通常は、~/rfriends2 以下にインストールされますが
例えば、~/rfriends2_test に変更した場合

一時的に以下のファイルをダウンロードして変更する必要があります。

 

cd ~/
wget http://rfriends.s1009.xrea.com/files/rf_gateway_ext.php

wget http://rfriends.s1009.xrea.com/files/rf_gateway_ext.zip

unzip rf_gateway_ext.zip
mv rf_gateway_ext.php rfriends2_test/script/.

 

あとは通常通りrfriends2を起動してupdateしてください。
以降はこの操作は不要です。

正常/異常の報告は掲示板のほうにお願いします。

以上

らじるらじるの語学番組って再放送が多いよね(改訂版4)

これは以前に書いたものの改訂版(4)です。https://rfriends.hatenablog.com/entry/2019/11/09/202819

 

 例えば、キーワードに”基礎英語”などと入れると、同じ番組がたくさん録音されて整理がちょっと面倒になります。以前紹介した方法で同一番組を消すというのもいいのですが、できれば最初から同一番組は録音しないというのがいいですね。ということで、同一番組は録音しないというスイッチを設けました。

 

1.重複録音の仕様(3.7.5-a9以降)

新規や初期化した場合は、この行は追加されています。

double_rec_swは廃止しました。


[8-1]パラメータ

*_double_rec
 * : radiko, radiru, timefree, radiru_vod, radiru_gogaku

通常は、1で問題ないと思います。
; ; [番組名] ; program ; [ファイル名] ; station_program_20191101_1630_1800.m4a ; 2:する ; 常に録音する。ただし上書き。 ; 1:しない[番組名] ; 番組名が一致するものは局、日時が異なっても録音しない。 ; 0:しない[ファイル名] ; ファイル名が一致するものは録音しない。

2.動作

2-1 *_double_rec = 0または2の場合

 放送局、日付、時間を含めた同一番組名のものを録音するかしないかです。リアルタイム録音(radiko,radiru)の場合日付、時間は必ず異なるので、0と2は常に録音することになります。

 

2-2 *_double_rec = 1 の場合

放送局、日付、時間を除いた同一番組名のものを録音するかしないかを判断します。

らじるを例にとって説明します。

 

1)[8-2]パラメータ

radiru_double_rec = 1

2)[7-4]らじるのキーワード

まいにちイタリア語,応用編

3)[7-10]番組名キーワード

まいにちイタリア語

4)番組予約

らじるのキーワード「まいにちイタリア語,応用編」にヒットしたものが予約されます。

例えば

JOAB_まいにちイタリア語-応用編-しっかり学ぶ中級文法(18)_20210611_1115_1130.m4a

5)予約実行

上記プログラムを録音しようとする前に番組名キーワードに該当するものがあるか調べます。(部分一致)

6)番組名キーワードにない場合

通常どおり録音を行います。

7)番組名キーワードにある場合

番組名と同じものがradiruディレクトリすでに録音されているかどうか調べます。

この場合、「まいにちイタリア語-応用編-しっかり学ぶ中級文法(18)」

8)すでにある場合

録音を中止します。

9)ない場合

録音を行います。

 

 

 

3.キーワード

3.7.5-a9より、キーワードファイルを共通から番組名に変更しました。

記述方法に変更はありません。


 [7-10]番組名キーワードの例です。

# -----------------------------------------------
# 同一番組名チェックを行う番組名定義
# 部分一致
# -----------------------------------------------
:target_program
#
中高生の基礎英語
まいにちフランス語
まいにちイタリア語

4.その他

ゴガクを録音するもっとスマートな方法は
[7-8]らじるゴガク
に録音したいゴガク番組を記入して、[6-6]一括録音、またはデイリー処理に任せれば、先週の番組が自動で録音されます。なお、番組が更新されるのは月曜の10時以降です。午後か翌日のデイリー処理のほうが確実ですね。
[7-10-8]キーワード初期化をすれば、今年度のゴガク番組が設定されるので、ほしい番組のコメントを外すだけです。

 

以上

配信遅れの調整方法について

[8-1-2]パラメータ設定

 

ラジコ/ラジコプレミアム・らじるらじるの配信は
実際の放送よりも遅れて配信されます。


以下の方法で調整できます。
XXXXX_delay 配信遅れ(秒)
XXXXX_pre_margin 放送前の余裕(秒)
XXXXX_post_margin 放送後の余裕(秒)

XXXXXはそれぞれ以下のようになっています。
premium ラジコプレミアム
radiko ラジコ
radiru らじるらじる

 

この3つを調整することによりより正確な録音が可能になります。
rfriendsを古いバージョンから使用している人は、設定があっていない可能性があります。
ぜひ、見直してみてください。

 

XXXXX_post_marginは簡単です。とりあえず25秒くらいに設定しておけばいいでしょう。

以下の1から3を、ラジコプレミアム、ラジコ、らじるらじるについて行ってください。

1.録音する。

XXXXX_delay = 0
XXXXX_pre_margin = 0

にして、適当な番組を録音してみる。
例えば、定時のニュースが適しています。

2.再生する。

録音した番組を再生して、何秒後に開始されるかを確認する。
再生はwindowsならmpc-beがおすすめ。再生しているときに秒数が確認できるものなら何でもいいです。

例えば30秒後に番組開始されたら、配信遅れは30秒ということになります。

3.設定する。

配信遅れは30秒だったので、
XXXXX_delay = 30

放送前の余裕は25秒くらいでいいでしょう。
XXXXX_pre_margin = 25

注) このテストは予約がない時間帯に行うのがいいでしょう。

以上です。

 

rfriends2 2.7.4-a15(開発版)

修正内容

・録音領域不足に対処

領域が不足しているときはタグ、イメージの付加をしない。

 

raspberry pi zeroの場合、録音領域を384MBとしているため、長時間番組を複数同時に録音すると、領域不足が発生します。
ただし大抵の場合最大2,3時間なのでこの問題は起きにくいと思います。唯一NHKの三昧が7時間弱と長時間です。
他の機種は録音領域が大きいので、以下のことはあてはまりません。

 

raspberry pi zeroで三昧の聞き逃しをダウンロードしてみました。
なお、録音領域不足に対処したバージョン(2.7.4-a15)で行いました。

[5-1-3]録音
今日は一日〇〇三昧

JOAK-FM_今日は一日“スポーツアニメ”三昧-▽前半_20210503_1215_1850
JOAK-FM_今日は一日“大黒摩季”三昧-▽前半_20210501_1215_1850

上記2つを別々に選択してほぼ同時に録音開始させました。
録音サイズは132MBになりました。

結果、タグ、イメージは付加されていませんが、データ自体は正常でした。
たぶん、旧バージョンですとエラーになると思います。

 

今回の対処は完璧な対処ではありません。注意事項としては以下のとおり。
・三昧のような長時間番組を複数同時録音しない。
・三昧のような長時間番組は実時間録音はやめて、聞き逃しをひとつづつダウンロードする。

とはいえ、実使用では意識する必要はあまりないと思います。

 

なお、不具合等がありましたら、掲示板のほうにお願いします。
https://mb2.whocares.jp/mbb/u/rfriends/

 

以上

Raspberry Pi Zero でLチカ

以前に書いたような気もしますが、zeroのLED制御方法です。

 

1.状態表示
$ cat /sys/class/leds/led0/trigger

電源状態の表示になっているので、[actpwr] と表示されます。。

 

2.制御解除
表示をコントロールするには制御を解除する必要があります。

$ sudo sh -c " echo none > /sys/class/leds/led0/trigger"

LEDが消灯します。

1)LED点灯
sudo sh -c " echo 1 > /sys/class/leds/led0/brightness"
2)LED消灯
sudo sh -c " echo 0 > /sys/class/leds/led0/brightness"

 

3.ハートビート
sudo sh -c " echo heartbeat > /sys/class/leds/led0/trigger"

LEDが点滅を始めます。

 

4.初期状態
sudo sh -c " echo actpwr > /sys/class/leds/led0/trigger"

テストを終了する場合は、これにより元に戻ります。

LEDが点灯します。

 

5.サンプルシェル

以下をlchika.shにコピペして実行(sh lchika.sh)すると、5回点滅します。

#!/bin/sh
sudo sh -c " echo none > /sys/class/leds/led0/trigger"

for i in `seq 5`
do
 sudo sh -c " echo 1 > /sys/class/leds/led0/brightness"
 sleep 1
 sudo sh -c " echo 0 > /sys/class/leds/led0/brightness"
 sleep 1
done

sudo sh -c " echo actpwr > /sys/class/leds/led0/trigger"

 

以上です。

LINE Notify機能追加 (現在この機能は使用不可です 2021/03/23)

 rfriendsで以下の設定をすることにより、録音が失敗したときなどにLINEに通知されます。従来のメール通知のLINE版です。
この機能は2.7.3-a1から使用できます。なお、-aXXはアルファ版なのでバグを含みます。


1) Webサービスからの通知をLINEで受信
https://notify-bot.line.me/ja/
にアクセスし、自分のユーザでログインします。

 

2) 画面右上のプルダウンよりマイページを選択します。

 

3) トークンを発行する。

 

f:id:rfriends:20210309091538j:plain

f:id:rfriends:20210309091600j:plain

f:id:rfriends:20210309091615j:plain

 

4)  3)で取得したトークンをrfriendsに登録
 これは、従来のメール送信に追加する形で設定します。メールとLINE通知は共存できます。

[8-5-2]メール設定編集
send_mail_line_mode = 1     ; 0:stop 1:error 2:error+log 3:all
send_mail_line_token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

[8-5-4]テストメール送信
テスト通知が届きます。届かない場合は設定を見直してください。

 

5) 録音エラー時にlineに通知が届く。

f:id:rfriends:20210309092432p:plain

 なお、これにより当方にLineのユーザ情報が伝わることはありません。

 

ラジコとRaspberry Piとスマホの連携

ラジコとRaspberry Pi(以下RPi)とスマホの連携について考えてみました。

 

 Termuxでのラジオ録音は、スマホ単体で完結して、それはそれでわかりやすくていいと思います。実際Google Nexus5では安定して運用できています。ただし、予備のスマホならあまり問題ないのですが、メインで使っているスマホでバックグラウンドでアプリが走っているのはバッテリ、パケット等の消費が気になるものです。

 そこでRPiで安定してラジオを録音し、スマホで持ち出しするのはどうでしょう。最近映画等もそういうやり方をしている人はいますから。このやり方だと録音はRPiに任せて、スマホはボタン一発でコピーし、ネットを気にせずどこででも再生できる。アプリ側にリアルタイム動作のアプリが不要になります。

 

 さて、やり方です。

RPiではrfriendsが動作していてラジオ録音ができているものとします。RpiではSambaが動いているので、そこにアクセスすれば録音データが見えます。

 スマホにGooglePlayから「SMBSync2」というアプリをインストールしてください。

f:id:rfriends:20210210122848j:plain

以下のような設定をします。

f:id:rfriends:20210210122923j:plain

あとは、新しいデータが必要な時に同期ボタンを押すだけです。

f:id:rfriends:20210210123004j:plain


自動にすることもできますが、今回はあえて手動で。また、モードはコピー/移動/ミラーを選択できます。

 

データは「ラジオ番組向けプレイヤー」などで再生できます。

 

以上