40
49

More than 5 years have passed since last update.

ラズパイでラジオをタイマー録音〜Google ドライブ転送

Last updated at Posted at 2018-09-02

2019/4/14追記:2019年4月より、RadikoによるNHKラジオ第二(JOAB)が終了しています。らじるらじるを録音する方法はこちらを参考にしてください。
- NHKらじるらじるをタイマー録音〜Googleドライブ転送

はじめに

ラズパイでラジオ録音に挑戦してみます。
これまでPCを使ってRadikoをタイマー録音していたのですが、スリープ復帰に失敗することがあったのですが、PCを起動しっぱなしにしておけば、するわけにもいかず・・・
それじゃラズパイでいいじゃんということで、やってみます。

使用機材

  • Raspberry Pi Zero W (PI 3とかでもOKです)
  • Micro SDカード 16GB

Google Driveの認証のためにラズパイ上でブラウザを使うので、ラズパイに物理的にアクセスする環境も必要です。

  • mini-HDMI-HDMI変換ケーブル
  • Micro USB-USB A変換ケーブル
  • キーボード、マウス(USBハブがなかったので抜き差しで対応。ほんとは良くないかも)
  • 液晶モニター

パッケージを最新化

念のためラズパイのパッケージを最新化しておきます。

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

必要なパッケージをインストール

ラジオ録音に必要なパッケージをインストールします。

$ sudo apt-get install rtmpdump
$ sudo apt-get install swftools
$ sudo apt-get install libxml2-utils
$ sudo apt-get install ffmpeg
$ sudo apt-get install libavcodec-extra

Radiko録音スクリプトをダウンロード

gitでスクリプトをダウンロードします。

$ git clone https://gist.github.com/3956266.git

スクリプトに実行権を与えます。

$ chmod 755 rec_radiko.sh

お試しで、NHKラジオ第一を1分間録音してみます。

$ ./rec_radiko.sh JOAK 1

こんな感じで出力されます。

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
Connecting ...
WARNING: Trying different position for server digest!
INFO: Connected...
Starting Live Stream
For duration: 60.000 sec
INFO: Metadata:
365.842 kB / 60.03 sec
Download complete

「WARNING: No application or playpath in URL!」という警告が出ていますが、良しとします。

留守録設定(タイマー録音)

cronで留守録をしかけます。

$ crontab -e

編集例

crontab
0 23 * * 2 sleep 15; /home/pi/rec_radiko.sh JOAK-FM 50 radio NHKFM-MISIA

sleepを入れていますが、Radikoはストリーミングの時差があるので、開始時刻の補正用です。自分の環境では15秒遅らせると、ぴったり番組の開始時間と合いました。

Googleドライブにアップロード

ブラウザを使ってGoogle Driveの認証が必要なためラズパイのGUIが必要です。ラズパイのGUI上のターミナルで作業をします。

$ cd ~
$ wget -O gdrive https://docs.google.com/uc?id=0B3X9GlR6EmbnVXNLanp4ZFRRbzg&export=download

gdriveに実行権を与えます。

$ chmod 755 gdrive

Google Driveを認証します。コマンドを実行すると、URLのリンクが表示されるので、ブラウザに開いて認証します。ブラウザに表示されたアクセスコードをコマンドに貼り付けるとgdriveコマンドが使えるようになります。

$ ./gdrive about

録音スクリプトを変更します。録音終了後にGoogle Driveにアップロードするように書き換えます。

rec_radio.sh(ファイルの末尾)
if [ $? = 0 ]; then
  rm -f "/tmp/${channel}_${date}"

  # この行を追加
  /home/pi/gdrive upload "${outdir}/${PREFIX}_${date}.mp3"
fi

さいごに

ラズパイでしばらく運用していますが、非常に安定しています。録音に失敗したことはほぼゼロです(Raspberry PIゼロだけに:)。ただし、Radikoの仕様変更がたまにあるので、録音スクリプトが使えなくなる可能性がありますので、注意してください。

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


参考

40
49
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
40
49