카탈로그 API

조직이 열람할 수 있는 NU 타이틀과 에피소드를 조회합니다. catalog:read 스코프가 필요합니다. 카탈로그는 파트너에게 노출 가능하고, 요청한 지역/언어와 일치하는 clear 또는 restricted 권리 패키지가 뒷받침하는 타이틀만 반환합니다.

엔드포인트

메서드경로용도
GET/catalog/titles사용 가능한 타이틀 목록 (필터링 및 페이지네이션 지원)
GET/catalog/titles/{title_id}권리 가용성을 포함한 타이틀 상세
GET/catalog/titles/{title_id}/episodes타이틀의 에피소드

타이틀 목록 조회

필터

쿼리타입비고
genrestring장르로 필터링
territorystringISO 3166-1 alpha-2
languagestringISO 639-1
formatstring예: series, film
resale_allowedboolean재판매가 허용된 타이틀만
exclusive_availableboolean독점 이용이 가능한 타이틀만
pageinteger기본값 1, 최소 1
limitinteger기본값 20, 최대 100
cursorstring불투명 커서. 제공되면 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_statusclear 또는 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)을 요청하세요.