rfriendsでラジオ録音

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

セットアップ Raspberry Pi

 このドキュメントはいちから自力でセットアップする人向けのものです。今は、セットアップ済イメージを配布していますので、それを使用したほうがはやくて確実です。

 

目次

 

初出:2017/10/05

更新:2019/09/17 stretch -> buster

 

1.Raspbian をインストール (SSH接続)

 インストールのやり方は、検索すれば山ほどヒットするので、ここではやる項目だけ。

 

・OSイメージのダウンロード

Download Raspbian for Raspberry Pi

 現在のバージョンは Raspbian Stretch Buster Liteでした。

・OSイメージをmicroSDに書き込み

Win32 Disk Imager download | SourceForge.net

Win32 Disk Imager を使用しました。

SSHを有効にする

microSD のbootパーティションに ”ssh” という名前のファイルを作成。

 

2.Raspbian を起動

Raspberry Pi

microSDをセット

・LANケーブルを接続

・電源アダプタを接続

すると、OSが起動します。

 

3.SSH接続

IPアドレスを調べる

DHCPサーバの払い出し状況からMACアドレスの先頭がb8:27:ebのものを探しました。

・PCよりteraterm を使用してSSH接続

ttermpro.exe IPアドレス /auth=password /user=pi /passwd=raspberry

 

amazonから荷物が届いてから、SSHでのアクセス成功まで1時間くらいです。素晴らしい。

 

4.各種設定

各種設定を行う。

$ sudo raspi-config

・パスワード(Change Password)

・ホスト名(N1 Hostname)

  ・ロケール(I1 Change Locale ja_JP,UTF-8,UTF-8

タイムゾーン(I2 Change Timezone Asia/Tokyo)

・キーボードの種類 (I3 Keyboard Layout)  sshでは設定不可

WIFIの国設定(I4 Wi-fi Country JP Japan)

 

その他、お好みで。

 

5.アップデートsudo apt-get dist-upgrade

ソフトウエアを最新にする。

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

 

6.NTPの設定

NTPが有効になっているかどうかを確認します。

 $ timedatectl status

NTP service が active になっていれば有効、そうでない場合は

 $ sudo timedatectl set-ntp true

で有効にします。

 

次にNTPサーバの設定をします。

 $ sudo vi /etc/systemd/timesyncd.conf

 

[Time]
NTP=ntp.jst.mfeed.ad.jp ntp.nict.jp
FallbackNTP=time.google.com

 

NTPサーバを再起動します。

 $ sudo systemctl restart systemd-timesyncd

 

7.swapの無効化

swapが有効になっているかどうかを確認します。
 $ free
swapを無効化。
 $ sudo swapoff --all
 再起動すると復活するので、swapが自動起動しないようにパッケージを削除。
 $ sudo apt-get remove dphys-swapfile

 再度

 $ free
 swapの無効化を確認。
 

7.不用デーモンの無効化

sysv-rc-confをインストール
 $ sudo apt-get install sysv-rc-conf
使用しないデーモンの停止

 $ sudo sysv-rc-conf dbus off
 $ sudo sysv-rc-conf triggerhappy off
 $ sudo sysv-rc-conf alsa-utils off
 $ sudo sysv-rc-conf lightdm off
 $ sudo sysv-rc-conf motd off
 $ sudo sysv-rc-conf plymouth off

 

8.一時フォルダのRAMディスク化

microSD へのアクセスを減らすために、一時フォルダをRAMディスクに割り当てる。

 $ sudo vi /etc/fstab

[最後に追加]
# /tmpをRAMディスクにマウント
tmpfs /tmp tmpfs defaults,size=64m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
# /var/log をRAMディスクにマウント
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0

 

マウント実行

 sudo mount -a

 

9.rsyslog設定の変更

rsyslogでは必要最小限のログ(auth, syslog, messages)のみを記録させる。

 $ sudo vi /etc/rsyslog.conf

以下をコメントアウト

 

#cron.* /var/log/cron.log
#daemon.* -/var/log/daemon.log
#kern.* -/var/log/kern.log
#lpr.* -/var/log/lpr.log
#mail.* -/var/log/mail.log
#user.* -/var/log/user.log
#mail.info -/var/log/mail.info
#mail.warn -/var/log/mail.warn
#mail.err /var/log/mail.err
#*.=debug;\
# auth,authpriv.none;\
# news.none;mail.none -/var/log/debug

 

ログを直接作成するアプリ等で /var/log にディレクトリが必要なものがあるので、rc.local にディレクトリ作成を記述。

 $ sudo vi /etc/rc.local


# ディレクトリを作成
mkdir -p /var/log/ConsoleKit
mkdir -p /var/log/fsck
mkdir -p /var/log/apt
mkdir -p /var/log/ntpstats
chown root.ntp /var/log/ntpstats

# Lastlog, wtmp ,btmp の空ファイルを作成
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp

 

ログローテートの抑制

 $ sudo vi /etc/logrotate.conf

weekly -> monthly

rotate 4 -> rotate 1

 

 $ sudo vi /etc/logrotate.d/dpkg

rotate 12 -> rotate 1

 $ sudo vi /etc/logrotate.d/rsyslog

rotate 7 -> rotate 1

daily -> monthly

rotate 4 -> rotate 1

weekly -> monthly

 

個別アプリごとのログローテートの抑制

 $ ls /etc/logrotate.d

例) alternatives apt btmp dpkg rsyslog wtmp

