ラジコ:エリアフリー対応RadikoPadコマンドラインツール

現在当サイトで公開中の RadikoPad 1.1.0beta3 が 2022/9末の radiko.jp の仕様変更で、ラジコプレミアムにログインできなくなってしまいました。(と、報告を受けています。無料エリアの場合は、影響ありません。)
Webブラウザーを使うことで回避できますが、RadikoPad をコマンドラインモードで使用する場合、元々エリアフリーには対応できていませんでした。

現在、RadikoPad開発者の珍宝堂さんが、RadikoPadの継続開発を行えない状況ですので、やむなく私がWindows版 Radikoタイムフリーアプリの作成に手を出してみることにしました。ソースコードもらってないし、何の言語を使って開発しているかも知らないし、ソースがあったとしても、RadikoPadはDelphiという環境で開発されているそうなので、結局、一から作ることになります。

元々Visual Studio を使わなくちゃいけない用事があったことと、radiko.jp の認証プロトコルに興味があって調べようと思っていたことによるもので、Visual Studio を試用してみるついでにRadiko関係のプログラムに手を出して、あわよくばRadikoPadコマンドモード未対応のラコジプレミアムを使えるようにしてみようというのが本音。

継続してRadikoアプリの開発を行うつもりはなくて、出来ることなら私はラジコ関係では一人のリスナーでありたい。珍宝堂さん、早く復帰して~。

背景は後回しにすることにし、まずは、使い方説明。

ダウンロードURL:

Windows10 32bit/64bit 共通:

http://www.lifewithunix.jp/download/RadikoPad_cmd_20230510.zip (27161648 bytes)

 

64bit Windows10 .Net3.1 用:

http://www.lifewithunix.jp/download/RadikoPad_cmd.zip  (505,729 bytes)
.Net 3.1インストーラー同梱。

32bit /64bit Windows 共用 .NET6版:

http://www.lifewithunix.jp/download/RadikoPad_cmd_x86_x64_net6.zip (70604 bytes)

.NET6 と ffmpeg が含まれておらず、プログラムのみなので、約70kB
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=6.0.0&arch=x86&rid=win10-x86
から、.net をダウンロードしてインストールする必要があります。ffmpegもお忘れなく。

ソースコードは、共通です。.Net6版は (Windows7以上を対象とした) x86 CPU用にビルドし直しましたので、32bit Windows10でも動きます。64bit Windowsの場合は、32bitモードで動作します。Win10以外は動作未確認。

インストール:

ダウンロードしたものを解凍してください。

RadikoPad_cmd.exe と config.ini を同じフォルダーにおいてください。
使えなくなった RadikoPad_cmd.exe をご使用の場合、RadikoPad_cmd.exe を差し替えてください。

旧バージョンをビルドした時のソースを小修整して不具合を取り除き、x64/x86 共通にした影響で、動作が少し変わってしまいました。

config.ini の中に、必ず ffmpeg_path をフルパスで指定してください。

RadikoPad_cmd.exe を単一ファイルにした関係で、インストールしたパスはあくまでも仮のフォルダー。実際にはプログラムが一度、自分の \AppData\Local\Temp\.net の下にコピーされて実行されるため、ffmpeg のパス情報がダイナミック情報になってしまいました。(バグフィックスのため、現時点では同一フォルダーに置いても、ffmpeg へパスが通らず、ffmpeg が動きません。)

<例>
# サンプル config.ini
# すべて半角文字で記述のこと。
# ' や " で文字を囲まない。
# 各行の文字間にスペースは入れないこと。空白行はOK。
mailaddr=
password=
# ffmpeg.exe を必ずフルパスで指定すること。RadikoPad_cmd と同じフォルダーに入れても指定が必要です。
ffmpeg_path=C:\ffmpeg\ffmpeg.exe

新規フォルダーにインストールする場合は、

  1. ダウンロードしたファイルを解凍して適当な場所に置く
  2. config.ini に ffmpeg.exe をフルパスで指定する。
  3. エリアフリーを使う場合は、mailaddr, password を記入して保存。

あとは、従来通りです。

RadikoPad_cmd.exe がプログラム本体ですが、コマンドラインアプリであることと、ランタイムライブラリーが通常はインストールされていないため、RadikoPad_cmd.exe を使おうととするも、エラーが発生すると思います。

RadikoPad_cmd.zip の中身

 

Visual Studio インストール済みの人は、解凍だけで使用できるはず。

何も準備しないでコマンドラインから実行すると、以下のようにエラーとなります。

a fatal error occurred. The required library hotfixr.dll could not be found.

