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

 

 

 

 

Raspberry piにUSBデバイスを接続してブートする。(RPI4は除く)

追記)Raspberry pi Zero 2はmicroSDなしのUSBデバイスのみでブート可能でした。

よって、Raspberry pi Zero 2 ではmicroSDは不要です。

 

ここでは、Raspberry pi Zero 2を使用しました。

今回の方法はブートのみmiscroSDでおこない、あとはUSBデバイスを使用するもので、セットアップも普通のやり方とほとんどかわりありません。
注意点としては、電気を大量に消費するUSBデバイスの場合は別途電源が必要です。

また、HDD,SSDを入れるUSBケースも相性があるようです。正常に起動したSSDを別のケースに入れると起動しなかったりします(その逆も)。

 

用意するもの
・ USBデバイスUSBメモリ、HDD,SSDなど)
・ OTGケーブル(micro-B -  USB-A)
microSD(小容量のもので可、例:4GB)


セットアップ手順は以下のとおりです。

 

1) USBデバイスにWin32DiskImager等を使用してraspberryPi OS(rfriends3)イメージを書き込む。書き込み後は、以下のようになると思います。


2) 1)の/bootディレクトリ(FAT32)に設定済のwpa_supplicant.conf(Wifi設定)をコピーする。
3) 1)の/bootディレクトリよりbootcode.binを保存しておく。

4) microSDfat32でフォーマットする。
5) 3)で保存しておいたbootcode.binを4)のmicroSDにコピーする。

6) Raspberry pimicroSDとUSBデバイスを接続し、電源を入れる。
7) 設定に問題なければ、Raspberry piが起動する。
8) ssh等でRaspberry piにアクセスし、USBデバイスの領域拡張を行う。
   sudo raspi-config


以上

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

 rfriends2はCLIベースでしたが、rfriends3はWEBベースで操作が簡単になっています。
webサーバにlighttpdを採用したUbuntu版です。
アルファバージョンなので、不具合が多々あると思いますが、人柱だと思ってくださる方は使ってみてください

初 版 2023/08/12

第5版 2023/10/26

1.環境

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

rfriends3 1.00a-a03

ubuntu 22.04 LTS  (CUI環境でもOK)

ubuntu 23.10        (CUI環境でもOK)
lighttpd 1.4.59 1.4.69

Firefox 110.0(64ビット)

 

Ubuntu関して、一つだけ注意点。

$ timedatectl

タイムゾーンを確認してください。 Asia/Tokyoになっていなかったら、

$ timedatectl set-timezone Asia/Tokyo

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

2.ダウンロード

Terminalを開き、以下のリンクよりinstall用shをダウンロードする。ここでは仮にホームディレクトリにインストールすることにします。

 $ cd ~/

 $ wget http://rfriends.s1009.xrea.com/files3/rfriends3_ubuntu.sh

3.rfriends3のインストール

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

 

 $ sh rfriends3_ubuntu.sh

 

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

4.lighttpdのインストール

4.1 インストール

 $ sudo apt install -y lighttpd php-cgi

 

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

4.2 設定

 以下の2つのファイルを編集します。ユーザ名はmynameとします。

$ sudo vi /etc/lighttpd/conf-available/15-fastcgi-php.conf
以下の1行を修正
"socket" => "/home/myname/lighttpd/php.socket",
以下の1行を追加 fastcgi.map-extensions = ( ".html" => ".php" )

 

$ sudo vi /etc/lighttpd/lighttpd.conf
#server.document-root        = "/var/www/html"
#server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
#server.errorlog             = "/var/log/lighttpd/error.log"
#server.pid-file             = "/run/lighttpd.pid"
#server.username             = "www-data"
#server.groupname            = "www-data"
#server.port                 = 80

server.document-root        = "/home/myname/rfriends3/script/html"
server.upload-dirs          = ( "/home/myname/lighttpd/uploads" )
server.errorlog             = "/home/myname/lighttpd/error.log"
#server.pid-file             = "/run/lighttpd/lighttpd.pid"
server.pid-file = "/home/myname/lighttpd/lighttpd.pid"
server.username = "myname" server.groupname = "myname" server.port = 8000

