nasne の API を使って録画予約をする

nasne の API

API 一覧は こちら が詳しい。
SONY 製の nasne でのみ動作確認。

録画予約一覧の取得

エンドポイント:/schedule/reservedListGet
メソッド:GET
パラメータ
searchCriteria ・・・(不明)
filter ・・・(不明)
startingIndex ・・・(不明)
requestedCount ・・・(不明)
sortCriteria ・・・(不明)
withDescriptionLong ・・・(不明)
withUserData ・・・(不明)

現在の一覧が JSON で取得できる。

録画予約重複確認 API

エンドポイント:/schedule/conflictListGet
メソッド:GET
パラメータ
startDateTime ・・・ 録画開始時刻
duration ・・・ 録画時間(秒)
broadcastingType ・・・ (不明)
serviceId ・・・ チャンネルID

予約が重複していない場合は以下のレスポンスになる。

{"errorcode" : 0,"numberReturned" : 0}

録画予約登録 API

エンドポイント:/schedule/reservedInfoCreate
メソッド:POST
パラメータ
title ・・・ タイトル
startDateTime ・・・ 録画開始時刻
duration ・・・ 録画時間(秒)
conditionId ・・・ 繰り返し録画(1回録画:1、毎日:d、毎週:w3、月-金:w15、月-土:w16)
quality ・・・録画モード(DR:100、3倍:101)
broadcastingType ・・・ (不明)
serviceId ・・・ チャンネルID
eventId ・・・ イベントID(放送日時変更などの追従に必要)
priorityFlag ・・・ (不明)
storageId ・・・ 録画先(内蔵:0、外付け:1)
creatorId ・・・ (不明)PC TV Plus からは「133072」固定?
forceFlag ・・・ (不明)
parentalId ・・・ (不明)

チャンネルID と イベントID の調べ方

IPG のサービスなどを使用する。
※ IPGのサイトの仕様が変わったようで、現在以下の方法は使えなくなってます。

例えば以下の番組を録画する場合は、URLにある「service_id」パラメータがチャンネルIDになり、「event_id」パラメータがイベントIDになる。
「service_id」は16進数になっているので、10進数に変換する必要がある。

https://bangumi.org/si/-1?si_type=3&event_id=19689&program_date=20220330&service_id=0x0400&overwrite_area=23

実際に curl を使って録画予約する場合の例。

curl -X POST --data-urlencode "title=NHKスペシャル「18歳で大人というけれど… 〜成人年齢引き下げを考える〜」[字][再]" --data-urlencode "startDateTime=2022-03-31T00:10:00+09:00" --data "duration=2940" --data "conditionId=1" --data "quality=101" --data "broadcastingType=2" --data "serviceId=1024" --data "eventId=19689" --data "priorityFlag=1" --data "storageId=1" --data "creatorId=133072" --data "forceFlag=1" --data "parentalId=0" http://<nasne のIPアドレス>:64220/schedule/reservedInfoCreate

※ こだわるなら「[字]」は「\ue0fe」などで指定する。
※ 「eventId」を指定すると、タイトルや時刻などは EPG のデータが使われる?

この記事が気に入ったらサポートをしてみませんか?