Resolve a URL

Turn a YouTube URL (or bare ID) into a video list. Useful for previewing a channel or playlist before submitting it as a bulk job, or for paginating through a large channel one page at a time. Does not fetch transcripts.

GET/api/v1/resolve

Query parameters

NameTypeDescription
urlrequiredstringA YouTube URL or bare ID. Accepts video URLs (watch?v=, shorts/, embed/, youtu.be/, live/), channel URLs (@handle, /channel/UC…, /c/name, /user/name), playlist URLs (?list=PL…), or any of these as bare IDs (11-char video ID, UC… channel ID, PL… playlist ID, @handle).
continuationstringOpaque token from a previous response. Pass back verbatim to fetch the next page.

Request

bash
curl -H "Authorization: Bearer yvt_live_..." \
  "https://api.youtubevideotranscript.io/api/v1/resolve?url=https://www.youtube.com/@channelname"

Response 200 (channel)

json
{
  "type": "channel",
  "name": "Channel Display Name",
  "video_count": 87,
  "videos": [
    {
      "video_id": "abc12345678",
      "title": "Video Title",
      "duration_seconds": 142,
      "thumbnail": "https://i.ytimg.com/vi/abc12345678/hqdefault.jpg"
    }
  ],
  "continuation": "Eg0SC1VDeHl6...etc..."
}

Response 200 (playlist)

Same shape, with "type": "playlist".

Response 200 (single video)

If the input is a single video URL or ID, the response is a hint to call the transcript endpoint directly:

json
{
  "type": "video",
  "video_id": "abc12345678",
  "message": "Single video: call GET /api/v1/transcript/:videoId directly"
}

Pagination

The continuation field is opaque and changes shape over time. Treat it as a black box and pass it back verbatim in the next request to fetch the next page. continuation: null means the last page.

bash
# First page
curl -H "Authorization: Bearer yvt_live_..." \
  "https://api.youtubevideotranscript.io/api/v1/resolve?url=https://www.youtube.com/@channel"

# Next page: pass the continuation back
curl -H "Authorization: Bearer yvt_live_..." \
  "https://api.youtubevideotranscript.io/api/v1/resolve?url=https://www.youtube.com/@channel&continuation=Eg0SC1VDeHl6..."

Errors

StatusTypeWhen
400bad_requesturl missing, or input couldn't be recognized as a YouTube identifier

Global 401, 429, and 5xx also apply. See Errors.

We use Google Analytics cookies and note which site referred you, so we know how people find us. Nothing personal, nothing sold. See our Privacy Policy.