rfriendsでラジオ録音

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

rfriendsの状況

f:id:rfriends:20170512091958j:plain  rfriends (Windows, Linux, Raspberry Pi OS,macOS,termux対応)

rfriendsというラジコやらじるらじるを録音するソフトを作っています。タイムフリー、エリアフリー、聞き逃し、ゴガクにも対応。

rfriends3のインストール方法はこちら

rfriends3 正式版 1.0.5 (2024/04/13)


 このブログでは詳細な技術情報を発信します。

WordPress インストール、マニュアルはWPにまとめました

X(twitter)

リリース情報、障害情報、TIPS等を発信します

掲示板 質問、要望などはこちらにおねがいします
レスキュー システムの起動不可等からの回復はこちら。

rfriendsをワンコインで応援してください。
・PayPay 送金
 PayPayID  :  rfriends

amazonギフト(そのままだと高額になるので要注意)
 https://www.amazon.co.jp/dp/B09TVHNLHX
 email  :  rfriends2017@ymail.ne.jp

 

 

 



NHK-R2全録マシンの作り方

 今回はNHK-R2の全番組を録音してしまおうという企画です。
ただし、リアルタイム録音ではなくて聞き逃しです。

初 版 2024/04/23
第2版 2024/04/24

 

以下の方法でNHK-R2の全番組を録音マシンの完成です。

rfriends3のインストール

rfriends3のインストールが済んでいないかたは、以下よりお願いします。
https://rfriends.hatenablog.com/

rfriends3を最新版に更新

ヘルプ - システム更新
開発版:1.0.6-a03
を選択

これ以前のバージョンでは動作しません。

既存設定の保存

キーワード - 保存/復元/他 - 保存
で現在のキーワード設定を保存します。

empty設定の復元

キーワード - 保存/復元/他 - 復元
でkw_03_empty.zipのキーワード設定を復元します。

聞き逃しの設定

キーワード - らじる - 聞き逃し
@r2を追加し保存します。

:radiru_vod
@r2

定期実行

設定 - 定期実行 - 登録
で、毎日05:25と17:25に自動実行されます。

容量制限

・設定 - パラメータ - 編集

で設定容量を超えると古いものを削除

 

storage_control_exec = "start"
;
; 保存容量
storage_control_disk = "50GB"
; 最大削除数
storage_control_count = 20

 

その他

そのほかにも細かな設定はできますが、とりあえず。

 

追記:

聞き逃し設定の代わりに以下の設定をすれば民放全録(東京地区の場合)になります。
不要の局は先頭に#

キーワード - ラジコ - タイムフリー

:timefree
#
@TBS
@QRR
@LFR
@INT
@FMT
@FMJ
@BAYFM78
@NACK5
@YFM
#
@RN1
@RN2
@IBS
@JOAK
@JOAK-FM  
#@JORF

 

以上

 

 

rfriendsのsambaサーバにユーザ認証を追加する

 rfriendsのsambaサーバ(lighttpd)にユーザ認証を追加する方法について記述します。

 基本的に家庭内で使用する分にはユーザ認証を追加する必要はないと思いますが、知識として。

 

rfriends3のインストール方法(2024/03/27)
https://rfriends.hatenablog.com/entry/2023/07/13/152412
で、lighttpdをインストールしているユーザを対象に記述しています。

 

 

初  版 2024/04/20
第2版 2024/04/20

1.sambaサーバの設定

 現在、rfriendsのインストールスクリプトではsambaサーバにユーザ認証は設定されていません。これにユーザ認証を追加するのは簡単です。

1.1 smb.confの編集

smb.confの最後のほうのguest ok = yes を no に変更します。

$  sudo vi /etc/samba/smb.conf  
[smbdir]
comment = Raspberry Pi share folder for rfriends
path = /home/rpi/smbdir
read only = no
browsable = yes
guest ok = no
force user = rpi

1.2 ユーザ、パスワードの設定

ここでは、rpiというユーザを追加しています。

$ sudo smbpasswd -a rpi