4.3 起動設定

以下のコマンドを入力します。

$ mkdir -p /home/myname/lighttpd/uploads/
$ mkdir -p /run/lighttpd/
$ sudo chown myname:myname /run/lighttpd/
$ sudo lighttpd-enable-mod fastcgi
$ sudo lighttpd-enable-mod fastcgi-php
$ sudo systemctl enable lighttpd
$ sudo systemctl restart lighttpd

4.4 webサーバアドレス

以下を入力します。

 $ ip a | gerp 'inet '

inet XXX.XXX.XXX.XXX

このIPアドレスがwebサーバアドレスです。

5.rfriends3の実行

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

XXX.XXX.XXX.XXX:8000

以下のような画面が出たら成功です。

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

 

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

  1.  デイリー処理設定をしている場合は、必ず、「設定」->「デイリー処理」->「取消」をしてください。または、crontab -e で。
  2.  録音データは必要であれば別のところに保存してください。
  3.  rfriends3フォルダを削除してください。
  4.  アンインストールは終了です。

7.その他

ubuntu再起動時には、以下を入力するか、,bashrc等に記述してください。

$ sudo chown myname:myname /run/lighttpd/

$ sudo systemctl restart lighttpd

 

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


以上

dockerで「rfriendsでラジオ録音」rfriends3 版

dockerで「rfriendsでラジオ録音」

 以前、rfriends2版を書きましたが、その改定版です。


 本来、rfriendsはdocker向きではありません。当然ですが、終了すると設定や録音データはすべて消えます。docker環境がある人でrfriendsがどんなものか試してみるにはいいかも。おまけで、ホスト共有を使ってデータが消えないようにする設定も記述する予定です。

 dockerに関しては初心者ですので、突っ込みどころ満載だと思います。

1.docker環境

 docker環境に関しては構築済みを前提に話を進めます。 以下はrootで行って下さい。

2.実行

 Dockerイメージの作成から実行まで。

1)Dockerfile

Dockerfileをダウンロードする。

# cd ~/ 
# wget http://rfriends.s1009.xrea.com/files3/docker.zip
# unzip docker.zip

 

 これはubuntu 22.04にrfriends3をインストールして実行するDockerfileです。
ubuntu 20.04では、ffmpegのバージョンが古く、らじるらじるの聞き逃しで不具合が生じます。 Dockerfileと同じ場所にstart.shを置いてください。

2)Dockerイメージの作成

 実行には時間がかかります。

$ sudo docker build -t rfriends3:latest Dockerfile
Successfully built xxxxxxxxxxxx
Successfully tagged rfriends3:latest

と表示されたら成功です。

3)Dockerイメージ一覧を確認

$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE 
rfriends3

4)Dockerコンテナの起動

ホスト側で

$ sudo docker run --rm -it rfriends3:latest

5)rfriendsの実行

ホスト側のブラウザで、172.17.0.2:8000と入力するとrfriends3が表示されます。

まずは、ヘルプ->システム更新でrfriends3を最新にしてください。

172.17.0.2はコンテナのIP アドレスです。

6)終了

$ exit

設定したデータや録音データはすべて消えます。

 

3.データ保存

 共有フォルダを設定することによりこの制限はなくなります。

後日、その方法について記述します。

 

4.その他

 Dockerは同一環境の再現という意味ではとても有用だと感じました。そういう用途のものなので当然ですが。

 

以上

rfriends3のインストール手順(LXD/LXC編)

 LXDでrfriends3の環境を作ってみました。

 LXDに関しては初心者ですので、突っ込みどころ満載だと思います。

1.ホスト側の設定

 ホストはUbuntu 22.04.2 LTSで行いました。

1)LXDインストール

lxd導入済みの場合は飛ばしてください。

# snap install lxd

2)初期化とコンテナ作成

今回は、基本的に省略時設定で進めます。すべてリターンでOK.
初期化して、rfriends3というコンテナを作成します。

