SummerWind

Web, Photography, Space Development

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の番組表データを取得してごにょごにょできるようになりました。あとは煮るなり焼くなりするだけですね。

Moto Ishizawa

Moto Ishizawa
ソフトウェアエンジニア。ロケットの打上げを見学するために、たびたびフロリダや種子島にでかけるなど、宇宙開発分野のファンでもある。