以上でユーザ認証の設定は終わりです。

2.sambaサーバを再起動

$  sudo service smbd restart

 

 rfriendsのsambaサーバにアクセスすると、以下のようなログイン画面が出てくるようになります。

 

以上

rfriendsのWebサーバ(lighttpd)にユーザ認証を追加する

 rfriendsのWebサーバ(lighttpd)にユーザ認証を追加する方法について記述します。

 基本的に家庭内で使用する分にはユーザ認証を追加する必要はないと思いますが、知識として。

 

rfriends3のインストール方法(2024/03/27)
https://rfriends.hatenablog.com/entry/2023/07/13/152412
で、lighttpdをインストールしているユーザを対象に記述しています。

 

 

初  版 2024/04/19
第2版 2024/04/20

1.はじめに

 ここでは、Basic認証とDigest認証の設定方法について記述します。
両方とも、IDやパスワードを入力してログインを行う認証方式です。入力したIDやパスワードをBasic認証では平文でサーバーに送信しますが、Digest認証ではハッシュ化してサーバーに送信します。その分セキュリティ面で有利です。

 

 まず、準備として認証用のユーティリティをインストールします。

$ sudo apt install apache2-utils

 次に、Basic認証かDigest認証のいづれかの設定を行います。
Basic認証とDigest認証の設定方法はほぼ同じです。どちらかを設定すればいいのですが、セキュリティを考慮すると、Digest認証のほうがいいと思います。

2.Basic認証

2.1 lighttpd.confの編集

$  sudo vi /etc/lighttpd/lighttpd.conf

# サーバモジュールにmod_authを追加する。
server.modules += (
  "mod_dirlisting",
  "mod_staticfile",
  "mod_auth",
)
# 以下の行を追加する。
# basic
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/etc/lighttpd/lighttpd.htpasswd"
auth.require = ( "/" =>
(
  "method" => "basic",
  "realm" => "basic auth",
  "require" => "valid-user"
)
)

2.2 ユーザ、パスワードの設定

ここでは、rpiというユーザを追加している。
一人目の時のみ、-cが必要。

$ sudo htpasswd -c /etc/lighttpd/lighttpd.htpasswd rpi

以上でBasic認証の設定は終わりです。4に進んでください。

3.Digest認証

3.1 lighttpd.confの編集

$ sudo vi /etc/lighttpd/lighttpd.conf

# サーバモジュールにmod_authを追加する。
server.modules += (
  "mod_dirlisting",
  "mod_staticfile",
  "mod_auth",
)
# 以下の行を追加する。
# digest
auth.backend = "htdigest"
auth.backend.htpasswd.userfile = "/etc/lighttpd/lighttpd.htdigest"
auth.require = ( "/" =>
(
  "method" => "digest",
  "realm" => "digest auth",
  "require" => "valid-user"
)
)

3.2 ユーザ、パスワードの設定

ここでは、rpiというユーザを追加している。
一人目の時のみ、-cが必要。

$  sudo htdigest -c /etc/lighttpd/lighttpd.htdigest "digest auth" rpi

以上でDigest認証の設定は終わりです。4に進んでください。

4.lighttpdを再起動

 Basic認証かDigest認証のいづれかの設定が終わったらlighttpdを再起動してください。

$  sudo service lighttpd restart

 rfriendsサーバにアクセスすると、以下のようなログイン画面が出てくるようになります。

以上

いまさら、ラズパイはUSB-Wifiを認識するか検証してみた

 Wifiがついていないラズパイ(Raspberry Pi Zero)を入手したことがきっかけで、オークションでUSB-Wifiを無意味にたくさん買ってしまいました。だいたい500円から1000円程度でした。

 ここでは、標準で認識するのはどの機種か、ドライバの当て方等を検証していきたいと思います。

初 版 2024/04/09
第2版 2024/04/10

1.用意したUSB-Wifi

 以下が今回用意したUSB-Wifiとなります。