A fatal error occurred. The required library hostfxr.dll could not be found. If this is a self-contained application, that library should exist in [C:\Users\thonda\Downloads\RadikoPad_cmd\]. If this is a framework-dependent application, install the runtime in the global location [C:\Program Files\dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location or register the runtime location in [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation]. The .NET Core runtime can be found at: – https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=win10-x64

Fatal Error が出る人は、まずは、setup.exe を実行して、動作に必要なライブラリをインストールする必要があります。このライブラリは、一部ネットワークからインストールされます。

インストールされたものは、「C:\Program Files\dotnet」に入ります。

なぜか、設定→アプリケーションでチェックすると、「RadikoPad_cmd」が表示されます。消しちゃって構いません。

RadikoPad_cmd.exe 自体はダウンロード→解凍したフォルダーにあり、必要に応じてどこにでも移動してください。

このライブラリの関係で、恐らく、64bit Windows10 しか動かない気がします。32bit Win10や、Win11 は未確認。

RadikoPad_cmd.exe のコマンド書式:

基本的に、RadikoPadの書式をまねていますが、残念ながら、このRadikoPad_cmd は RadikoPad のように便利じゃありません。

RadikoPad_cmd.exe <ラジオ局ID> <録音開始時刻 yyyyMMdd+HH:mm> <録音終了時刻 yyyyMMdd+HH:mm>

RadikoPad と異なり、終了時刻を入力する必要があります。(.exe は付けなくても動くはず。)
ラジオ局指定と日時指定フォーマットは同じにしておきました。

サンプル:

.\RadikoPad_cmd.exe TBS 20221111+13:00 20221111+13:15

この例は、2022/11/11 13:00 ~ 同日 13:15 のTBS局を録音します。

RadikoPad_cmdの使い方:

使い方は、

  1. RadikoPad_cmd.exe が存在する位置でコマンドプロンプトやPowerShellターミナルを開く、または、その場所にCDする。
  2. config.ini に ffmpeg.exe のパスを絶対パスで指定する。
  3. この時点で、ラジコプレミアムにログインせずに使えるようになります。つまりアクセスポイントの場所から無料で受信できるエリアのみのタイムフリーを録音できます。
  4. エリアフリーとして使いたい場合、同フォルダーにある config.ini を編集してください。同様に、ffmpeg.exe の場所を変更したい人も、config.ini を編集してください。
  5. # サンプル config.ini
    # すべて半角文字で記述のこと。
    # ' や " で文字を囲まない。
    # 各行の文字間にスペースは入れないこと。空白行はOK。
    mailaddr=myname@example.co.jp
    password=mypassword
    # ffmpeg.exe を同一フォルダーに置く場合は、ffmpeg_path をコメント行にすること
    ffmpeg_path=C:\ffmpeg\ffmpeg.exe
  6. メールアドレスとパスワードが config.ini に設定されていれば、radiko.jp へログインを試みます。ログインに成功すれば、自分の聴取エリア外の番組を録音することが出来ます。
  7. 録音ファイルは、<局ID><録音開始日時> の形式で、RadikoPad_cmd.exe と同じ場所に保存されます。この録音場所やファイル名は変更できません。ファイルは m4a 形式で保存されます。その他の音声フォーマットは扱えません。
  8. コマンドを発行した画面に大量に、デバッグ情報が出ます。非表示にしようかとも考えましたが、利用者が動いていることを確認するためにも利用できるので、デバッグ情報垂れ流しで放置しています。中には、ラジコプレミアムログイン情報も平文で記録されますので、情報の扱いには注意してください。意味が分かる人が見ればアカウントを乗っ取られます。

開発環境:

windows10 / Visual Studio 2022(.net3.1)  / Visual Basic

動作環境:

多分、Windows10 のみ。対応する.Net をインストールできれば、Win7でも動くかも。

RadikoPad_cmd開発の背景:

上にもチラッと書きましたけど、Visual Studio を使ってみる必要があったことと、ラジコの認証について調べてみたところ、とっても親切な解説ページに巡り合えたことで、「私でもできるんじゃねぇ?」って感じたことが大きい。そして、Web検索で、Radiko関係ツールを、Visual Basicで開発した例がないので、それならばって感じで Visual Basic を選択しました。Visual C++ や C# の方が開発しやすいかとも思いましたが、いざとなった時に、「ソースコードを公開して放置すれば、誰かメンテナンスするんじゃねぇ?」という考えもあります。

まず、参考にさせていただいたページを紹介。

  1. https://blog.bluedeer.net/archives/216
    このサイトに、Radiko.jp の認証の仕方が全て書いてあり、ここに掛かれていることをVBに落としてゆけばラジコタイムフリーの録音ができます。
  2. https://github.com/uru2/radishhttps://github.com/uru2/rec_radiko_ts
    uruさん開発の、Windows WSL2 や Unix系OSのShellで動かせるラジコタイムフリー録音スクリプト。このサイトにある rec_radiko_ts を使えば、そもそも RadikoPad_cmd自体開発不要。コマンドオプションも豊富で、Windows10オプション機能のWSL2を有効にするだけで使えるし、スクリプトが完ぺきだったため、2022年9月末のラジコ仕様変更の影響を受けていません。RadikoPad_cmdを使うくらいなら、こっちを使うべき。
  3. https://ststarfield.blog.fc2.com/blog-entry-150.html
    録音スクリプト開発には役に立ちませんが、Radiko関係のスクリプトを書く場合に必要な情報が紹介されています。

RadikoPad開発者の珍宝堂さんから、今後も長期間RadikoPadを更新できそうにない状況であると連絡を受けました。私に限定すれば、2022年9月末のRadiko仕様変更も、Radiko聴取環境には全く影響なくて、全然困ってないのですが、RadikoPadページへのアクセス状況をモニターしている限り、RadikoPadのアップデートを心待ちにしている人が多そうです。面倒なGUI開発、ファイル名指定などのユーティリティー機能は後回しにして、エリアフリー録音のためにRadikoPadの他、Webブラウザーが必要になる点だけは解消しておこうと開発を始めました。

上記 1 URLにある情報をたよりに、そのままVBコードに書いて行って、一つずつ確認して行けば、最終的に ffmpeg でラジオ録音が出来るようになりました。その、動作確認コードをきれいに成型することなく、そのまま上から下に流れるプログラムとして利用したのがこの RadikoPad_cmd です。ソースコードは絶対他人に見せたくない!

プログラム中でエラー処理をほとんどしていないので、正しくコマンドを発行できれば録音できるけど、ちょっとでも間違っていると、エラーも出さずに終わってしまうという、普通に考えれば最悪のプロラム。

でもまあ、ラジコプレミアムログインできるWindowsコマンドラインツールが存在しないよりも、不自由でも存在していて選択肢がある方がよいだろうという判断で、公開することにしました。コマンドラインユーザーなら、きっとスクリプトから利用しているはずだし、録音さえできればあとは自分で何とかするでしょうってこと。

2022年10月半ばに初めてVisual Basicのコードを書き始め、プログラミングの方は少し明るさが見えてきたところですが、Visual Studio 環境の使い方が、まだ全然わかんない!さらに、作ったプログラムバイナリーの配布方法もよくわからない状態で、RadikoPad_cmd.zip を公開しているので、これが正しい方法なのか?と頭に疑問符????がいっぱいの状況です。

RadikoPad_cmd のサポート:

ありません。上記の背景で開発、公開しているものなので、RadikoPadのようなサポートはありません。
コメントを書き込んでいただくのは構いませんが、各コメントに一つずつ対応する気はありません。こういう状況のものなので、安心して使えないものが嫌な人は使わないでください。というか、uru さんの rec_radiko_ts を使ってよ。

今のRadikoPad_cmdは ver.0.1.0 と設定しており、まずは、力ずくで動かしているプログラムをちゃんとサブルーチン化してまともに動くようにする必要があります。個人権限でradiko.jp 限定の通信ですので、OSに悪影響を与えたり、これが元で侵入されるようなことは無いはずと思っています。ただ、全部、RadikoPad_cmd.exe と同じ階層に録音されるというのも問題かと受け止めてます。

このあと、GUIを付けて、現RadikoPad風にする方向に行くか、コマンドモードで番組表情報から録音時間を取ってくるような高機能化を図るかは、未定です。

私がスキルアップした段階で、情報なり更新したプログラムなり 公開してゆきたいと考えています。
投げ出すことにする場合は、ソースを公開する予定です。(ソース公開済み)

Comments

  1. RadikoPad_cmd 私の環境でも無事動きました。
    ありがとうございます。
    非常にうれしいです。

    早速各種番組用にBatchファイルを作成します。(^^)

    1. Zackyさん、
      早速の動作確認レポートありがとうございます。
      開発環境では動作することを確認できていたのですが、自分の開発環境ではないPCやWin7 PCでテストすると、ライブラリー不足(だと思う)で起動しなかったりしたので、ユーザー環境で本当に問題なく動くのか?と心配していました。
      状況を書き込んでいただけたのがうれしいです。

      今回のバージョンは、本当に雑に作っています。今まで、珍宝堂さんのRadikoPadで出来なかったことの隙間を埋める仕様です。
      現時点で不便な点、GUIで直接ラジコプレミアムを使えない問題に関しては、次の課題かと思っています。

      が、今回初めて使ったVisual Studio は出来ることが多すぎて、まだRadikoPad_cmd を作ることが精いっぱいの段階。
      珍宝堂さんが復帰するまでは、ボチボチ自身のドキュメントを整えながら、ツールを進歩させてゆこうと思っているところです。
      時々、情報、プログラム のアップデートをがあると思いますので、チェックしてみてください。

    1. 情報ありがとうございます。
      アクセスしてみました。
      中身を見ていないので、動作まではわかりませんけど、復活するといいですね。

      RadikoPatchers

  2. コマンドラインツール動きました。便利ですね。いつもはradikopadを使ってましたがこちらも使わせてもらいますね。
    開発お疲れ様です。

  3. ライブラリ不足やコマンド書式誤りではないと思うのですが、HTTP/1.1 405 Method Not Allowedで弾かれてダウンロードができない状態です(メッセージを読む限りおそらくそう)。基本的にノーサポートは承知していますが、ラジコプレミアムでもないのにHTTP405という疑問がありますので、情報提供として。デバッグメッセージ中にメールアドレスやパスワードが露出している部分は”[削除]”で隠してあります。

    >RadikoPad_cmd.exe FMT 20230419+13:00 20230419+14:55
    Hello
    D:\Profiles\Administrator\Radio\tools\RadikoPad_cmd\RadikoPad_cmd.dll FMT 20230419+13:00 20230419+14:55
    D:\Profiles\Administrator\Radio\tools\RadikoPad_cmd
    0=D:\Profiles\Administrator\Radio\tools\RadikoPad_cmd\RadikoPad_cmd.dll
    1=FMT
    2=20230419+13:00
    3=20230419+14:55
    FMT
    20230419130000
    20230419145500
    Comment Line
    Comment Line
    Comment Line
    Comment Line
    [削除]
    [削除]
    C:\Program Files (x86)\ffmpeg\ffmpeg.exe
    curl.exe -c cookie.txt –request POST –data-urlencode “mail=[削除]” –data-urlencode “pass=[削除]” “https://radiko.jp/v4/api/member/login”
    {“twitter_name”:null,”status”:”200″,”privileges”:[“1″],”areafree”:”1″,”facebook_name”:null,”paid_member”:”1″,”radiko_session”:”40edc722f8a7d0d6633a8a9a4b74be8e54b371ba”,”unpaid”:”0″,”member_ukey”:”LdcV_nB”}
    areafree:1
    40edc722f8a7d0d6633a8a9a4b74be8e54b371ba
    curl.exe -s -c cookie.txt -H “X-Radiko-App: pc_html5” -H “X-Radiko-App-Version: 0.0.1” -H “X-Radiko-User: dummy_user” -H “X-Radiko-Device: pc” -I -L https://radiko.jp/v2/api/auth1

    HTTP/1.1 200 OK
    Server: nginx
    Date: Fri, 21 Apr 2023 15:08:49 GMT
    Content-Type: text/plain
    Content-Length: 25
    Connection: keep-alive
    vary: Origin
    x-radiko-apptype: pc
    x-radiko-apptype2: pc
    x-radiko-authtoken: idKnXOQ9Bu9hx8SMSvJ4tw
    x-radiko-authwait: 0
    x-radiko-delay: 15
    x-radiko-keylength: 16
    x-radiko-keyoffset: 10
    x-request-id: GUnWBbTVJDWG1snGoBrqeDKbLsqRwfJv
    x-cloud-trace-context: c7441e47599cf05ebed9d8012e473f9a
    via: 1.1 google
    Alt-Svc: h3=”:443″; ma=2592000,h3-29=”:443″; ma=2592000
    x-frame-options: SAMEORIGIN

    idKnXOQ9Bu9hx8SMSvJ4tw
    16
    10
    MDNiMzUyZTFlZjJmZDY2Yw==
    curl.exe -c cookie.txt -H “X-Radiko-AuthToken: idKnXOQ9Bu9hx8SMSvJ4tw” -H “X-Radiko-PartialKey: MDNiMzUyZTFlZjJmZDY2Yw==” -H “X-Radiko-User: dummy_user” -H “X-Radiko-Device: pc” -I -L https://radiko.jp/v2/api/auth2?radiko_session=40edc722f8a7d0d6633a8a9a4b74be8e54b371ba
    HTTP/1.1 405 Method Not Allowed
    Server: nginx
    Date: Fri, 21 Apr 2023 15:08:50 GMT
    Content-Type: text/html
    Connection: keep-alive
    allow: OPTIONS, GET
    vary: Origin
    x-request-id: Paf4NK7SxJKGCYkg4Ojx8baAEgUwXK59
    x-cloud-trace-context: d34a318c178a2c435cf3f43e00462912
    via: 1.1 google
    Alt-Svc: h3=”:443″; ma=2592000,h3-29=”:443″; ma=2592000

    C:\Program Files (x86)\ffmpeg\ffmpeg.exe -loglevel error -fflags +discardcorrupt -headers “X-Radiko-AuthToken: idKnXOQ9Bu9hx8SMSvJ4tw” -i “https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=FMT&l=15&ft=20230419130000&to=20230419145500” -acodec copy -vn -bsf:a aac_adtstoasc -y FMT202304191300.m4a
    curl.exe -s -c cookie.txt -request POST –data-urlencode “radiko_session=40edc722f8a7d0d6633a8a9a4b74be8e54b371ba” “https://radiko.jp/v4/api/member/logout”
    {“status”:”200″}

    1. レポートありがとうございます。

      HTTP/1.1 405 Method Not Allowed って、ログに出てますね。405 って初めて見ました。
      タイミング的に、ラジコプレミアムに一時的に加入して確認するには、今月残り10日しか無くて、時期が悪いので再現テストを行うとすると、来月になります。

      ライブラリ不足だと、プログラムが起動さえしないので、ユーザー環境の影響は無いはずです。
      というか、コマンド自体はしっかりサーバーに送られています。
      それに、curl.exe 自体は、私が開発したものじゃなくて、Windowsに付属しているものなので、私のように決め打ちで作っているはずがない。

      自分のところで、まだテストしていないのですが、この現象、毎回発生しますか?
      Method Not Allowed は初見ですが、HTTP method の get/put だと思うので、毎回この現象になるとしたら、また仕様変更?って思ってしまいます。(それならどこかにレポートされてそうですね。)

      可能な範囲で、本日以降、調査とテストしてみたいと思います。

      1. 調査とテストありがとうございます。
        いくつかした切り分けの事も書いておきます。
        (1)Radikoプレミアムを使う予定だったので、最初からconfig.iniにメールアドレス、パスワードを入れた状態で上記405エラーになったので、メールアドレスとパスワードをコメントアウト(#)してみましたが、結果変わらず
        (2)最初違うパスにffmpeg.exeを配置していましたが、RadikoPad_cmd.exeと同一パスに配置してみましたが結果変わらず。
        (3)ほかの放送局と時間帯の番組で試してみましたが、結果変わらず
        (4)405エラーになった番組意をRadikoPad.exeでダウンロードすると問題なし
        ……あまりヒントにならなくて申し訳ないですが、いまのところこんな具合です。

      2. 症状を確認しました。調査開始します。

        curl.exe -c cookie.txt -H “X-Radiko-AuthToken: E67qDgIxg5exqltY6wd5FQ” -H “X-Radiko-PartialKey: ZDY2YzMyMjA5ZGE5Y2EwYQ==” -H “X-Radiko-User: dummy_user” -H “X-Radiko-Device:
        pc” -I -L https://radiko.jp/v2/api/auth2?radiko_session=2eda3ae97988b5b73ae2a8c7131df6f7c2ccd43d
        HTTP/1.1 405 Method Not Allowed
        Server: nginx
        Date: Thu, 04 May 2023 11:10:18 GMT
        Content-Type: text/html
        Connection: keep-alive
        allow: OPTIONS, GET

        余談ですが、最近、また、radiko.jp の小規模仕様変更があったようです。(まっとうに radiko.jp を利用している殆んどのユーザーには影響なく、抜け道を探しているごく少数のユーザーのみに影響あり。)
        個人的に、3月末で録音していた昼間の帯番組が終了してしまったので、当面、ラジオ番組をWindowsで自動録音する必要性が無くなりました。新しく環境設定するよりも、Webブラウザーベースで十分と思っていたら、突然、radiko.jp サイトへのアクセスに不具合が生じ、一旦回避できたものの再発するので、ちょっと慌てているところです。

      3. ラジコプレミアムは関係なさそうですね。
        エリアフリーでもログイン無しでも同じ症状になるようです。

        RadikoPad や、他のUnix上のツールは何事もなく正常に動作しているので、なぜ、RadikoPad_cmd だけ突如こうなってしまったのか?と不思議に思っています。
        auth2 のところで、突然通信に失敗し、プログラム内でエラー処理していないので、そのあとの動作が全て失敗するという感じです。

      4. やっとこさで、原因を見つけました。
        PartialKey の計算を間違っているのか、AuthToken をうまく返せていないのか、手動計算してプログラムの結果と一致するか確かめたり、10日間さんざん悩みました。
        Radiko.jp の javascript ページまで確認して、ヘッダー情報仕様が変わっていないことを確かめ、ではなぜ、半年以上前から動いているRadikoPad は問題なくて、RadikoPad_cmd だけエラーになるのか?
        uru さん作成の rec_radiko_ts とのソースと処理を比べながら、一つずつ確認していったところ curl.exe に渡すコマンドオプションに違いを見つけました。
        auth2 のルーチンの中の curl オプション に私は -I オプションを使っていたのですが、rec_radiko_ts にはこれに相当するオプションが無いことを発見し、-I を取り除いたところ、テストプログラムで HTTP Error 405 が出なくなりました。
        この後で、ビルドの仕方を思い出し、プログラムをビルドし、動作テストしたあとの公開となります。

        まさか原因が curl のオプションだとは考えなかった! HTTP Header の中のオプションだと考えて堂々巡りしていましたわ。
        プログラマーの方が公開している情報とソースコードをコピーして、仕様を理解しないでプログラムを作っている人間の限界ですな~。(笑)

  4. 原因解明に至ったということで本当にありがたいです。
    コマンドラインで番組の開始時刻・終了時刻を指定するという仕様は
    (細かい話ですが)昼の帯番組のリスナーにとっては非常にありがたいので、使えるようになるのがうれしいです。
    というのも昼の帯番組はRadiko上で1時間ごとに分割されているので、一括で録音したい場合、結局GUIに頼らなければならず、コマンドラインでの録音の労力の削減効果がそがれてきたもので…公開を楽しみにしていますね。

    1. http://www.lifewithunix.jp/download/RadikoPad_cmd_20230510.zip
      に、不具合修正版を公開しました。旧バージョンはもう動かないので、このページの内容自体を小修整しました。
      32bit/64bit, .Net を含んだファイルになっているはずで、私の環境では動作確認しましたけど、RadikoPad_cmd 初めての環境での動作確認は出来ていないので、何か不都合を見つけたらコメントしてください。
      他ページの情報は後程更新する予定です。

      1. 修正版の公開ありがとうございます。週末に湯っきり試してみますね。

  5. Radikopad+修正パッチですが、今朝はエリアフリーログインしなくともDLできますね。今だけかな。またなんか変わったかな。

    1. 無料会員IDで、認証をしてみましたけど、paid_member は 0 になってましたので、認証はいつも通りですね。
      status : 200
      privileges : {}
      facebook_name :
      paid_member : 0
      radiko_session : 08d85d7f351819ff05f285b3277c61135702d855

      仕様変更はポロポロ行われているようです。Webブラウザーベースでは、api.radiko.jp なるホストが何らかの役割のために追加されています。
      私はこれでハマりましたが、RadikoPadなどのツールは、このホストをアクセスしないので実質関係ありませんが、今後、経由しないといけない仕様に変更されたりするかもしれませんね。

      api.radiko.jp canonical name = api.radiko.jp.cdn.cloudflare.net.
      Name: api.radiko.jp.cdn.cloudflare.net
      Address: 104.18.37.219
      Name: api.radiko.jp.cdn.cloudflare.net
      Address: 172.64.150.37

  6. コメントを頂いて記事を読みました。
    >ラジコ:トラブル?それとも仕様変更?地域判定が食い違う
    地域判定にapi.radiko.jpがからんでるようですね。
    今のところ普通に使えていますが、今後どうなりますか。
    ヘンな変更はして欲しくないものです。
    (cdn.cloudflare.netは以前から使ってたのだろうか)

    1. api.radiko.jp は、ここ2か月くらいの間に立ち上がったホストと思われます。
      最近現れたホストなので、RadikoPad などのツールでは存在を知りませんから、利用しません。
      なので、このホストを本格的に使わないといけないプロトコルに変更されると、再び、非公式ツール全滅となります。

      そもそも radiko の存在意義があいまいなんですよ。
      ラジオは聞いてほしい、しかし、そこで発生している利権は維持したい。ラジオインフラは、放送局側のもので、絶対に手放したくない。
      リスナーが勝手なツールを作るなら、妨害してやる。という姿勢が見え見えです。Radiko がなければ、ラジオ業界なんて、番組聴取率1%以下の絶滅寸前です。
      その小さなパイの奪い合いをしている業界。

      単純に、どこの放送局を誰が聞いてもいい世界を作り、ラジオリスナーを増やして、ラジオ文化を活性化し、大きな市場を作りたい なんてことをラジオ業界で決定権を持っている人間は誰も考えていないってことです。
      録音はするな、楽曲を録音するな、局が提供する切り出し番組Podcastを聞いて、Webサイトから直接ラジオを聞け、俺ルールを守らないなら邪魔してやる という姿勢が見え見え。
      ラジオ業界で働いている末端の人や、ラジオパーソナリティがたくさんの人に聞いてもらいたいと思っていても、管理職の方は今のラジオ業界枠組みから直接稼ごうと思っている奴らばかりで、APIを開放してリスナーを増やして、その結果なんらかの相乗効果で市場が生まれるような発想は全くないわけです。寄生虫のような著作権管理団体も絡みますからね。
      例えば、楽曲を8kbps以下で流す場合は使用料を請求しないとか、著作物を流す場合は周波数フィルターを通して高域をカットして、radiko上の著作物はサンプルとして扱えるようにするとかね。

      ということで、近々、非公式ツールに問題が発生すると思いますよ。

  7. 民法ラジオ局は、CMを多く取る為に、より多くのユーザに聞いてほしいと思っています。その為にラジオ局が集まってRADIKOを立ち上げたと思っています。エリアフリーで日本全国どこでも聞けるようになり、リスナも増えたと思います。方や最近、著作権管理団体がうるさくなり、ヘンな動きがあったように思います。コミュニティFM局を録音できるアプリが次々と録音機能を削除していましたが、これもその一環かと思います。同じ様にRADIKOに対しても録音機能を制限してゆくのではないかと思います。そうならないと良いのですが。

    1. こういうマイナーなWebサイトのコメント欄でレスポンスしても仕方ない話題ではありますが、たままた、ラジオ番組録音にかかわってしまった関係で時間を割くことになってしまった人間としては、Radiko 運用の仕方には迷惑しています。

      ラジオは音声を電波に乗せるという物理現象なんですよ。だから電波は物理法則に従って、情報が聴取者に届きます。
      その物理現象を、日本の法律によって規制していたわけです。物理法則と法律は全く別のものですから、できるわけありません。
      電波の時は、アンテナ出力によって聴取可能範囲がだいたい決まっていましたが、それをIPネットワークに乗せた後も同じように行おうとしている。IPネットワークは出力とは関係ないので、本来なら世界中どこからでも聞けるのに、大雑把な地域認識プログラムで地域判定をしているから、本来の聴取地域じゃないエリアの放送が聞けたり、聴取エリアのはずが聞けなかったりします。IP技術も物理現象の応用なので、完全な地域制限なんてできるわけない。

      電波に著作権物を載せるわけですから、著作権者側から言うと、「私の著作物をなぜ只でばらまいているのか!」ってことともバランスを取る必要があるのは理解できます。
      それは、著作物だけではなく、トークしているキャスターやパーソナリティの音声だって同じ。喋っている内容は霧散するものですが、声質や語り口は著作物でしょう。勝手に切り出して使うわけにはゆかないものです。保護したり対価が必要になる内容物であることは間違いありません。災害時における重要インフラという立場もあります。AI などに勝手に流用されてよいものではありません。

      聴取エリアだけに関して言うと、全Radiko端末にGPSが装備されているわけでもないのに、リスナーの聴取エリアを制限しようとするためのプログラムを年に一回程度のペースで書き換えて、非公式ユーティリティ製作者に負担を掛ける。複数エリアを聴きたい場合は、毎月お金を払えって言うわけです。当サイトのRadikoPadダウンロード数と、ラジコプレミアムトラブル発生時のアクセス数から判断すると、アクティブなラジコプレミアム数って、ラジコ利用者の5%くらいです。10%を越えているってことは無いと感じます。(あまり利用していないけど、とりあえずプレミアム会員になっている人はもっといるはずです。)ラジオ番組って、お金を払ってまで聞きたいコンテンツと思っている人は僅かなんですよ。
      番組録音されて何が困るの?どんなデメリットがあるの?って放送局側に聞きたいものです。(不特定への無制限再配布目的はダメですよ。犯罪です。)
      音楽のライブを録音した番組くらいじゃないの?スポーツ中継なんて映像が無きゃ、録音だけしても再配布の意味ないでしょうし。
      そもそも、高品質コンテンツを録音して、不特定の他人に再利用させたいと思っている人間はほとんど存在しません。マルチメディアコンテンツは取り扱いに時間とお金が必要ですからね。両方ある人間は、昔で言うエアチェックのようなことはしません。

      こういう意味が無いコンテンツ保護のために、時々サーバー側プログラムが更新され、リスナーコミュニティーが必要とする非公式ツールの手直しが必要になったり、突発的なサーバー負荷が生じるわけです。社会現象のデータを取るという観点ならそれもいいのですが、自分の時間を奪われることも現実なので、迷惑な話です。
      見えないところで放送に関する法律と著作権管理団体の存在が、ロシア、中国の情報統制と同じ役割を果たしているわけです。

      じゃあ、放送局側にどうして欲しいか?
      とりあえずは、リアルタイムストリームは認証無しの全局エリアフリーにする代わりに、音質をAM並みに落とす。8kbps とか10kbps くらいに。または、ローパスフィルタで音域制御を行って音声はそのままで楽曲の品質だけ下げればいい。(インフラの負荷を考えるなら、全部8kbps にする方がいいと思う。)こうすれば、楽曲を無断再利用されることによる不利益は無くなるだろうし、何度も聞きたいと思う曲は買うことになる。要するに、アンテナ出力を上げたのと同じ効果で、日本全国、いや、世界中で日本のラジオ番組を聴けるようになる。(オンラインショッピングの時間がどうなるかは興味があるところ。)
      タイムフリー、ラジコプレミアムに関しては、今のままで。
      番組に参加したいのであれば、リアルタイムで聞くしかないわけで、高音質で自分の聴取エリア以外を聴きたいなら、プレミアム会員になればいいし、番組にリアルタイム参加できなくてもいいならタイムフリーで聞けるという感じ。災害時に連絡が取れない遠方の家族を心配するためにラジコを聴くことも特別な仕組み無しで可能になる。ストリームを細くするので、リスナーのキャパシティーが自動的に数倍に増える。(コネクションが増える分の調整は必要かも。)

      ラジオがメジャーメディアだった時代は、すでに50年前終わっているわけですから、その時代の利益構造の枠組みを維持してビジネスを残したいと思ってもパイは減り続けるか微増にとどまるだけ。局数が一定数まで減ってパイと釣り合うまでのカウントダウンを聞いているだけの状態。
      せっかく、ラジコというBS/CS TVチャンネルと同じインフラ + 同時双方向コミュニケーションを手に入れているわけですから、真剣にそれを使うことを考えたら?
      単純に考えて、ラジコリアルタイムリスナーの多くはラジコWebページを開いているわけですから、Yes/Noアンケートや、4択アンケートが可能なわけです。それなのに、番組中ではRadiko以外のインフラを使ったチャットとか、メールメッセージばかり。Radikoアプリの中にユーザーインタフェース作ってみたら?既にあるけど使っていないのか?手間だからやりたくないのか?実際に存在しないのか?やれることいっぱいあるんじゃないの?

      Radikoの仕様が突然変わって、状況確認したり、プログラムに修正を入れなきゃいけなくなったりするたびに、こんなことを思ってブツブツ言いながら作業していますよ。

      RadikoPad の方も、珍宝堂さんの環境変化で、タイムリーに修正を掛けてもらえなくなってしまっているので、ラジコ関係が困りに困って私の手に負えない状態になったら、ラジオ関係のコンテンツは切り捨てることに決めています。Radika がメンテナンスをやめたのも、今ではよくわかります。
      ビデオコンテンツと違って音声コンテンツ(ラジオ番組、音声Podcast)は、利用や保管が簡単で情報密度も高く、外で作業したり、運転をしているときは、適度なノイズにもなってくれるので、相性が合うラジオ番組はず~と利用してゆきたいところです。しかし、聴く方も人間、喋る方も人間、しかも運用にはコストが掛かるので、いずれ終わりが来ることも事実。変化する社会環境に合わせてリスナーの便宜を図るための仕様変更なら文句は言いませんが、古い枠組みに縛り付けるための仕様変更にはうんざりですよ。

      書いていたら長くなりすぎたので、あとで、スレッドに引っ越すかもしれません。

  8. ラジオやRADIKOその他で音楽や番組を聴く場合、いつも悩ましいと思っているんですが、その音楽や番組を制作したアーティストや制作会社も人間ですからメシを食べないといけません。放送という媒体がある以上、CD等物理媒体の販売だけではアーティストの収入は不足でしょう。なので放送時にカネを徴収するのは理解できます。その為に不正がないように(公衆送信権という著作権が保護されるように)仕組みを作るのが最優先と思います。それができないのでリスナ側に制限をかけるのはいかがなものかと思います。
    今回の修正は、cdn.cloudflare.netという汎用サービスにコンテンツを移管するにあたってエリアフリーをどうするかが課題になり、しかたなくapi.radiko.jpを設定したのではないかと思っています。

lifewithunix.jp管理人 へ返信するコメントをキャンセル