NASA TV 番組表データの取得
私的メモ。NASA TVの番組表が昨年末にリニューアルされ、全てのチャンネルの番組表をまとめて見れるようになった。JavaScriptで時間帯を指定して表示が切り替わるスタイルだったので、番組表データもJavaScriptでやりとりしてるんじゃないかと思って調べてみたら、予想通りJSONPでやりとりしていたので、そのあたりを簡単にまとめてみる。
番組表データを取得するためのエントリポイントは、以下のURLになる。GETリクエストでいくつかのパラメータを投げてやれば番組表データが取得できる。
http://calendar.nasa.gov/nasatvschedule/DataExporter
パラメータは以下の4つで、このうちchannelとcallbackはオプション扱いっぽい。
- tzoffset
- 時差指定用パラメータ。指定すると時差にあわせて番組表を出力してくれる。値は分単位で指定する。日本はGMT+0900なので、tzoffset=540と指定する。
- ipDate
- 日付指定用パラメータ。MMDDYYYY形式の文字列を値に指定する。例えば2010年1月2日の番組表を取得したい場合は、ipDate=01022010になる。
- channel
- チャンネル指定用パラメータ。public/media/educationのいづれかの文字列を指定できる。特定のチャンネルの番組表だけ欲しい場合に指定する。パラメータを省略すると、全てのチャンネルの番組表をまとめて取得できる。
- callback
- コールバック関数名指定用パラメータ。JSONPで処理する時の関数名を指定できる。例えばcallback=nasatvとすると、番組表データはnasatv()関数でラップされた形で出力される。パラメータを省略すると普通のJSON形式でデータが出力される。 上記の方法でNASA TVの番組表データを取得してごにょごにょできるようになりました。あとは煮るなり焼くなりするだけですね。