# lxd init 
# lxc launch images:ubuntu/22.04 rfriends3

2.ユーザradioの作成

1)コンテナの起動

ホスト側で以下のコマンドを実行

# lxc exec rfriends3 -- /bin/bash

2)ユーザradioの作成

 コンテナ側で以下のコマンドを実行

# adduser radio
# gpasswd -a radio sudo
# exit

3.rfriendsのインストール

1)ユーザradioでログイン

 ホスト側で以下のコマンドを実行

# lxc exec rfriends3 -- su --login radio

2)ssh,timezoneの設定

コンテナ側で以下のコマンドを実行

ssh-serverのインストール

タイムゾーンを日本に設定

$ sudo apt install wget
$ cd ~/
$ rm ./rfriends3_lxc.sh
$ wget http://rfriends.s1009.xrea.com/files3/rfriends3_lxc.sh
$ sh rfriends3_lxc.sh

3)rfriendsのインストール

コンテナ側で以下のコマンドを実行

$ cd ~/
$ rm ./rfriends3_ubuntu.sh $ wget http://rfriends.s1009.xrea.com/files3/rfriends3_ubuntu.sh $ sh rfriends3_ubuntu.sh

4)rfriendsの起動

コンテナ側で以下のコマンドを実行

$ cd ~/rfriends3
$ sh rf3server.sh
XXX.XXX.XXX.XXX:8000

4.その他

以上で、ホストのWEBブラウザから

XXX.XXX.XXX.XXX:8000

でrfriends3が使えるようになります。 簡単ですね。 

 

以上

余ったandroidスマホでラジオ録音サーバを作ろう (六版)

  Termuxというアプリを使って、余ったandroidスマホでrfriendsを動かしてラジオサーバにしようというものです。もちろん余ってないものでもいいのですが普段使いのものとは分けたほうがいいとおもいます。また、スマホのみで完結することを目標としています。

 なお、これは以下の記事の改定版です。

[Termux] 余ったandroidスマホでラジオ録音サーバを作ろう (四版)

・rfriends2 -> rfriends3
・sambaの削除

初版:2021/01/19
改版:2023/08/01

1.準備

以下のものが必要になります。

1.1 androidスマートホンまたはタブレット(OS 7.0以上)

 スマホがスリープ状態になるとアクセスが遅くなります。スリープ時間を少し長めに設定してください。「開発者モード」を有効にしてスリープしない設定にするとより良いとおもいます。

androidOS7.0未満では動作しません。

1.2 Termux

1) F-droidのインストール

注意) F-Droidは、Android用のFOSS(フリーオープンソースソフトウェア)アプリケーションの ストアです。F-droidに不安を感じる方はインストールしないでください。 スマホで「設定」-「セキュリティ」-「提供元不明のアプリ」をONにし、 https://f-droid.org/ja/ よりF-droid.apkをダウンロードし、インストールする。

2) Termuxのインストール

f-droidを起動し、termuxを検索してインストールする。2023/07/18のバージョンは0.118(118)です。2022/01/11から改定されていません。

1.3 ファイルマネージャー

GooglePlayよりインストールしてください。 ファイルマネージャーはなんでもかまいませんが、 アイコンに「F」が入っているFile Manager Plusが提供元のものがお勧めです。

1.4 Google日本語入力(Gboard)

日本語入力が入っていない場合は、GooglePlayよりインストールしてください。 「設定」-「言語と入力」でインストールしたものを有効にする。

2.設定

これ以降は、Termux内での操作となります。

2.1 updateを実行

$ pkg update
$ pkg upgrade

2.2 termux-setup-storageを実行

termux-setup-storageを実行することにより、ホーム(/data/data/com.termux/files/home)直下にstoregeが作成され、downloadsやsharedといった場所にアクセスできるようになる。

 Termux-setup-storage - Termux Wiki

$ termux-setup-storage
$ ls ~/storage
dcim downloads external-1 movies music pictures shared

うまくいかないときは、Termuxをいったん終了して再起動する。

2.3 各種ツールおよびrfriends3のインストール

termux用のrfriends3インストールスクリプトを実行する。