① buffalo wli-uc-gnm
② buffalo wli-uc-g301n
③ buffalo wli-uc-g300hp 
④ logitec lan-w150n
⑤ logitec lan-w300n/u2s 
iodata WN-G300UA
⑦ planex gw-usnano2
⑧ tp-link archer t2u
tp-link tl-wn725n
elecom wdc-433su2m2(5ghz専用)

2.検証環境

 検証環境として以下のものを用意しました。

・Raspberrypi(Raspberry Pi Model B)

この機種はWifiはないが有線LANポートがあるのでWifiが認証されなくてもsshでアクセスが可能。

・OS

OSは以下のバージョンでapt update, apt upgradeをおこなったものを使用した。

Raspberry Pi OS (Legacy) Lite
Release date: March 12th 2024
System: 32-bit
Kernel version: 6.1
Debian version: 11 (bullseye)

Wifi設定

/etc/wpa_supplicant/wpa_supplicant.conf

を設定しておく。(2.4Ghz)

3.自動認識

 何も手を加えずに認識した機種が以下のもの。

・ドライバ(rt2800usb)

① buffalo wli-uc-gnm
ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]

② buffalo wli-uc-g301n
ID 0411:016f BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-G301N Wireless LAN Adapter [Ralink RT3072] 

③ buffalo wli-uc-g300hp 
ID 0411:01a8 BUFFALO INC. (formerly MelCo., Inc.) 802.11 n WLAN

④ logitec lan-w150n
ID 0789:0168 Logitec Corp. LAN-W150N/U2 Wireless LAN Adapter

⑤ logitec lan-w300n/u2s 
ID 0789:0169 Logitec Corp. 802.11 n WLAN

・ドライバ(rtl8192cu)

 ⑥ iodata WN-G300UA
 ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter

 ⑦ planex gw-usnano2
ID 2019:ab2a PLANEX GW-USNano2 802.11n Wireless Adapter [Realtek RTL8188CUS]

4.ドライバのインストールが必要だったもの

 まずは、準備として以下のものをインストールします。

$ sudo apt install git
$ sudo apt install build-essential
$ sudo apt install raspberrypi-kernel-headers
4.1 ドライバ rtl88xxauをインストールして認識したもの

ドライバを作成します。Raspberry Pi Model Bだと1時間以上かかります。

$ git clone -b v5.6.4.2 https://github.com/aircrack-ng/rtl8812au.git
$ cd rtl8812au
$ sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
$ sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
$ make && sudo make install
$ sudo reboot

認識したものは以下の2つ

⑧ tp-link archer t2u
ID 2357:011e TP-Link AC600 wireless Realtek RTL8811AU [Archer T2U Nano]

⑩ elecom wdc-433su2m2(5ghz専用)
ID 056e:400e Elecom Co., Ltd WDC-433SU2M2

⑩ elecom wdc-433su2m2の時はWifi設定(/etc/wpa_supplicant/wpa_supplicant.conf)を5Ghzのものに変更しておく必要がある。

4.2 ドライバrtl8188eusをインストールして認識したもの

ドライバを作成します。既存の r8188euドライバにアクセスしないようにブラックリストに入れる。

$ sudo echo 'blacklist r8188eu'|sudo tee -a '/etc/modprobe.d/realtek.conf'
$ git clone https://github.com/gglluukk/rtl8188eus.git
$ cd rtl8188eus
$ make && sudo make install     
$ sudo reboot

認識したものは以下の1つ

⑨ tp-link tl-wn725n
ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter

5.RaspberryPiの既存のWifiを無効にする方法

 USB-Wifi を接続して、内蔵のWifiを無効にする方法は以下のとおり。内蔵のものより外部接続のもののほうが感度がいいという話がありますが、真偽のほどはわかりません。

$ sudo iwconfig wlan0 txpower off

6.その他

 今回検証した結果がUSB-Wifiの選定の参考になれば幸いです。

ただし、最近の機種はWifiが内蔵されているので、今回の検証はあまり意味がないかもしれません。モニターモードを使いたい方には有効かも。

 

 お約束ですが自己責任で行ってください。繋がる繋がらないよという情報は大歓迎ですが、クレームはご遠慮ください。


