tateren’s diary

何か書きたくなった時に使う

nasneの録画番組一覧を取得する

nasneのAPI叩いてHDD残量を確認するとかはよく見かけるんだけど、録画番組一覧を取得できたりしないかなーと思って調べてみた。

手掛かり

PC TV with nasne™とやらがある

www.sony.jp

パケットキャプチャしながら動かしつつ眺めてたらどうやらこのurlで番組一覧を取得してるらしい事が分かった。

http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0

パラメータがいっぱいあるけどとりあえずこまけぇことは気にしない。

取得してみる

curlで取ってきたらjsonが返ってきたので整形したげると良い感じになった。

curl -s 'http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0' \
| jq .

f:id:tateren:20160303003140p:plain

なんか化けてる文字があったけど、[新][終][字]みたいな特殊文字のようだったので整形前に該当の文字を置換してあげる。

Unicodeエスケープシーケンス 対応文字 置換後
\ue195 □の中に終 [終]
\ue193 □の中に新 [新]
\ue0fe □の中に字 [字]

ついでに出力項目も絞ろう。

curl -s 'http://{nasneのIP}:64220/recorded/titleListGet?searchCriteria=0&filter=0&startingIndex=0&requestedCount=0&sortCriteria=0&withDescriptionLong=0&withUserData=0' \
| sed -e 's/\\ue195/[\\u7D42]/g' -e 's/\\ue193/[\\u65B0]/g' -e 's/\\ue0fe/[\\u5B57]/g' \
| jq -r '.item[] | { title: .title, description: .description}'

f:id:tateren:20160303004720p:plain

だいぶそれっぽくなったんじゃないでしょうか。