これらのアプリごとに以下の処理

 $ sudo vi /etc/logrotate.d/***

rotate * -> rotate 1

**** -> monthly

 

 

10.ftpサーバのsudo reboot

インストール

rftpサーバとして vsftpd をインストールする。

 sudo apt-get install vsftpd
 sudo sysv-rc-conf vsftpd on

書き込み許可

 sudo vi /etc/vsftpd.conf

write_enable=YES

 

vsftpd リスタート

 sudo /etc/init.d/vsftpd restart

 

PCよりfilezilla等のftpクライアントを使ってアクセスする。PCとのファイルのやり取りは、これを使用する。teratermssh scp でのファイル転送でもいいのですが、録音ファイルの転送を考えるとftpのほうが簡単なので。

 

----------------------------------------------------------------------

11.その他の設定

以上で基本的なセットアップは終了です。あとは個人の好みでカスタマイズしてください。

 1)キーボード設定

/etc/default/keyboard

・英語(インストール時)
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="gb"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"

・日本語
# Consult the keyboard(5) manual page.
XKBMODEL="jp106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"

 

 2)Wifi 接続

wpa_supplicant.conf を作成(改行はLF)し、bootパーティションにコピーする。

 

ctrl_interface=/var/run/wpa_supplicant
country=JP
network={
ssid="SSID"
psk="password"
key_mgmt=WPA-PSK
proto=WPA WPA2
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
}

 3)有線接続

固定 IP (例)
/etc/dhcpcd.conf

interface eth0
static ip_address=192.168.1.10
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

 4)ホスト名の変更

/etc/hostname
/etc/hosts

 5)samba のインストール

sudo apt-get install samba
mkdir /home/pi/smbdir
sudo vi /etc/samba/smb.conf

# 最後に追加
[smbdir]
comment = Raspberry Pi share folder
path = /home/pi/smbdir
read only = no
browsable = yes
guest ok = yes
force user = pi

 

sambaを再起動
sudo service smbd restart
sudo service nmbd restart

windowsエクスプローラから\\raspberrypi でアクセスするとsmbdir フォルダが見える。

コントロール パネル\すべてのコントロール パネル項目\ネットワークと共有センター\共有の詳細設定

で、ファイルとプリンタの共有をチェックするとエクスプローラのネットワークにRASPBERRYPIが出てくる。

 

12.rfriendsのインストール

 さて、ようやくrfriendsのインストールです。インストールはrfriendsを転送、解凍し、ツールをインストールするだけです。


1) filezilla等を使用してRasbianにrfriends をftp転送。

 設置場所は、/home/pi/rfriends2_xxx_script.zip です。

2)rfriends を解凍

 $ cd /home/pi

 $ unzip rfriends2_xxx_script.zip

3)ツールをインストール

 $ cd /home/pi/rfriends2

    $ sh ex_tools.sh

 

# rfriends tmpディレクトリ をramディスクにマウント
tmpfs /home/pi/tmp tmpfs defaults,size=320m,noatime,mode=0777 0 0

 

以上

rfriends for Raspberry Pi

目次

 

初出:2017/10/06

更新:2019/09/16

1.Raspberry Pi

 ラジオ録音サーバを作るべく、Raspberry Piを買ってみました。

https://www.raspberrypi.org/ 本家サイト

Raspberry Pi - Wikipedia ウイキペディア

実用面から言えば、VPSをレンタルするのが一番ですが、興味があったものですから。開発目標はmicroSDをまもるため、極力ディスクアクセス回数を減らすことです。

 

購入したもの(Raspberyy Pi 3 の場合)

amazonから以下のものを購入しました。

Raspberry Pi Model B 日本製
・5.1V/2.5A ラズベリー財団公式アダプタ
Raspberry Pi 3 Model B ケース
ヒートシンク
microSDカード 32GB Class10 UHS-I

合計約8,500円

 

注文後に、今回の目的からしMLCタイプのmicroSDにすればよかったと思いました。

 

このほかに必要なもの

・PC

・LANケーブル

microSDライタ 

2.セットアップ

 以下のセットアップが必要になります。

・OS(Raspbian)のインストール

・カスタマイズ

・rfriends のインストール

 

 

 なお、このブログを参考に録音サーバを構築することは全く問題ありませんが

LinuxCUIで扱った経験のある方を推奨します。

・いかなるトラブルがあっても当方は責任持ちません。

・長期稼働で高熱になりRaspberryが故障する可能性があります。

・設定ミスや設定不足による過剰書き込みでmicroSDが壊れる可能性があります。

・家庭内LANで動作することを想定しているため、セキュリティは考慮していません。パブリックな場所に置く場合は、FWやSSHのアクセス制限等、自己責任で設定してください。

3.Raspbian とLinuxの違い

 Raspberry はRasbian というOSで動作します。Ubuntu とRaspbianはともにdebian系ですので基本的に違いはありません。

 ただし、Raspbianはディスク領域としてmicroSDが使用されるため、過多な書き込みによるSDの寿命という問題があります。rfriendsでは書き込みを極力減らすため、tmp領域をRAMディスクにおくことにより回避しています。

 また、録音用 tmp 領域が小さいため、同時録音数に制限があります。tmp 領域は256MB を確保しています。1時間あたり約25MB必要ですので約10時間分ということになります。録音終了時に別領域に移動するので問題は起きないと思っていますが。

 NHKの番組をラジコとらじるらじるで録音し比較してみました

ラジコ:47 kb/s、らじるらじる:48 kb/s

ビットレートが違っていますね。


ラジコで録音
_ok022_JOAK-FM_ゆうがたパラダイス_三森すずことアニソンパラダイス_20171003_1640_1800.m4a
28,906,423 bytes

Duration: 01:20:50.01, start: 0.000000, bitrate: 47 kb/s
Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 46 kb/s (default)

 

らじるらじるで録音
r3_ゆうがたパラダイス_三森すずことアニソンパラダイス_20171003_1640_1800.m4a
29,597,905 bytes

Duration: 01:20:50.01, start: 0.000000, bitrate: 48 kb/s
Stream #0:0(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 47 kb/s (default)

 

Linux版 rfriend 2.0.1b

テストを開始しましたが、問題なさそうです。

新規インストールが望ましいのですが、updateの場合、FAQを参考にしてください。

rfriends.hatenablog.com

updateの場合、\sh\_tools.add.sh の実行も忘れずに

radikoでNHKラジオ配信開始

f:id:rfriends:20171002150835j:plain

どうやら、2017/10/01より配信が開始になっているようです。

<station id="JOAK">
<name>NHKラジオ第1(東京)</name>

<station id="JOAB">
<name>NHKラジオ第2</name>

<station id="JOAK-FM">
<name>NHK-FM(東京)</name>

 

rfriends 2.0.1b のkeyword_radiko_dat にキーワードを追加してみました。

# NHK
ごごラジ
英語
クラシック

 

問題なく録音できました。ジャニーズと同じでタイムフリー禁止フラグが立っています。こんな感じです。

_ok022_JOAK_ごごラジ!_14時台「パーソナリティーコーナー」_20171002_1405_1455

ソフトウエアの修正は必要なさそうです。ただし、キーワード設定を今のままにするか、変えるか、NHKの局名統一するか等の変更は必要かもしれません。

不具合がなければ当面は今のままにします。

HLS配信(経過報告)

9/30(金)、NHKらじるらじるを約100件録音しましたが失敗は0です。

サーバを強化したのかもしれませんね。(rfriends 2.0.1b)

 

で、ジャニーズ番組のらじらーサタデーを東京、広島、松山の3局で録音予約していたのですが、いづれも問題なく録音できていました。東京は失敗したけど松山ではうまくいきました、みたいな報告をしたかったのですが。(サーバに不要な負荷をかけて監視対象となるかもしれませんのでもうしません)

らじるらじるの地方局設定(例)

こんな感じになります。

 

 rfriends\config\config_user.php
$radiru_area_6 = 1; // 広島

 

keyword_radiru_6.dat

ごごラジ
クラシック
ひろしまコイらじ
らじらー

 

----- 2017/09/30 07:33:01: RadiruOtherAreaReserve 25 Start
area : hiroshima
kw : C:\Users\ma\Dropbox\usr\keyword_radiru_6.dat
http://api.nhk.or.jp/r2/pg/list/4/340/r1/2017-09-30.json
http://api.nhk.or.jp/r2/pg/list/4/340/r3/2017-09-30.json
http://api.nhk.or.jp/r2/pg/list/4/340/r1/2017-10-01.json
http://api.nhk.or.jp/r2/pg/list/4/340/r3/2017-10-01.json
get schedule(json format) 4
20170930_192000_210000_r3_hiroshima N響_ザ・レジェンド__-戦後クラシック界を支えた日本人演奏家たち-(2)
20170930_200500_205500_r1_hiroshima らじらー!_サタデー_▽MC_伊野尾慧・八乙女光(Hey!Say!JUMP)
20170930_210000_220000_r3_hiroshima クラシックの迷宮_▽1958年の日本の管弦楽作品~NHKのアーカイブスから~
20170930_210500_215500_r1_hiroshima らじらー!_サタデー_▽MC_安井謙太郎高橋優斗(ジャニーズJr.)
20170930_221000_230000_r1_hiroshima らじらー!_サタデー_▽MC_Sexy_Zone
20171001_081000_090000_r3_hiroshima 現代の音楽_シリーズ“21世紀への潮流”_-_ギャヴィン・ブライアーズ_-(1)

Reserved 6 task(s) : 20170930_0735 - 20171001_0835