$ cd ~/
$ pkg install -y wget
$ rm rfriends3_termux.sh
$ wget http://rfriends.s1009.xrea.com/files3/rfriends3_termux.sh
$ sh rfriends3_termux.sh $ exit

注)ここで一旦termuxからexitしてください。

このスクリプトは以下の 1)-3)を処理しています。実際の処理内容はスクリプト参照。

 http://rfriends.s1009.xrea.com/files3/rfriends3_termux.sh


1) ツールのインストール(php,ffmpeg,termux-services等)

2) opensshのインストール

3) rfriendsのインストール

2.4 サービス(atd, crond, sshd)の有効化

termuxを再度実行後、termux-sevicesを使用してサービス(atd, crond, sshd)を有効化する。うまくいかない場合、一度スマホを再起動してみてください。

$ sv-enable atd
$ sv-enable crond
$ sv-enable sshd

・ termux-sevices

 https://wiki.termux.com/wiki/Termux-services

sshdを実行しても以下のようなエラーメッセージが出るとき

sshd: no hostkeys available ? exiting.

$ ssh-keygen -A

を実行してから再度sshdを実行して下さい。

2.5 wake-lockの有効化

$ termux-wake-lock

termux-wake-lockを実行すると、予約録音はうまくいくようですが、sshタイムアウトするようです。その場合は再起動が必要になります。

開発者オプションのスリープしないをONにするほうが確実です。

3.rfriendsの設定

3.1 rfrirnds server の実行

1)Wifi 接続の場合

termux上で、以下のコマンドを入力しrfriendsを実行する。

$ cd ~/rfriends
$ sh wlan0.sh

 

2)そのほかの場合

androidスマホwifiに接続されていない場合は失敗するので、IPアドレスを確認後rfriends3_server.shを実行してください。

$ ip a | grep inet
inet 127.0.0.1 ?netmask 255.0.0.0
inet XXX.XXX.XXX.XXX ?netmask 255.255.255.0 ?broadcast XXX.XXX.XXX.255

スマホIPアドレスはXXX.XXX.XXX.XXXです。

$ cd ~/rfriends
$ sh rfriends3_server.sh XXX.XXX.XXX.XXX:8000

3)自動(3.0.0-a36以降)今後はこれを推奨

termux上で、以下のコマンドを入力しrfriendsを実行する。

$ cd ~/rfriends
$ sh rf3server.sh

1)または2)または3)を実行後、androdiスマホ自身または同一LAN に接続されたPC等からWEBブラウザchrome,edge,firefox等)で

xxx.xxx.xxx.xxx:8000

と入力し、以下のような画面が出たら成功です。

3.2 rfrirndsをアップデート

[10-1]システム更新(SYS)により、rfriendsを開発版(0.9.0-b01以上)にupdateする。 

 

以降、バージョン0.9.0-b01を例に説明します。バージョンによりメニュー番号が異なっている可能性があります。

3.3 録音ディレクトリ設定

[9-6]録音ディレクトリ設定を選択し、録音データの格納場所を指定します。

スクリプトでは内部ダウンロードディレクトリに設定されています。

 

・内部ダウンロードディレクトリの場合
usrdir=/data/data/com.termux/files/home/storage/downloads/usr2/
tmpdir = ""

・外部microSDの場合
$ df
/dev/fuse ***** ***** ***** **%? /storage/XXXX-XXXX
上記の? XXXX-XXXXの部分がmicroSDにより変化します。

usrdir=/storage/XXXX-XXXX/usr2/
tmpdir = ""

3.4 デイリー処理の設定

[9-3]デイリー処理設定を選択し、デイリー処理(crontab)の読込、編集、書込をします。これにより、指定した時刻に予約・録音ができるようになります。

4.テスト

・rfriendsの[3-1]タイムフリー録音で、1,2個試しに録音してみてください。 録音が終了したら、androidのファイルマネージャでダウンロードディレクトリを参照する。録音したファイルがtimefree以下に見つかるとおもいます。

・再生してみてください。

・[1-4]デイリー処理も行ってみてください。

