Edited at

raspberryPiでラジオサーバーを作るメモ


ざっとやりたいこと


  1. Radikoを録音

  2. 音声ファイルで保存

  3. localサーバーでpodcast化

  4. 自分のiphoneに自動購買させて、

  5. 勝手にダウンロードされている

こんな事を、PCではなく、

電力消費が少なくて付けっぱなしも気にならないraspberrypiでやりたい。

IMG_6294.JPG

このページは

紹介する「良質記事」の補足・留意点の追加メモとなります。

まずは以下の紹介する記事をメインに読んでください。

こちらの記事をメインに進めてください。

良質記事:radicastのまとめ

https://omiso46.blogspot.com/2018/05/raspberrypi-radiko-podcast_23.html

注意! あくまで、個人で楽しむものとしてやってください。作成したラジオサーバーを公開すると違法アップロードとなります。絶対に、非公開サーバーでひとりの楽しみとしてください。


ラズパイのラジオサーバー化には2つの方法があった。

作り出すその前に、

調べてみると、以下の2つがどうも良いとオススメされていました。

①radicast

②radigo

実はそれぞれメリット・デメリットがあります。


radicast


  • メリット

    radikoから番組表を取得

    番組名、番組詳細を取得できる。


  • デメリット

    番組最後までの録音しかない。

    常に簡易サーバーが立ち上がっている必要がある。



radigo


  • メリット

    時間指定録音ができる(15分だけ録音とか)

    簡易サーバーの立ち上げは不要


  • デメリット

    podcast化部分は自分でWebServerを建てて、

    rss化しないといけない。

    番組内容も、番組名も自動取得なし


radigo参考

https://qiita.com/tinoji/items/5f57239de5772681c64a

作者さん

https://qiita.com/yyoshiki41/items/f81442d7dc2d0ddcf15b

導入したのは、、radicast

番組名、番組情報の取得できるのが大きいです。

これは本当にでかい。


radicastの導入

しつこいですが、紹介の「良質記事」を参照のこと。

以下、記事を補足。


「メディアのマウント定義とRAMDiskの有効化」

初級者で必要を感じないのであればしなくても良いと思います。

fstab内での、マウント定義を間違えると最悪OSが立ち上がらなくなる危険性がある。

(残念ながら私は一度やらかして全て無に帰しました。。)

tmpやlogに関してもRAMDisk化するとログ参照できない(毎回まっさらになるので。というよりメモリに持つだけなので)。

プログラムやインストールによっては一度tmpに展開したものを使うなどの処理があり、そういうものはエラーになってしまいます。

必然性がなければ、fstabの変更はしなくても良いと思います。

また、

OS:rasbianでUSBメモリを挿すと、

/media/[username]/

上記内に自動認識されるので、私はそこを利用しています。

私の設定は

username=pi

usbメモリ=rasUSB

と命名しています。

作業用ディレクトリを以下で用意しました。

/media/pi/rasUSB/radio/podcast/


radicastの取得

radicastをフォークしたリポジトリから取得

https://github.com/tkhs/radicast

オリジナルから改良部分がありますのでこちらがオススメです。


  • 無劣化録音対応

  • 05時開始番組が録音できない不具合の対応

  • チャンネルのアイコン設定

  • 番組のアイコン取得




私は、特にアイコンが欲しかった。。


radicastの自動起動設定に関して

何度か試したのですが、自動起動は失敗してしまう。

恐らく、事前に必要なprocessが立ち上がる前にradicastが自動起動しちゃって失敗してるようです。

試行錯誤したけど、事前processが特定できなかったので、

いっその事、数秒遅らせてからコマンド実行させることにしました。

まず、「良質記事」から以下を変更。


/etc/systemd/system/radicast.service


ExecStart=/home/pi/radio/radicast_daemon.sh

直接、radicastをスタートするのでなく、shellを挟み込みます。

そしてshellを作成


/home/pi/radio/radicast_daemon.sh


#!/bin/bash

sleep 30

#実行
/home/pi/go/bin/radicast -title 俺のらじお -config /media/pi/rasUSB/radio/podcast/config.json -host 192.168.0.10 -output /media/pi/rasUSB/radio/podcast -bitrate 96k -buffer 30


軽く解説


  • sleep

    起動を遅らせることで自動起動が問題なくなりました。

    30秒もいらないかもですが、それ以上急ぐ必要もないのでこれぐらいがいいかなと。


  • 俺のらじお

    任意のタイトルを付けます。日本語もOKです。

    ここでつけたタイトルが、podcastでのチャンネルのタイトルとなります。


  • -output

    outputディレクトリに音声ファイルが入ったディレクトリが生成されます。

    podcastのサムネイルも表示したければ、このディレクトリ内にradicast.pngで格納します。

    私は200x200pxで作成しました。


  • -bitrate

    96kとしたのですが、少し音がこもってます。気になる場合は数値上げてます。


    あとは「良質記事」の通りです。


現状ではsleepだけのためにshell使ってますが、今後、機能拡張などを書き込んで便利につかおうかと考えてます。

例えば、起動直後に


  • ○日以上経った古いファイルを削除する

  • 好きな番組だけを別のディレクトリにバックUP取っておく

など。あくまで「いつでもいいけど起動したついでにやっとくぐらいでいいよ」ぐらいのゆるい処理です。

ラズパイ起動したら付けっぱなしの場合や、厳密なタイミングで処理を求める場合は、crontabでやらせたほうがいいです。


iphoneのpodcastに番組を購読させる


  • podcastアプリを起動

    ライブラリ > 編集 > PodcastをURLで追加


  • 上記を選択して

    radicastで立ち上がっているipaddressと、portでURLを入力

    portデフォルト:3355

    私の例なら以下を入力。

    http://192.168.0.10:3355/rss


こちらで購読完了です。

ラズパイのradicastが立ち上がっていれば、

radikoから番組を録音して、iphoneのpodcastに自動DLされると思います。


それでは、良いラヂオライフを!

(注! しつこいですが、あくまで個人で楽しむものです。サーバー公開や配布は法律違反となります。)