GitHubLog in
YouTube Channel Videos API

YouTube Channel Videos API

Lists a YouTube channel's uploads, newest first, a page at a time. The channel is given as an @handle, a UC… id or any channel URL. tab selects Shorts, live streams, playlists or podcasts; sort and query reorder or search within the channel; since_video_id returns only videos newer than the one given.

Page of results1 creditHowever many videos it lists
Nothing new1 creditA since_video_id poll costs the same
Failed requestsFreeA request that fails costs nothing
Supported URLs@handlehandle URLUC… id/channel//c//user/All URL formats
POST/api/v2/transcripts/channelidempotent

Body parameters

YouTube: @handle, /channel/UC… URL, or UC… ID. TikTok: profile URL (tiktok.com/@user). Instagram: profile URL (instagram.com/user/).

curl https://transcriptfetch.com/api/v2/transcripts/channel \
  -H "Authorization: Bearer $TRANSCRIPTFETCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"channel":"@lexfridman","limit":10}'
SuccessExample response envelope
{
  "ok": true,
  "request_id": "req_…",
  "data": {
    "kind": "video_list",
    "source": "channel_videos",
    "platform": "youtube",
    "videos": [
      {
        "videoId": "dQw4w9WgXcQ",
        "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
        "title": "Example video",
        "duration": 212,
        "channel": "Example Channel",
        "publishedAt": "2009-10-25T00:00:00Z",
        "stats": {
          "plays": 1600000000
        }
      }
    ],
    "next_cursor": "eyJvIjoxMH0"
  },
  "usage": {
    "credits_spent": 1,
    "balance": 98,
    "bytes": 0
  }
}

Every YouTube endpoint

Frequently asked questions

Is this the YouTube Data API's channels or playlistItems call?

No. It is TranscriptFetch's own listing endpoint: no Google project, API key, OAuth or quota units. One page of a channel costs 1 credit, and so does a since_video_id poll that finds nothing new.

How do I get every video on a channel?

Call the endpoint with the channel and a limit, then keep sending data.next_cursor back as cursor until it is null. Each page costs 1 credit. To transcribe them, send the rows' urls to the batch endpoint.

How do I watch a channel for new uploads?

Pass the newest videoId you have seen as since_video_id. The response holds only videos newer than it, and each poll costs 1 credit, found or not. For scheduled checks with webhooks, use a monitor instead.

Can I list a channel's Shorts, live streams or playlists?

Yes. tab shorts lists its Shorts, tab live its past and upcoming streams, and tab playlists or podcasts its playlists, answered as a playlist_list whose rows the playlist endpoint accepts. sort (popular, oldest) and query (search inside the channel) apply to the videos, shorts and live tabs.