카탈로그 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는 무시됩니다 |
페이지네이션
두 가지 모드가 pagination 봉투를 공유합니다. 간단한 페이징에는 page/limit을 사용하고, 대규모 결과 집합에 대한 안정적인 순방향 반복에는 next_cursor를 따르세요. cursor가 제공되면 page는 무시됩니다.
curl "https://nu-signal-partners.vercel.app/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": "시그널 시티",
"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://nu-signal-partners.vercel.app/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": "시그널 시티",
"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"
}
}
}Episodes
curl "https://nu-signal-partners.vercel.app/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 }
]
}title_id + episode_id를 사용하여 견적(라이선스 API) 또는 재생 토큰(재생 API)을 요청하세요.