Skip to content

uru2/radish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

radish

NHKラジオ らじる★らじる / radiko / ListenRadio / 渋谷のラジオ で現在配信中の番組を保存するシェルスクリプトです。なお配信形式と同じフォーマットで保存するため、別形式へのエンコードは行いません。

必要なもの

  • curl
  • libxml2 (xmllintのみ使用)
  • jq
  • FFmpeg (3.x以降 要AAC,HLSサポート)

使い方

$ ./radi.sh [options]
引数 必須 説明 備考
-t SITE TYPE 録音対象サイト nhk: NHK らじる★らじる
radiko: radiko
lisradi: ListenRadio
shiburadi: 渋谷のラジオ
-s STATION ID 放送局ID -l オプションで表示されるID
渋谷のラジオは指定不要
-d MINUTE 録音時間(分)
-i MAIL ラジコプレミアム ログインメールアドレス 環境変数 RADIKO_MAIL でも指定可能
-p PASSWORD ラジコプレミアム ログインパスワード 環境変数 RADIKO_PASSWORD でも指定可能
-o PATH 出力パス 未指定の場合カレントディレクトリに 放送局ID_年月日時分秒.(m4a or mp3) というファイルを作成
拡張子がない場合または配信側の形式と異なる場合には拡張子を自動補完します
-l 放送局ID/名称表示 結果は300行以上になります、また取得は(割と)重いです

実行例

NHK らじる★らじる
$ ./radi.sh -t nhk -s tokyo-fm -d 31 -o "/hoge/foo.m4a"
radikoエリア内の局
$ ./radi.sh -t radiko -s LFR -d 21 -o "/hoge/$(date "+%Y-%m-%d") テレフォン人生相談.m4a"
radikoエリア外の局 (ラジコプレミアム)
$ ./radi.sh -t radiko -s HBC -d 31 -o "/hoge/foo.m4a" -i "foo@example.com" -p "password"
radikoエリア外の局 (ラジコプレミアム 環境変数からログイン情報設定)
$ export RADIKO_MAIL="foo@example.com"
$ export RADIKO_PASSWORD="password"
$ ./radi.sh -t radiko -s HBC -d 31 -o "/hoge/foo.m4a"
ListenRadio
$ ./radi.sh -t lisradi -s 30058 -d 30 -o "/hoge/foo.m4a"
渋谷のラジオ
$ ./radi.sh -t shiburadi -d 30 -o "/hoge/foo.mp3"

注意点

録音手法については2019/5/25時点での調査結果であり、対象サイトの仕様変更等で利用できなくなる可能性もありますのであらかじめご了承ください。
また渋谷のラジオの録音時にではffmpegから "Application provided invalid, non monotonically increasing dts to muxer in stream" というメッセージが吐き出されるのですが、音声は聴けるようなのでとりあえずそのままにしています。

動作確認環境

  • Ubuntu 18.04.2 LTS
    • curl 7.58.0
    • xmllint using libxml version 20904
    • jq 1.5-1-a5b5cbe
    • ffmpeg 4.1.3-0york1~18.04
  • FreeBSD 12.0-RELEASE
    • curl 7.65.0
    • xmllint using libxml version 20908
    • jq 1.6
    • ffmpeg 4.1.3

作った人

うる。 (@uru_2)

ライセンス

MIT License

About

Live streaming radio recoder

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages