祢占堂

はい

NHK 番組表 API を触る為の Python クライアント作った

はい

有給とったはいいけど自宅の空調から異音がして全取っ替えを頼んだら 5 時間近く立ち会いでどこにも行けず暇になったので作った。

使い方は README を、API の詳細は公式ドキュメントを読めばいいと思う。例によって Python 3.3 じゃないと動きません。

その他

実装的にはたいしたことやらないので雑多なこと色々やった。

バージョン番号の埋め込み

setup.py の setup 関数に指定するやつ、普通はそのまま書くけど、 SQLAlchemy のこれパクって nhk.__version__ で参照できる番号と同じになるようにした。便利かどうかはよくわからない。

egg じゃなくて wheel で配布するようにした

2014 年なんで。

$ pip install wheel
$ python setup.py bdist_wheel upload

drone.io 使った

テストするのに API KEY 必要なので、テストコードで環境変数をみるようにして drone.io 使うようにした。

Builds | nhk-api

drone.io のスクリプトはこんなの。

pip install -e .[testing]
python setup.py test
pip install wheel
python setup.py sdist bdist_wheel

環境変数 NHK_API_KEY は drone.io の設定の Environment Variables ってとこに入れる。

でもこれ普通に API 利用回数消費するので実行しすぎるとテスト全部失敗することになる。。。

ResourceWarning 出てるけど放置した

Build #3 | nhk-api
なんか出てるけど直してない。

ResourceWarning in python 3.2+ · Issue #1882 · kennethreitz/requests · GitHub
これかなー。

実用性

自作の録画サーバーに組み込んで使うかというと、

  • 民法には同様の API がない
  • API の仕様上 2 日分 しか取得できない(従来の epg 取得方法なら 1 週間ぐらい)
  • NHK だけ特別扱いして実装するのがだるい
  • オフラインでも動作するようにしたい

使わないと思います。

追記