[[diary/Kojima]]
・NHKラジオ第二 カルチャーラジオのストリーミング
この4月から、「カルチャーラジオ」の[[ストリーミング:http://www4.nhk.or.jp/P1928/28/]]が始まったので少し調べてみたことのメモ。
月曜の「ラジオアーカイブス」から金曜の「科学と人間」までの各番組と土曜の「漢詩を読む」、日曜の「日曜カルチャー」が「カルチャーラジオ」としてストリーミング提供されている。
ストリーミングを提供しているページのソースを眺めると、各番組の情報はjson形式で提供されているようでそれぞれのURLは、
http://www.nhk.or.jp/radioondemand/1279/bangumi_1279_[1-7].json
"1"が月曜の「ラジオアーカイブス」、"2"が火曜の「歴史再発見」、"3"が「芸術その魅力」、"4"が「文学の世界」、"5"が「科学と人間」、"6"が「漢詩を読む」、"7"が「日曜カルチャー」という割り当てになっている。
送られてくるjsonデータは、"main"の下に"week","corner_id", "media_code",,,等のデータが並ぶけど、とりあえず ['main']['media_name']、['main']['navi_name']、['main']['corner_name']、['main']['detail_list']くらいを調べれば必要な情報は揃いそう。
とりあえずこんなコードを書いてみた。なお、URL操作用にPythonにrequestsモジュールを追加インストールしている。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests, json
json_data = {}
json_url_base = 'http://www.nhk.or.jp/radioondemand/1279/bangumi_1279_0'
for i in range(1,8):
json_url = json_url_base + str(i) + '.json'
json_data[i] = json.loads(requests.get(json_url).text)
print(json_data[i]['main']['media_name'])
print(json_data[i]['main']['navi_name'])
print(json_data[i]['main']['coner_name'])
for j in json_data[i]['main']['detail_list']:
print(j['headline'])
print(j['headline_sub'])
for k in j['file_list']:
print(k['file_title'])
print(k['file_name'])
結果はこんな感じ。
$ python ./parse_json.py
NHKラジオ第2
ドキュメンタリー/教養
カルチャーラジオ 月曜日 NHKラジオ・アーカイブス
野坂昭如
元文芸誌編集長…大村彦次郎,【司会】宇田川清江
第1回(4月4日放送)
https://nhk-vh.akamaihd.net/i/radioondemand/1279/bangumi_1279_01_01_20160404_01.mp4/master.m3u8
第2回(4月11日放送)
https://nhk-vh.akamaihd.net/i/radioondemand/1279/bangumi_1279_01_02_20160411_01.mp4/master.m3u8
...
ドキュメンタリー/教養
カルチャーラジオ 水曜日 芸術その魅力
ボサノヴァとブラジルの心
共立女子大学准教授 福嶋伸洋
第1回 すべてをかえた1分59秒〜シェーガ・ジ・サウダージ(4月6日放送)
https://nhk-vh.akamaihd.net/i/radioondemand/1279/bangumi_1279_03_01_20160406_01.mp4/master.m3u8
第2回 カーニヴァルの至福の時〜フェリシダージ(4月13日放送)
https://nhk-vh.akamaihd.net/i/radioondemand/1279/bangumi_1279_03_02_20160413_01.mp4/master.m3u8
...
これらのURLから提供されるのはmp4をHLS(HTTP Live Streaming)形式に変換したデータで、master.m3u8 を見るとシーク用に10秒ごとに細切れになっているみたいだけど、ffmpegを使えばURLから直截ダウンロードできる模様。ただ、Plamo-6.1所載のffmpeg-2.5.4だとHTTPSに対応していないから、configure時に--enable-openssl か --enable-gnutls オプションを付けて再ビルドする必要がある。
#comment