以上

 

 

ChromeOSのLinux 開発環境でrfriends3を動かす。(仮)

 その名の通り、chromebook (ChromeOS) のLinux 開発環境でrfriends3を動かしてみました。Linux 開発環境はdebianなので、ほとんど既存のスクリプトで動作します。

初 版 2024/03/27
第3版 2024/03/30

1.実行環境

 chromebookを持っていないのでChromeOS Flexでの検証になります。

debian bookworm (ChromeOS FLexLinux開発環境)

 

rfriends3 1.0.5
lighttpd (Webサーバ)
samba (ファイル共有)

ssh,sftp
at , cron

2.準備

 chromebookLinux 開発環境をインストールしてください。

ChromebookLinux をセットアップする
https://support.google.com/chromebook/answer/9145439?hl=ja

設定ー詳細設定から行えます。

Linux開発環境のインストールが終了したら、次に、ターミナルを選択します。

penguinを選択します。

Linux 開発環境のターミナルが立ち上がります。

以下、このターミナルで操作を行います。

3.rfriends3のダウンロードとインストール

以下のリンクよりinstall用zipファイルをホームディレクトリにダウンロードし、解凍します。

$ cd ~
$ wget http://rfriends.s1009.xrea.com/files3/rfriends3_chromeos_full.zip
$ unzip rfriends3_chromeos_full.zip

以下を入力し、インストールを行います。各種ツールがインストールされ、ホームディレクトリにrfriends3ディレクトリが作成されます。

$ cd rfriends3_chromeos_full
$ sh rfriends3_chromeos_full.sh

インストールには時間がかかりますが、気長にお待ちください。これでインストールは完了です。

4.rfriends3の実行

ChromeOSのウェブブラウザを起動し、localhostにアクセスする。

http://localhost:8000

以下のような画面が出たら成功です。lighttpdは正常に動作しています。

「ヘルプ」「システム更新」でシステムを最新にしてください。

5.ポートの転送

 Linux開発環境ではWell Known Port (0 - 1023)は使用できません。同一LAN内の他のPCからLinux開発環境にアクセスするには1023より大きなポート番号を割り当ててポートの転送を行う必要があります。
 web,ssh,sambaのポート番号はインストール時にあらかじめ指定(8000,2022,4445)しています。設定のポート転送を開いて以下の3つを追加してください。

 

また、chromebookIPアドレスは、ここでは192.168.1.158と表示されていますが、実行しているchromebookにより異なります。ご自分の環境に合わせてください。

6.他PCよりアクセス

実行しているchromebookIPアドレスをxxx.xxx.xxx.xxxとします。

6.1 rfreiends3(lighttpd)

他pcのブラウザに以下を入力してください。rfriends3のWeb画面が表示されます。

http://xxx.xxx.xxx.xxx:8000

6.2 sambaファイル共有

他pcのファイル管理ソフトに以下を入力してください。rfriends3の録音ディレクトリにアクセスできます。

smb://xxx.xxx.xxx.xxx:4445

Linuxからはファイルアプリ等で他の場所を選択してください。


また、スマホからでもファイルマネージャでアクセスできます。
androidの場合も各種ファイルマネージャで可能です。(ファイルマネージャ+推奨)

ただし、windowsの場合sambaのポート番号を変更できないため標準ではアクセスできません。Owlfilesというアプリを使えば可能になります。

chromebookIPアドレスとポート番号(4445)を入力してください。

rfriends3の録音ディレクトリにアクセスできます。

iPhoneの場合も標準アプリでは変更できないので、Owlfilesアプリでアクセスします。匿名ではなくユーザ指定で行ってください。

6.3 sshアクセス

他pcよりSSHアクセスが可能です。ただし、chromebookLinux開発環境側で事前に以下のことを行っておく必要があります。

まずはsshを有効にするおまじない。

$ sudo rm /etc/ssh/sshd_not_to_be_run

ユーザのパスワードを設定する。

$ sudo passwd ユーザー名

