カタログAPI
組織に表示されるNUのタイトルとエピソードを参照します。catalog:readが必要です。カタログは、要求した地域・言語に一致するclearまたはrestrictedの権利パッケージに裏付けられたタイトルだけを返します。
エンドポイント
| メソッド | パス | 用途 |
|---|---|---|
| GET | /catalog/titles | 利用可能なタイトルをフィルターとページネーション付きで一覧表示します。 |
| GET | /catalog/titles/{title_id} | 権利の利用可否を含むタイトル詳細です。 |
| GET | /catalog/titles/{title_id}/episodes | タイトルのエピソードです。 |
タイトル一覧
フィルター
| クエリ | 型 | 備考 |
|---|---|---|
genre | string | ジャンルで絞り込み |
territory | string | ISO 3166-1 alpha-2 |
language | string | ISO 639-1 |
format | string | 例: series、film |
resale_allowed | boolean | 再販売を許可するタイトルのみ |
exclusive_available | boolean | 独占利用が可能なタイトルのみ |
page | integer | 既定1、最小1 |
limit | integer | 既定20、最大100 |
cursor | string | 不透明カーソル。指定するとpageは無視されます |
ページネーション
2つのモードはpaginationエンベロープを共有します。単純なページングにはpage/limit、大きな結果の安定した前方反復にはnext_cursorを使います。cursor指定時はpageが無視されます。
curl "https://signal-partners.newunivers.ai/v1/catalog/titles?territory=KR&genre=drama&limit=20" \
-H "Authorization: Bearer nsp_live_xxx" \
-H "X-NU-Partner-Id: org_acme"{
"data": [
{
"title_id": "ttl_abc",
"slug": "signal-city",
"title": "Signal City",
"title_en": "Signal City",
"format": "series",
"genres": ["drama", "thriller"],
"episode_count": 12,
"avg_duration_sec": 3600,
"available_territories": ["KR", "JP"],
"available_languages": ["ko", "en"],
"resale_allowed": true,
"exclusive_available": false,
"license_status": "available"
}
],
"pagination": { "page": 1, "limit": 20, "total": 87, "has_next": true, "next_cursor": "eyJpZCI6InR0bF9hYmMifQ" }
}カーソルをたどる:
curl "https://signal-partners.newunivers.ai/v1/catalog/titles?cursor=eyJpZCI6InR0bF9hYmMifQ&limit=20" \
-H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"タイトル詳細
GET /catalog/titles/{title_id}は要約フィールドに加えてlogline、synopsis、original_language、rightsオブジェクトを返します。組織に表示されない場合は404 resource_not_foundを返します。
権利利用可否フィールド(rights)
| フィールド | 意味 |
|---|---|
available_territories / available_languages | ライセンス可能な地域と対象 |
resale_allowed, exclusive_available | 商用オプション |
rights_status | clearまたはrestricted |
risk_level | 権利リスク指標(小文字、例: low、medium) |
{
"data": {
"title_id": "ttl_abc",
"slug": "signal-city",
"title": "Signal City",
"title_en": "Signal City",
"logline": "A detective decodes a city that talks back.",
"synopsis": "...",
"format": "series",
"genres": ["drama", "thriller"],
"episode_count": 12,
"avg_duration_sec": 3600,
"original_language": "ko",
"rights": {
"available_territories": ["KR", "JP"],
"available_languages": ["ko", "en"],
"resale_allowed": true,
"exclusive_available": false,
"rights_status": "clear",
"risk_level": "low"
}
}
}エピソード
curl "https://signal-partners.newunivers.ai/v1/catalog/titles/ttl_abc/episodes" \
-H "Authorization: Bearer nsp_live_xxx" -H "X-NU-Partner-Id: org_acme"{
"data": [
{ "episode_id": "ep_001", "episode_no": 1, "name": "Pilot", "duration_sec": 3480, "free_preview": true }
]
}