Raspberry Pi

Raspberry Pi 2をradikoを予約録音してDropboxにアップロード

radiko-logo

ラズパイをVPNサーバーとして常時稼働するも、めったに使うことがないのでもったいないと考え、ラジオ録音サーバーとして利用することにしました。

今回はradikoをタイマー録音して、クラウド(Dropbox)へアップロードして、外出先からアクセスできるようにするまでを目標としたいと思います。

radiko録音スクリプトのセットアップ

必要なパッケージとradiko録音スクリプトをまとめてインストールします。

スクリプトはホームディレクトリ下に作ったbinディレクトリにダウンロードします。(binディレクトリにはパスが通っているため)

[bash]
$ sudo apt-get install rtmpdump swftools libxml2-utils ffmpeg
$ mkdir ~/bin
$ cd ~/bin
$ wget https://gist.github.com/raw/3956266/0dc83895770e26a7c37104d896a150c8bb1dffbb/rec_radiko.sh
$ chmod +x rec_radiko.sh
[/bash]

このままスクリプトを走らせるとSyntax errorとなるので、行頭の/bin/shを/bin/bashに変更します。

[bash]
$ vi rec_radiko.sh

[変更前]
#!/bin/sh
pid=$$
#date=`date '+%Y-%m-%d-%H:%M'`

[変更後]
#!/bin/bash
pid=$$
#date=`date '+%Y-%m-%d-%H%M'`
[/bash]

それでは試しに録音してみます。以下のコマンドはニッポン放送を1分間録音して、/exportディレクトにmp3ファイルで保存するという命令です。

[bash]
rec_radiko.sh LFR 1 /export
[/bash]

/exportディレクトリは先の記事で、Windows共有フォルダに設定したディレクトリです。

LFR_2015-07-26-2246.mp3というファイルが生成されましたので、Windowsからアクセスして再生してみます。

関東圏の主な放送局のIDをまとめておきます。

name(APIで返してくる名称) ID(識別子)
ラジオNIKKEI第1 RN1
ラジオNIKKEI第2 RN2
放送大学 HOUSOU-DAIGAKU
TBSラジオ TBS
文化放送 QRR
ニッポン放送 LFR
Inter FM INT
TOKYO FM FMT
J-WAVE FMJ
bayfm BAYFM78
NACK5 NACK5
FMヨコハマ YFM
ABCラジオ ABC
MBSラジオ MBS

その他のIDは以下のURLで確認できます。ちなみに、地域判定処理がないようで、本来は聞けないはずの自分の居住地域以外の局も聞けてしまいますね・・・

http://www.dcc-jpl.com/foltia/wiki/radikomemo

radikoを予約録音する

予約録音(タイマー録音)にはcrontabを使う必要があります。これがちょっと手間かもしれません・・

cronを使うためにはMTAが必要ということで、postfixをインストールしたのですが、要らなかったかもしれません。忘備録として一応記録しておきます・・

$ sudo apt-get install postfix

crotabを編集します。crontabはユーザーごとに用意されています。

[bash]
$ crontab -e
[/bash]

 例えば、0時30分からニッポン放送を1分録画する場合は以下のように書きます。

30 00 * * 1 /home/pi/bin/rec_radiko.sh LFR1 /export/

うまく録音出来ない場合はcrontabのログ(/var/log/syslog)を見て調べましょう。

録音ファイルをクラウド(Dropbosx)へアップロード

SDカードもそれなりに余裕がありますが、持ち出しのたびにコピーするのも面倒なので、録音データは随時クラウドサーバーへアップロードすることにします。

Dropbox-Uploaderをインストール

Dropbox-Uploaderをgitから手に入れた後、スクリプトに実行権限を付けて、~/binディレクトリにコピーします。

[bash]
$ git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
$ cd Dropbox-Uploader
$ chmod 755 dropbox_uploader.sh
$ cp dropbox_uploader.sh ~/bin/
[/bash]

ほげ

Dropbox側設定

こちらの作業はパソコンから行います。まず、Dropboxのアカウントを持っていない場合は以下のサイトへアクセスしてアカウントをさくします。すでに取得済の方は飛ばしてください。

https://www.dropbox.com/

続いて、Dropbox API アプリを作成します。以下のサイトからログインして右上の「Create app」ボタンをクリックし、続いて「Send email for verification」をクリック。

https://www.dropbox.com/developers/apps

認証用のメールが届くのでメールに書かれたリンクをクリックして認証します。

続いていくつか質問をされるので以下のように回答して「Create app」ボタンを押して先に進みます。

What type of app do you want to create?
→「Dropbox API app」

Can your app be limited to its own folder?
→「Yes」

Provide an app name, and you're on your way.
→「pi2up」(適当な名前、他の人と重複するのはNG)

App keyとApp secretに書かれた文字列を記録しておきます。ここまででWindows上での操作は終了です。再び、ラズパイでの操作に戻ります。

Dropbox-Uploaderの設定

[bash]
pi@raspberrypi ~/bin $ ./dropbox_uploader.sh

This is the first time you run this script.

1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
2) Click on "Create App", then select "Dropbox API app"
3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
4) Enter the "App Name" that you prefer (e.g. MyUploader136332454525160)

Now, click on the "Create App" button.

When your new App is successfully created, please type the
App Key, App Secret and the Permission type shown in the confirmation page:

# App key:
[/bash]

先ほどメモったApp KeyとApp secretを聞かれますので入力します。その後、先ほどと同じアクセス可能な範囲についての質問が出ますので、a(アプリ専用のフォルダ)を選択。最後にまた確認がありますが、yを押します。

アクセス許可のために指定URLにアクセスするよう言われますので、URLをコピーってPCのブラウザでアクセスして許可します。

再びラズパイに戻ってエンターキーを押せば"Setup completed!"と表示されてセットアップ完了となります。

ラズパイからDropboxへファイルをアップロード

 録音したファイルを試しにアップロードしてみます。以下のファイルは拡張子がmp3のファイルをDropbox内のradioフォルダを新規に作成してそこへコピーするというものです。

$ ./dropbox_uploader.sh upload /export/*.mp3 /radio/

ちなみに、このスクリプトを使うとDropbox内のファイルのダウンロードや削除などもできるので色々と便利に使えます。使い方は以下のURLを御覧ください。

https://github.com/andreafabrizi/Dropbox-Uploader

参考にさせていただいたページ

http://raspi.seesaa.net/article/415316808.html

http://shinyamatsuyama.blogspot.jp/2013/06/raspberrypiradiko.html

https://skalldan.wordpress.com/2013/02/20/raspberry-pi-%E3%81%A7%E9%81%8A%E3%81%B6-3-radiko-%E3%81%AE%E9%8C%B2%E9%9F%B3%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC/

-Raspberry Pi