/etc/ssh/sshd_configを編集する。とりあえずパスワードでアクセス。鍵認証がやりたい場合は別途行ってください。

$ sudo vi /etc/ssh/sshd_config
Port 2022
PasswordAuthentication yes

サービスの再起動を行う。

$ sudo systemctl restart sshd.service

 

これでようやく他PCよりSSHアクセスが可能になります。terminal等からsshアクセスしてください。

$ ssh ユーザ名@xxx.xxx.xxx.xxx:2022

6.4 sftpアクセス

 sshアクセスが可能になるとsftpによりファイル転送も可能になります。
PCよりWindowsならFilezilla等のアプリを使用してアクセスします。windows,macos,ios,android共通して使用できるアプリとしてはtermiusをお勧めします。

ポート番号、ユーザ名、パスワードはsshと同一です。

7.chromebookを再起動したとき

 chromebookを再起動した場合、以下の2つの処理が必要です。

 

Linux 開発環境の起動

・ポート転送をON

スイッチがOFFになっているのでONにする。

8.rfriends3のアンインストール

 デイリー処理設定をしている場合は、必ず、「設定」->「定期実行」->「取消」をしてください。または、crontab -e です。
次に、rfriends3フォルダを削除してください。
これで、アンインストールは終了です。

9.その他

 ChromeOSのLinux 開発環境はかなり良く作られていると感じました。


以上

 

 

rfriends3のインストール手順 (Ubuntu/debian+lighttpd+samba編)

 rfriends2はCLIベースでしたが、rfriends3はWEBベースで操作が簡単になっています。
webサーバにlighttpd、ファイル共有にsambaを採用したUbuntu版です。インストールは全自動で行うので、とても簡単になっています。

初 版 2024/02/23

第3版 2024/02/25

1.テスト環境

 以下のバージョンで確認しました。Ubuntuは新規インストールし、日本語設定後、何も手を加えない状態でテストを行っています。

rfriends3 1.0.1

ubuntu 22.04 LTS (CUI環境でもOK)

lighttpd 1.4.59 1.4.69

Firefox 110.0(64ビット)

2.確認事項

 以下を確認し、インストール可能かどうかを判断してください。

ubuntu/debianのバージョン

ffmpegのバージョンが古い(Ver.4.3未満)と、-http_seekableオプションが使えず、らじるらじるの聞き逃し録音に失敗します。

ubuntuであれば、Ver.22.04以上

debianであれば、Version11(bullseye)以上

をお勧めします。

sudoが可能なユーザ

実行ユーザにsudo権限があること。

$ groups ユーザ名

表示されるグループ名の中にsudoがあることを確認してください。 ない場合は、rootで権限を付加してください。

# gpasswd -a ユーザ名 sudo

タイムゾーンと現在時刻の確認

$ date
Sun 25 Feb 2024 07:06:16 AM JST

タイムゾーンを確認してください。 末尾がJSTになっていなかったら、

$ timedatectl set-timezone Asia/Tokyo 

で日本に変更してください。 これを忘れると、予約録音が始まりません。

その後、再び時刻が正しいことを確認してください。

$ date
Sun 25 Feb 2024 07:07:16 AM JST

3.rfriends3のダウンロードとインストール

sudoが可能な任意のユーザでログインします。

Terminalを開き、以下のリンクよりinstall用zipファイルをホームディレクトリにダウンロードし、解凍します。URLが長いので、ブラウザでURLを右クリックし、ホームディレクトリに保存すると簡単です

$ cd ~
$ sudo apt -y install wget unzip <-- このコマンドが存在する場合は不要
$ wget http://rfriends.s1009.xrea.com/files3/rfriends3_ubuntu_full.zip

$ unzip rfriends3_ubuntu_full.zip

以下を入力し、インストールを行います。各種ツールがインストールされ、ホームディレクトリにrfriends3ディレクトリが作成されます。

$ cd rfriends3_ubuntu_full
$ sh rfriends3_ubuntu_full.sh

これでインストールは完了です。

4.rfriends3の実行

