[[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



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS