RECBOX+作成時に当たって RECBOXとの通信内容を解析した結果メモ。*1
取得系リクエスト
- /dms/transfer_tool/api/browse / POST
指定フォルダに含まれる録画データ/フォルダを返す。- id : フォルダID
- filter : 取得対象の種類(item:録画データ / container:フォルダ / 無指定:両方)
- requested_count : 最大数(0指定で全て)
- 戻り値 : JSON形式で得られるので適当に調理。
C++っぽく書けば以下の形式。struct TContentData{ // item/container共に含まれる std::string parentid; std::string id; std::string title; std::string class; // 以下は itemにのみ含まれる std::string mediaType; FILETIME date; std::string aribObjectType; std::string url; bool uploadable; bool protected; std::string profile; __int64 size; }; struct TBrowseData{ TContentData results[]; __int64 startingIndex; __int64 totalMatches; __int64 numberReturned; std::string storageId; };
- /dms/transfer_tool/api/storage_list / GET
ストレージに関するデータ(空き容量等が含まれる)のリストを返す。- 戻り値 : JSON形式で得られるので適当に調理。
C++っぽく書けば以下の形式。struct TStorageSize{ std::string name; std::string id; __int64 availableCapacity; __int64 totalCapacity; bool writable; }; struct TStorageSizeList{ TStorageSize results[]; bool supportBackup; };
- 戻り値 : JSON形式で得られるので適当に調理。
- /dms/transfer_tool/api/transfer_status / GET
最後の転送状況を返す。- 戻り値 : JSON形式で得られるので適当に調理。
C++っぽく書けば以下の形式。struct TStatusData{ std::string id; std::string title; std::string status; __int64 transferred; __int64 total; }; struct TStatusDataList{ TStatusData results[]; };
- 戻り値 : JSON形式で得られるので適当に調理。
- /dms/transfer_tool/api/get_size / POST
指定したアイテム(複数指定可)のサイズを返す。
Webインターフェースで選択されたアイテムの合計サイズを計算するのに使うのかな?使い道が思いつかない。- 戻り値 : JSON形式で得られるので適当に調理。
C++っぽく書けば以下の形式。struct TContentSize{ std::string id; __int64 size; }; struct TContentSizeList{ TContentSize results[]; };
- 戻り値 : JSON形式で得られるので適当に調理。
- /dms/transfer_tool/api/dms_list / GET
ネットワーク転送のターゲットを返すだろうけど、転送先になる機器を持ってないので詳細不明。
処理系リクエスト
- /dms/transfer_tool/api/rename / POST
指定アイテムの名称を変更する。
フォルダをリネームするとアイテムIDが変更されるので注意。- id : 対象アイテムID
- new_name: 新しい名前
- 戻り値 : 無し
指定アイテムを削除する。
同期処理なのかしら?複数削除の時は順番に呼ぶだけ?
- id : 対象アイテムID
- 戻り値 : 無し
指定アイテムを移動する。
非同期処理なので transfer_statusにて処理完了をチェックする必要がある。
- src_id : 移動するアイテムID(「,(カンマ)」で区切って一つ以上指定)
- dst_id : 移動先フォルダID
- 戻り値 : 無し
フォルダを作成する。
- parent_id : 親のフォルダID
- name : フォルダの名前
- 戻り値 : 無し
備考
- Webインターフェースからのリクエストでは現在時刻らしき数値をリクエストに加えているがキャッシュ対策だと思われる。*2
- ほとんどのリクエストは POSTで行っているが、GETで行っても支障無さそう。*3
- リクエストは 200が返れば成功。(ただし、処理が未完了の場合あり)
- POSTデータはフォーム形式(content-type:application/x-www-form-urlencoded)で charsetは UTF8、「id=FS-1&new_name=hogehoge」という感じで 。
- ポート番号はランダムなのかとも思ったけど、55247固定みたい。
- move等、リクエストの発行完了と処理の完了が同期しないリクエストを続けて発行すると前の処理はキャンセルされる模様。
お約束
このページに記載されている内容は私が独自に解析した結果です
メーカーへの問い合わせはご遠慮ください。
また、内容や内容に基づいて行動した結果発生した損害についても一切責任を持てません。