以下を入力します。ipコマンドがない場合は、ifconfigを使用してください。

$ ip - 4 -br a
 lo   UNKNOWN 127.0.0.1/8
 eth0 UNKNOWN XXX.XXX.XXX.XXX/24

このIPアドレス(XXX.XXX.XXX.XXX)がwebサーバアドレスです。

 

ウェブブラウザ(edge,chrome,firefox,...)を起動し、上記で表示されたアドレスにアクセスする。

http://XXX.XXX.XXX.XXX:8000

以下のような画面が出たら成功です。ブラウザはローカル(現在実行中のPC)でもリモート(同一ネットワーク上のPC,MAC,スマホ等)でもOKです。

「ヘルプ」「システム更新」でシステムを最新にしてください。

 

5.samba

 windowsの場合、エクスプローラに先ほどのIPアドレス(xxx.xxx.xxx.xxx)を入力すれば、録音ディレクトリにアクセスできます。smbdirというディレクトリが見えると思います。

\\XXX.XXX.XXX.XXX

\\は¥¥です。

スマホからでもファイルマネージャでアクセスできます。

iPhoneの場合、ファイル - 3点リーダー - サーバー接続smb://xxx.xxx.xxx.xxx、ゲストで接続できます。

androidの場合も各種ファイルマネージャで可能です。(ファイルマネージャ+推奨)

6.rfriends3のアンインストール

  1. デイリー処理設定をしている場合は、必ず、「設定」->「デイリー処理」->「取消」をしてください。または、crontab -e です。
  2. rfriends3フォルダを削除してください。
  3. アンインストールは終了です。

7.その他

・外部に公開してアクセスするようにもできますが、セキュリティ上お勧めしません。


以上

 

ブラウザ、SSHCUI)、SAMBA

raspberrypiにおけるrfriends2->rfriends3への移行手順

 以下にrfriens2からrfriends3への移行手順を記述します。

具体的には、キーワード及び設定データをバックアップ、リストアします。

Windows等、他のプラットフォームでも同様の手順で移行できます。

初 版 2024/01/30

二 版 2024/01/31 定期実行

 

1.rfriends2での操作

1.1 各種設定のバックアップ

[8-7-1]キーワードバックアップ
[9-8-1]設定バックアップ

以下の場所に2つのファイルが作成されます。

\smbdir\usr2\kwbackup
kw_20240130_xxxxxx.zip
cfg_20240130_xxxxx.zip

1.2 設定・録音データのバックアップ

smbdir内にある設定・録音データ(usr2)を他の媒体にバックアップする。

録音データが不要の方はusr2/kwbackupディレクトリのみで大丈夫です。

 

以上でrfriends2での操作は終了です。

rfriends2のmicroSDはうまくいかなかったときのために大事に保存しておいてください。

2.rfriends3での操作

2.1 別のmicroSDにrfriends3のイメージを作成

http://ceres.s501.xrea.com/wp_rfriends/index.php/install-rpi/
上記手順に従ってmicroSDを作成する。
rfriends3が正常に動作することを確認する。

rfriends3を最新にupdateする。

2.2 設定・録音データの復元

1-2でバックアップした設定・録音データ(usr2)をsmbdirに戻す。

録音データが不要の方はusr2/kwbackupディレクトリのみで大丈夫です。

2.3 設定の復元

1-1でバックアップした設定を復元する

キーワード ー 復元 usr2\kwbackup\kw_20240130_xxxxxx.zip
設定 ー 復元 usr2\kwbackup\cfg_20240130_xxxxx.zip

 

最後に、再度rfriends3を最新にupdateする。1.0.4a 以降(必須)

また、定期実行(crontab)を行うには、設定-定期実行-登録が必要です。

以上でrfriends3での操作は終了です。

3.その他

rfriends3でもrfriends2と同様にsshでの操作も可能ですが、新しいWEBベースでの操作を試してください。

 

これで移行作業は終了です。
質問、うまくいった、いかなかったを掲示板に投稿していただくと助かります。

掲示板 - rfriends


以上