以上で、インストールは終了です。

5.sshのアクセス方法

$ ip a | grep inet
inet 127.0.0.1 ?netmask 255.0.0.0
inet XXX.XXX.XXX.XXX ?netmask 255.255.255.0 ?broadcast XXX.XXX.XXX.255
スマホIPアドレスはXXX.XXX.XXX.XXXです。

$ id
uid=xxx(hogehoge)
hogehogeがユーザです。

PC等から
ssh -p 8022 hogehoge@XXX.XXX.XXX.XXX
でアクセスできます。

 

PCがLinuxでWARNINGが出て接続できないときはPCのホームディレクトリの.ssh/known_hostsを削除してみてください。

6.最後に

 termux版rfriendsの制限事項としては、

・timefree等で録音したデータのタイムスタンプが現在時刻になります。

 sshアクセスを利用している方は、ファイルの転送にはsftpが便利です。Windows Clientでは、Winscp(またはFilezilla)がおすすめです。

 

 このソフトはパケットを消費するため、Wifi環境下での使用をお勧めします。 2時間番組で約40MBになります。外出等で使用をいったん中止する場合は、Termuxをexitしてください。

 なお、念のためのお約束ですが、 テスト中のため、電池を異常に消費するなどのバグがある可能性があります。 また、十分注意を払っていますが、重要なファイルを消すことがないとも限りません。

 

劣化したバッテリのスマホを使用すると火災の原因にもなります。

 

 使用は自己責任にてお願いします。当方はいかなる責任も持ちません。 使用を中止したい場合はスマホを初期化してください。

 より良いものにするために、バグ報告・改善提案等をお待ちしています。

では、素敵なラジオライフを!

 

以上

andoridアプリのUserLAndの設定について

 androidアプリのUserLAndの設定についていくつか紹介します。

1.前提

すでにUserLAndはインストール済を前提とします。

2.スリープ回避

一定の時間が経つとandroidがスリープするので、ブラウザのアクセスが途切れます。その際は、androidの電源ボタンを押せばいいのですが、確実な方法があります。

 

トップ画面で上から下にスワイプすると現れる通知画面で

”Acquire wakelock”を有効にしてください。

3.sshアクセス

鍵認証で行ってください。

公開鍵を~/.ssh/authorized_keys に設定(renameでもよい)するだけ。

鍵は5.android本体のストレージアクセス方法を参考にコピーしてください。

 

パスワード認証はなぜかうまくいかない。以前は大丈夫だったのに。勘違いかもしれませんが。

 

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

 

$ passwd userland

 

これで、SSHクライアントからアクセスできるようになります。(ポートは2022)

Windowsなら

ssh -p 2022 userland@XXX.XXX.XXX.XXX

そのほか、teraterm,rloginといったSSh Clientももちろん使用可能です。

4.sftpアクセス

sshでアクセス出来たら、sftpでのファイル転送もできます。

Windowsなら、Filezilla等を使えば簡単にアクセス出来てファイル転送ができます。

sftp
Host XXX.XXX.XXX.XXX
port 2022
ユーザ userland
パスワード *******

を設定するだけです。

 

5.android本体のストレージアクセス方法

UserLAnd側

$ cd /storage/internal

 

andorid本体側

/Android/data/tech.ula/files/storage

 

androidアプリの”ファイル”やその他のファイルマネージャでアクセスできます。

microSDも/storage/sdcardでアクセスできるようなのですが、当方の環境ではうまくいきませんでした。

 

6.タイムゾーンの設定

現在の設定(UTCになっている)

$date
Sat Jul 15 04:05:47 UTC 2023

 

日本に変更する。

$ sudo rm /etc/localtime 
$ sudo echo Asia/Tokyo > /etc/timezone 
$ sudo dpkg-reconfigure -f noninteractive tzdata

 

以下のように表示される。

Current default time zone: 'Asia/Tokyo'
Local time is now:      Sat Jul 15 13:10:55 JST 2023.
Universal Time is now:  Sat Jul 15 04:10:55 UTC 2023

 

以上