簡易radiko録音ツール。要swftools https://gist.github.com/saiten/875864
簡易Radiko録音スクリプト https://gist.github.com/matchy2/3956266
上記 URL を参考に radiko.jp プレミアム対応の簡易 Radiko 録音スクリプト rec_radiko2.sh を作成してみました。引数として放送局のステーション id、録音時間、メールアドレス、パスワードなどを渡すと mp3 形式ファイルを作成します。(スクリプトを実行すると録音が始まります。)
追記: 2019/04/01(Mon) 19:17:08
Flash 版の RTMP を利用した拙作 rec_radiko2.sh ではなく、HLS配信データを保存する rec_radiko_live.sh を使用してください。詳しい解説、ダウンロードリンク先は下記 URL を参照してください。
rec_radiko_live.sh https://github.com/kyoshiaki/yplayer/blob/master/tools/README.md
下記 URL で公開します。
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2.zip
同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_1.zip
タイムフリーの仕様変更に対応した 同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_2.zip
同時録音版の詳しい詳細は、下記 URL
Radiko 録音スクリプト rec_radiko2.sh を同時録音に対応。Raspberry Pi に Samba を インストールして iPhone と Mac で Raspberry Pi にアクセス。 http://kyoshiaki.hatenablog.com/entries/2014/07/30
を参照してください。
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh では、Login チェックと Logout 処理も追加してみました。Raspberry Pi の sh (dash) は、シェル関数に対応していません。それで bash で動作するように指定しています。Logout 処理がプログラム的に正しいのかあまり自信がありません。本来は、GitHub でフォークして公開すべきなのですが、GitHub を利用したことがないのでブログで公開しています。GitHub で公開するほどのプログラムもないし、git の使い方も精通していないのが現状です。
また、rec_radiko2.sh の 105 行目から 118 行目のコメント# をは外すと
jq http://stedolan.github.io/jq/
jq を使用してエリアーフリー、有料会員のチェックを行なうことができます。最初は無効になっています。
Raspberry Pi、Ubuntu 13.10、OS X Mavericks で動作確認をしています。
OS X 10.9 Mavericks で Radiko 録音する方法。 - KOYAMA Yoshiaki のブログ http://kyoshiaki.hatenablog.com/entry/2014/02/23/183535
基本的に上記 URL の rec_radiko.sh を rec_radiko2.sh に置き換えて読んでください。
上記 URL で説明し忘れましたが、
Homebrew — MacPortsは酒でも飲みたくなるでしょ?じゃあHomebrewを使おう! http://brew.sh/index_ja.html
Homebrew をインストールする前に App Store を使って Xcode をダウンロードし、ターミナル上で
~$ xcode-select --install ~$ sudo xcodebuild -license
上記コマンドを使い、コマンドラインツールをインストールする必要があります。一度 Xcode を起動すると sudo xcodebuild -license は必要ないかもしれません。
jq http://stedolan.github.io/jq/
コマンド jq のインストールは、ターミナル上で
~ $ brew install jq
を実行してください。
rec_radiko2.sh の引数については、最後に書いてある Raspberry Pi の説明を参考にしてください。
2) Ubuntu 13.10 の場合
簡易 radiko.jp プレミアム版録音スクリプト rec_radiko2.sh を実行できるように必要なプログラムをインストールする必要があります。
Terminal 上で
$ sudo apt-get update $ sudo apt-get install rtmpdump swftools libxml2-utils ffmpeg libavcodec-extra-53
上記 コマンドを実行してインストールしてください。
その後、
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2.zip
同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_1.zip
タイムフリーの仕様変更に対応した 同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_2.zip
上記 URL から rec_radiko2.sh をダウンロードし、
OS X 10.9 Mavericks で Radiko 録音する方法。 - KOYAMA Yoshiaki のブログ http://kyoshiaki.hatenablog.com/entry/2014/02/23/183535
上記 URL の crontab -e 設定を参考にしてください。
Rhythmbox で MP3 形式ファイルを再生できるように
$ sudo apt-get install ubuntu-restricted-extras
を実行してください。また、python がインストールされていない場合は
$ sudo apt-get install python
上記コマンドでインストールしてください。
rec_radiko2.sh の引数については、次に書いてある Raspberry Pi の説明を参考にしてください。
3) Raspberry Pi の場合
Raspberry Pi を設定するには、Mac のターミナルから ssh を使う必要があります。ssh の設定、基本的な使い方は
Raspberry Pi の入手方法と基本設定 - KOYAMA Yoshiaki のブログ http://kyoshiaki.hatenablog.com/entry/2014/04/20/182455
上記 URL を参考にしてください。
上記 URLで説明してある通り Raspberry Pi の IP アドレスを確認する必要があります。 Raspberry Pi を HDMI ケーブルでテレビに接続し、USB端子にキーボード、マウスを繋ぎ、SDカードを挿入します。また LAN ケーブルか USB 無線 LAN アダプタを接続してください。最後に電源を入れます。
Usename: pi パスワード: raspberry
でログインし、コマンド ifconfig -a を実行します。
$ ifconfig -a wlan0 Link encap:Ethernet HWaddr **:**:**:**:**:** inet addr:192.168.xx.xx Bcast:192.168.xx.255 Mask:255.255.255.0
USB 無線 LAN アダプタの場合、wlan0 の inet addr:192.168.xx.xx が目的の IP アドレス 192.168.xx.xx です。
LAN ケーブルの場合、en0 の inet addr:192.168.xx.xx が目的の IP アドレス 192.168.xx.xx です。
まず、簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh を実行できるように必要なプログラムをインストールする必要があります。Mac のターミナルで ssh を使って、Raspberry Pi にログインし
~ $ ssh pi@192.168.xx.xx pi@192.168.xx.xx's password: pi@raspberrypi ~ $ sudo apt-get update pi@raspberrypi ~ $ sudo apt-get install rtmpdump swftools libxml2-utils ffmpeg
上記コマンドを使ってインストールしてください。
pi@raspberrypi ~ $ exit logout Connection to 192.168.1.14 closed. ~ $
一度、コマンド exit で Raspberry Pi をログアウトします。
次に、
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2.zip
同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_1.zip
タイムフリーの仕様変更に対応した 同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_2.zip
Mac で上記 URL から rec_radiko2.zip をダウンロードします。Finder 上でダブルクリックして展開します。展開されて作成されたフォルダ rec_radiko2 をデスクトップに移動します。
Mac のターミナルで、次のコマンド
~ $ cd Desktop/rec_radiko2/ ~/Desktop/rec_radiko2 $ scp rec_radiko2.sh pi@192.168.xx.xx:/home/pi ~/Desktop/rec_radiko2 $ scp delete.py pi@192.168.xx.xx:/home/pi ~/Desktop/rec_radiko2 $
scp を使って rec_radiko2.sh、delete.py ファイルを Raspberry Pi の /home/pi ディレクトリにコピーします。
rec_radiko2.sh の引数は
rec_radiko2.sh <channel_name_id> <minutes> <mail address> <password> [outputdir] [prefix]
です。
引数の詳細は
channel_name_id: 放送局の station id minutes: 何分録音するか mail address: radiko.jp プレミアムにログインするメールアドレス password: radiko.jp プレミアムにログインするパスワード outputdir: 出力するディレクトリ [prefix]: 保存ファイル名の先頭文字。指定されない場合 channel_name_id が使われます。 例) pi@raspberrypi ~ $ ./rec_radiko2.sh TBS 1 mail password TBS を 1分間録音してカレントディレクトリに名前の先頭が TBS のファイル を MP3 形式で保存します。 pi@raspberrypi ~ $ ./rec_radiko2.sh TBS 120 mail pasword radio TBSラジオを 120分録音してカレントディレクトリの radio ディレクトリに 名前の先頭が TBS のファイルを MP3 形式で保存します。
です。
放送局の station id は
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2.zip
同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_1.zip
タイムフリーの仕様変更に対応した 同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_2.zip
に含まれる radiko_curl_area.sh を使ってダウンロードされる XML ファイルで確認できます。
まず、最初に Mac のターミナル上で
~/Desktop/rec_radiko2 $ ./radiko_curl_area.sh
を実行してください。
地域別の放送局情報 XML が都道府県別に JP1.xml ~ JP47.xml という名前のファイルでダウンロードされます。
ISO 3166-2:JP - Wikipedia https://ja.wikipedia.org/wiki/ISO_3166-2:JP
都道府県コードは上記 URL を参照してください。
放送局情報 XMLファイルの
JP13.xml: 東京 JP27.xml: 大阪
です。
===== JP13.xml ===== <?xml version="1.0" encoding="UTF-8" ?> <stations area_id="JP13" area_name="TOKYO JAPAN"> <station> <id>TBS</id> <name>TBSラジオ</name> . . . </station> <station> <id>QRR</id> <name>文化放送</name> <ascii_name>JOQR BUNKA HOSO</ascii_name> . . . </station> </stations>
の
<stations area_id="JP13" area_name="TOKYO JAPAN">
area_name が都道府県です。この場合、東京都です。
<station> </station>
で囲まれた部分が放送局です。
<station> <id>TBS</id> <name>TBSラジオ</name>
Mac のターミナル上で下記のように ssh を使って Raspberry Pi にログインし、
~ $ ssh pi@192.168.xx.xx pi@192.168.xx.xx's password: . pi@raspberrypi ~ $ ./rec_radiko2.sh TBS 1 mail password . . === Logout: radiko.jp === Stream mapping: Stream #0.0 -> #0.0 Press ctrl-c to stop encoding size= 940kB time=60.12 bitrate= 128.0kbits/s video:0kB audio:939kB global headers:0kB muxing overhead 0.015906%
スクリプト rec_radiko2.sh が正しく動作するか、rec_radiko2.sh TBS 1 mail password を実行してください。mail、password は、radiko.jp プレミアムにログインする時に使用するメールアドレスとパスワードです。TBS ラジオを1分間録音し MP3 形式ファイルに書き込んでいます。(長時間録音すると MP3 形式に変換するのに時間がかかるので注意してください。)
pi@raspberrypi ~ $ ls delete.py public_html radio run.sh Desktop python_games rec_radiko2.sh svnc.sh pi.conf radiko_wget_area.sh rec_radiko.sh TBS_2014-xx-xx-xx_xx.mp3 pi@raspberrypi ~ $
上記のように TBS_2014-xx-xx-xx_xx.mp3 が目的のファイルです。
システム環境設定を開いて ‘共有/リモートログイン’ にチェックを入れてください。上図の右中央部分の ‘リモードログイン: 入’ 文字列の下に
このコンピュータにリモートログインするには、 "ssh username@192.168.yy.yy" と入力してください。
と表示されているはずです。IP アドレス: 192.168.yy.yy、username を確認して下さい。
Raspberry Pi から Mac にコマンド scp を使って
pi@raspberrypi ~ $ scp TBS_2014-xx-xx-xx_xx.mp3 username@192.168.yy.yy:/Users/username
TBS_2014-xx-xx-xx_xx.mp3 ファイルを Mac のホームフォルダにコピーします。
上記 scp コマンドで IP アドレス 1箇所と username を2箇所間違いなく置き換えてください。
pi@raspberrypi ~ $ scp TBS_2014-xx-xx-xx_xx.mp3 username@192.168.yy.yy:/Users/username The authenticity of host '192.168.yy.yy (192.168.yy.yy)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.yy.yy' (RSA) to the list of known hosts. Password: TBS_2014-xx-xx-xx_xx.mp3 100% 940KB 939.5KB/s 00:01 pi@raspberrypi ~ $
ホストの認証が確立できないので続けて良いか尋ねられますが、yes とタイプし、 Mac にログインする時に使うパスワードを入力してください。これでコピーできるはずです。
ホームフォルダを Finder 上で開き、TBS_2014-xx-xx-xx_xx.mp3 ファイルにカーソルを合わせてしばらくすると再生ボタンが現れるのでクリックしてください。再生されるはずです。
OS X 10.9 Mavericks で Radiko 録音する方法。 - KOYAMA Yoshiaki のブログ http://kyoshiaki.hatenablog.com/entry/2014/02/23/183535
上記 URL にも cron の説明があります。私は Raspberry Pi 上で radiko.jp プレミアムを cron を使ってタイマー録音しています。
いちいちコマンド scp を使ってコピーするのは面倒なので、Raspberry Pi に Samba をインストールして Mac の Finder から直接再生したり、iPhone (iPod touch) から
Documents 5 (Free) カテゴリ: 仕事効率化 無料 Documents 5 – 高速 PDF リーダー、メディアプレーヤー、ダウンロードマネージャ - Readdle GoodReader for iPhone カテゴリ: 仕事効率化 ¥500 GoodReader for iPhone - Good.iWare Ltd. GoodReader 4 (GoodReader 最新版) カテゴリ: 仕事効率化 ¥300 GoodReader 4 - Good.iWare Ltd.
上記アプリを使って MP3 ファイルをダウンロードし、再生しています。有料ですが GoodReader for iPhone は30秒早送りもできるので便利です。Raspberry Pi に Samba をインストールする方法と Mac の Finder からアクセスする方法、上記アプリの使用方法は次回説明したいと思います。
Raspberry Pi での cron 設定は、まず Mac のターミナル上でコマンド ssh を実行し Raspberry Pi にログインします。
~ $ ssh pi@192.168.xx.xx pi@192.168.xx.xx's password: Linux raspberrypi 3.10.25+ #622 PREEMPT Fri Jan 3 18:41:00 GMT 2014 armv6l pi@raspberrypi ~ $ crontab -e
上のように crontab -e を実行します。
# # m h dom mon dow command 0 8 * * 0 /home/pi/delete.py -y -d /home/pi/radio 12 0 1 * * 0,5 /home/pi/rec_radiko2.sh LFR 120 mail password /home/pi/radio/night 0 1 * * 2 /home/pi/rec_radiko2.sh TBS 120 mail password /home/pi/radio/junk 0 13 * * 1-5 /home/pi/rec_radiko2.sh TBS 150 mail password /home/pi/radio/tama
エディタ nano が起動します。カーソルキーで一番下に移動し、上記内容を入力してください。画面下に表示されているように CTRL+O を入力するとファイル名が表示されるので Return Key を押して保存します。CTRL+X で終了してください。mail (3箇所)、password (3箇所) は、radiko.jp プレミアムにログインする時に使用するメールアドレスとパスワードです。
この場合、
日曜日、午前8時にスクリプト /home/pi/delete.py -y -d /home/pi/radio 12 を実行します。 ニッポン放送 (LFR) 日曜日と金曜日、午前1時から2時間、'オールナイトニッポン (オードリー、ナインティナイン)' を録音します。 TBS ラジオ (TBS) 火曜日、午前1時から2時間、'月曜 JUNK 伊集院光 深夜の馬鹿力' を録音します。 TBS ラジオ (TBS) 月曜日から金曜日まで、午後1時から2時間30分、'たまむすび' を録音します。
です。
録音した MP3 ファイルを保存する radio ディレクトリ
pi@raspberrypi ~ $ mkdir radio
を作成し、radio ディレクトリ内に night、junk、tama ディレクトリをそれぞれ
pi@raspberrypi ~ $ cd radio pi@raspberrypi ~/radio $ mkdir night pi@raspberrypi ~/radio $ mkdir junk pi@raspberrypi ~/radio $ mkdir tama pi@raspberrypi ~/radio $
上記のように作成してください。
crontab の日付時刻設定は
# # m h dom mon dow command # 何分(0-59) 何時(0-23) 何日(1-31) 何月(1-12) 何曜日(0-6) コマンド 0 8 * * 0 /home/pi/delete.py -y -d /home/pi/radio 12 0 1 * * 0,5 /home/pi/rec_radiko2.sh LFR 120 mail password /home/pi/radio/night 0 1 * * 2 /home/pi/rec_radiko2.sh TBS 120 mail password /home/pi/radio/junk 0 13 * * 1-5 /home/pi/rec_radiko2.sh TBS 150 mail password /home/pi/radio/tama 数字は、時刻、日付、曜日を表し、 * は、毎月、毎日、毎時、毎分です。 曜日は 0: 日曜日 1: 月曜日 2: 火曜日 3: 水曜日 4: 木曜日 5: 金曜日 6: 土曜日
です。
0 1 * * 0,5 /home/pi/rec_radiko2.sh LFR 120 mail password /home/pi/radio/night
0,5 は、複数の曜日を指定しています。日曜日と金曜日を表しています。
0 13 * * 1-5 /home/pi/rec_radiko2.sh TBS 150 mail password /home/pi/radio/tama
1-5 は、複数の曜日を指定しています。月曜日から金曜日を表しています。
上の例は月曜日から金曜日の午後1時にコマンド
/home/pi/rec_radiko2.sh TBS 150 mail password /home/pi/radio/tama
を実行します
簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2.zip
同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_1.zip
タイムフリーの仕様変更に対応した 同時録音に対応した簡易 radiko.jp プレミアム対応 Radiko 録音スクリプト rec_radiko2.sh http://kyoshiaki.sakura.ne.jp/osx/Sample/rec_radiko2_2.zip
に含まれる delete.py は、次の
pi@raspberrypi ~ $ ./delete.py -d radio 12
コマンドをターミナル上で実行すると radio フォルダの中の日付が最新 12 個以外の削除されるファイルを表示します。
pi@raspberrypi ~ $ ./delete.py -y -d radio 12
上のように -y を引数と指定すると ( -y を指定する場合、十分注意してください。) radio フォルダ内の最新 12 個以外のファイルを削除します。radio フォルダの中にフォルダがある場合、そのフォルダ内も最新 12 個のファイル以外を削除します。
pi@raspberrypi ~ $ ./delete.py -a -d radio
radio フォルダのすべてのファイルを表示します。
0 8 * * 0 /home/pi/delete.py -y -d /home/pi/radio 12 0 1 * * 0,5 /home/pi/rec_radiko2.sh LFR 120 mail password /home/pi/radio/night 0 1 * * 2 /home/pi/rec_radiko2.sh TBS 120 mail password /home/pi/radio/junk 0 13 * * 1-5 /home/pi/rec_radiko2.sh TBS 150 mail password /home/pi/radio/tama
上のように crontab -e で設定すると毎週日曜日の午前8時に radio フォルダ内のファイルを最新 12 個以外削除します。最新 12 個のファイルだけ残るので、ディスク容量を気にする必要がありません。SD カードの容量に合わせて個数を設定してください。2 時間録音した MP3 形式ファイルのサイズは 109.8 MB です。
ディスク容量の確認は、コマンド df -h を使います。
pi@raspberrypi ~ $ df -h Filesystem Size Used Avail Use% Mounted on rootfs 13G 9.1G 3.3G 74% / /dev/root 13G 9.1G 3.3G 74% / devtmpfs 180M 0 180M 0% /dev tmpfs 38M 744K 37M 2% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 75M 0 75M 0% /run/shm /dev/mmcblk0p5 60M 19M 41M 32% /boot
上の例は、私の16 GB SD カードの状態です。crontab -e の設定は、上記例とは違います。
ssh を終了するには
pi@raspberrypi ~ $ exit logout Connection to 192.168.xx.xx closed.
上記のように exit を実行してください。
こちらのスクリプトにはお世話になっております。
実は、「録り損ねた」ことがあり、ググってみたところWindowsのプログラムでタイムフリーの日時まで指定しダウンロードできるものを見つけ、難を凌ぐことができました。
貴スクリプトでも、引数を増やすことで対応できそうに見えますが、如何でしょうか。
http://www.lifewithunix.jp/notes/2017/02/22/radikopad-radiko-time-free-program-download-utility/
kei さん、貴重な情報ありがとうございます。radiko.jp に迷惑をかけてもいけないので、これ以上の対応は考えていません。