Paginated channel uploads
Changed onList a channel's videos (paginated). tab=videos (default) is the uploads feed (~100/page); tab=shorts and tab=streams (live) return those feeds (~48/page).
First request: provide channel (@handle, URL, or UC... ID). Subsequent requests: provide continuation token from previous response (and repeat the same tab and sort).
Sorting — sort=latest|popular|oldest
sort is opt-in, and omitting it is not the same as sort=latest: the two read different YouTube feeds.
| tab=videos, no sort | tab=videos + any sort | |
|---|---|---|
| source | uploads playlist | channel Videos tab |
| page size | ~100 | ~30 |
| playlist_info | populated | null |
| Shorts | mixed in | excluded (use tab=shorts) |
| members-only videos | excluded | included, flagged members_only: true |
So the two feeds are different sets, not one list in two orders: the uploads playlist interleaves Shorts with long-form uploads, while the Videos tab holds long-form only and adds membership content. Paging a full catalogue with sort set therefore costs ~3.3x the pages (and ~3.3x the credits) of the unsorted feed — omit sort when you just want newest-first. tab=shorts / tab=streams read the same feed either way; sort only reorders them.
?channel=@NASA # uploads feed, newest first, ~100/page
?channel=@NASA&sort=popular # Videos tab, most-viewed first, ~30/page
?channel=@NASA&tab=streams&sort=oldest # oldest live streams first
?continuation=<token>&tab=streams&sort=oldest # page 2 - repeat tab AND sort
Credit cost: 1 credit per page.
Request
- Base URLhttps://transcriptapi.com
- AuthHTTP bearer
Query parameters
Channel identifier: @handle, channel URL, or UC... channel ID
Which feed: videos (default, uploads), shorts, or streams (live). Pass the same tab when paginating shorts/streams.
Sort order. Omit it to keep the current uploads feed (~100/page, Shorts mixed in, members-only videos excluded). Any explicit value switches tab=videos to YouTube's channel-tab feed (~30/page, long-form only, members-only videos included and flagged with members_only), so omitting sort is not the same as sort=latest. Repeat the same value when paginating.
Continuation token from previous page
Response
Successful Response
Changes
- warning
the optional response header
X-RateLimit-Limitremoved for the status429 - warning
the optional response header
X-RateLimit-Remainingremoved for the status429 - warning
the optional response header
X-RateLimit-Resetremoved for the status429
- warning
- info
added the new optional
queryrequest parametersort - info
added the optional property
//to the response with the status
- info