この記事には改訂版があります。
余ったandroidスマホでラジオ録音サーバを作ろう (六版) - rfriendsでラジオ録音
Termuxというアプリを使って、余ったandroidスマホでrfriendsを動かしてラジオサーバにしようというものです。もちろん余ってないものでもいいのですが普段使いのものとは分けたほうがいいとおもいます。また、スマホのみで完結することを目標としています。
なお、これは以下の記事の改定版です。
androidスマホでrfriendsによるラジオサーバー
https://rfriends.hatenablog.com/entry/2021/01/16/085543
初版:2021/01/19
改版:2023/04/08
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を検索してインストールする。 2021/11/06時点のバージョンは0.117(117)です。2023/03/26のバージョンは0.118(118)です。
termux のアクセス権限を変更し、android側のディレクトリをアクセスできるようにする。
「設定」-「アプリ情報」-「Termux」-「権限」-「ストレージ」-「許可」
androidのバージョンによっては
「設定」-「プライバシー」-「権限マネージャー」-「ファイルとメディア」-「Termux」-「許可」
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 各種ツールおよびrfriends2のインストール
termux用のrfriends2インストールスクリプトを実行する。
$ cd ~/ $ pkg install wget $ rm rfriends2_termux.sh $ wget http://rfriends.s1009.xrea.com/files/rfriends2_termux.sh
$ sh rfriends2_termux.sh $ exit
注)ここで一旦termuxからexitしてください。
このスクリプトは以下の 1)-4)を処理しています。実際の処理内容はスクリプト参照。
http://rfriends.s1009.xrea.com/files/rfriends2_termux.sh
1) ツールのインストール(php,ffmpeg,termux-services等)
2) opensshのインストール
3) sambaのインストール
4) 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
2.5 wake-lock, smbdの有効化
$ termux-wake-lock $ smbd -D -s $PREFIX/etc/smb.conf
termux-wake-lockを実行すると、予約録音はうまくいくようですが、ssh,sambaはタイムアウトするようです。その場合は再起動が必要になります。
開発者オプションのスリープしないをONにするほうが確実です。
3.rfriendsの設定
3.1 rfrirndsをアップデート
termux上で、以下のコマンドを入力しrfriendsを実行する。
$ cd ~/rfriends2
$ sh rfriends2.sh
[10-1]システム更新(SYS)により、rfriendsを開発版(2.9.6-a17以上)にupdateする。 rfriendsはいったん終了するので、再度実行する。
$ sh rfriends2.sh
以降、バージョン2.9.6-a17を例に説明します。バージョンによりメニュー番号が異なっている可能性があります。
3.2 録音ディレクトリ設定
[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.3 デイリー処理の設定
[9-3]デイリー処理設定を選択し、デイリー処理(crontab)の読込、編集、書込をします。これにより、指定した時刻に予約・録音ができるようになります。
4.テスト
・rfriendsの[3-1]タイムフリー録音で、1,2個試しに録音してみてください。 録音が終了したら、androidのファイルマネージャでダウンロードディレクトリを参照する。録音したファイルがtimefree以下に見つかるとおもいます。
・再生してみてください。
・[1-4]デイリー処理も行ってみてください。
以上で、インストールは終了です。
5.ssh,sambaのアクセス方法
5.1 ssh
$ ifconfig | 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を削除してみてください。
5.2 samba
スクリプトではsmbdirは/downloads/usr2/に設定しています。
sambaのアクセス方法は以下のとおり。
smb://XXX.XXX.XXX.XXX:4445/smbdir/
ただし、windowsからは\\XXX.XXX.XXX.XXX/smbdir/ではエラーになります。
termuxでは1024以下のポート番号が使えないため、sambaのポート番号に4445を使用していますが、Windowsでは基本的に445以外ではアクセスできません。
microsoft storeからowlfilesというfile managerをインストールして使用してください。
6.最後に
termux版rfriendsの制限事項としては、
・pulseaudio経由の聴取ができません。
・timefree等で録音したデータのタイムスタンプが現在時刻になります。
sshアクセスを利用している方は、ファイルの転送にはsftpが便利です。Windows Clientでは、Winscp(またはFilezilla)がおすすめです。
このソフトはパケットを消費するため、Wifi環境下での使用をお勧めします。 2時間番組で約40MBになります。外出等で使用をいったん中止する場合は、Termuxをexitしてください。
なお、念のためのお約束ですが、 テスト中のため、電池を異常に消費するなどのバグがある可能性があります。 また、十分注意を払っていますが、重要なファイルを消すことがないとも限りません。
劣化したバッテリのスマホを使用すると火災の原因にもなります。
使用は自己責任にてお願いします。当方はいかなる責任も持ちません。 使用を中止したい場合はスマホを初期化してください。
より良いものにするために、バグ報告・改善提案等をお待ちしています。
では、素敵なラジオライフを!
以上