隠居日録

隠居日録

2016年(世にいう平成28年)、発作的に会社を辞め、隠居生活に入る。日々を読書と散歩に費やす

文書化されていないNHK API v3(多分)

はてなアンテナNHKの番組更新を補足しようと思ったのだが、ページ自体は更新されているのに、なぜか通知されない。どういうことだろうと思ったら、ページ自体はjavascriptで描画されているようで、これでは、はてなアンテナでは更新の補足はできないだろう。

で、どうやら、かなりのページは既にjavascriptでページが描画されているようで、その内容を取得するために、謎のAPIが使われているようだ。ちょっとgoogleで検索してみたが、NHKの提供しているAPIはv2止まりで、v3は見つけられなかった。なぜ、v3かと思ったかというと、APIのURLが次のような形式になっているからだ。

 http://api.nhk.or.jp/r3/pg/site_id/4/130/all/1632.json?from=2016-07-13&to=2016-09-07

URLの中にr3が入っているからそうだと思っているだけである。このリクエストの応答はjsonで返ってくる。start_time、end_time、title、subtitle辺りが、必要な情報だと思う。

上のURLのallの後ろにある数字が、番組に割り当てられて固有のIDのようなのだが、このIDの一覧がどこかにないものだろうか?

fromとtoの間の日付差は56日ぐらいにしておくのがよさそうで、ページによっては、あまりに日付差が大きいと503を返してくるようだ。

2016年12月6日追記

NHKは2016年になってからラジオ第二放送のページを刷新してしまって、過去の内容が見つけられなくなってしまった。2015年以前のページは現在のページからはリンクが張られていないが、ページはまだ存在するみたいなので、参照可能となっている。2016年以降の内容は今のところ、このAPIを使えば参照可能となっている。

2017年11月10日追記

番組に割り当てられた固有のIDは以下のURLで提供されている番組表のページが参照しているJSONデータの中のsite_idの項目が相当すると思われる。

ネットラジオ番組表 | NHKラジオ らじる★らじる

それと、APIのURL中の130は東京のコードだと思われる。ドキュメント リクエストの説明 | NHK番組表APIのareaが相当すると思われる。

2023年2月17日追記

一部の番組でこのAPIが403を返すようになった。新たに"https://api.nhk.jp/r6/l/radioepisode/rs/"というようなAPIができているようだが、例によってどこで番組のIDが決められているのか不明。