# YouTube Channel Videos

Use the YouTube Channel Videos API when you need a channel upload feed in structured JSON. Send a channel ID and Scrappa returns video IDs, titles, thumbnails, duration, view counts, publish timing, short/live flags, the selected sort order, and pagination metadata.

## YouTube channel uploads API

This endpoint is built for developers who need to collect videos from a specific YouTube channel without maintaining browser automation or reverse-engineering YouTube page markup. It fits creator monitoring, competitive content research, media databases, video discovery tools, sponsorship workflows, and analytics jobs that need repeatable channel-level video lists.

## What the channel videos response includes

Each response includes a `videos` array with upload-level fields such as `id`, `title`, `thumbnail`, `duration`, `viewCount`, and `publishedTime`. The `pagination` object exposes `page`, `pageSize`, `hasMore`, and a `continuationToken` when more results are available, so you can crawl large channels incrementally instead of relying on a single oversized request.

## Sorting and pagination

Use `sort=newest` for monitoring fresh uploads, `sort=popular` for finding the channel's top-performing videos, and `sort=oldest` when you need a historical crawl from the beginning of a channel. Set `limit` to control page size, then pass the returned `continuation` token or page through your next request when `hasMore` is true.

## Related YouTube API workflow

Start with [YouTube Channel Info](/docs/youtube-api/youtube_channel) when you need the channel name, handle, subscriber count, and profile metadata before collecting uploads. Use [YouTube Video Info](/docs/youtube-api/youtube_video) to enrich individual video IDs, [YouTube Comments](/docs/youtube-api/youtube_comments) for audience response, and [YouTube Playlist](/docs/youtube-api/youtube_playlist) when videos are organized by playlist instead of the channel uploads tab.

- **Documentation:** [https://scrappa.co/docs/youtube-api/youtube_channel_videos](https://scrappa.co/docs/youtube-api/youtube_channel_videos)
- **API group:** YouTube API
- **Endpoint:** `GET https://scrappa.co/api/youtube/channel-videos`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `channel_id` | string | Yes | YouTube channel ID (alias: channelId) |
| `channelId` | string | Yes | YouTube channel ID (alias: channel_id) |
| `limit` | integer | No | Number of videos (default: 10, max: 30) |
| `page` | integer | No | Page number (default: 1, max: 10) |
| `sort` | string | No | Sort order: newest, popular, oldest (default: newest) |
| `continuation` | string | No | Token for pagination from previous response |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/youtube/channel-videos?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA"
```

## Example response

```json
{
    "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA",
    "sort": "newest",
    "videos": [
        {
            "id": "pAnGwRiQ4-4",
            "title": "$1 vs $1,000,000,000 Futuristic Tech!"
        }
    ],
    "pagination": {
        "continuationToken": "eyJjaGFubmVsSWQiOiJVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEiLCJzb3J0IjoibmV3ZXN0IiwicGFnZSI6MX0.6ce89d9d",
        "hasMore": true,
        "page": 1,
        "pageSize": 10
    }
}
```

## Frequently asked questions

### What does the YouTube Channel Videos API return?

It returns the videos uploaded by a channel as JSON, including video IDs, titles, thumbnails, durations, view counts, publish timing, short/live flags when available, the requested sort order, and pagination metadata.

### How do I paginate through all videos from a YouTube channel?

Start with `channel_id` and a `limit`. When the response includes `pagination.hasMore=true`, send the returned `pagination.continuationToken` as the `continuation` parameter on the next request.

### Can I sort channel videos by newest, popular, or oldest?

Yes. Use the `sort` parameter with `newest`, `popular`, or `oldest`. Newest is useful for upload monitoring, popular helps identify top-performing videos, and oldest supports historical channel crawls.

### What channel identifier should I use?

Use a YouTube channel ID such as `UCX6OQ3DkcsbYNE6H8uQQuVA`. The endpoint accepts `channel_id` and the camel-case alias `channelId`.

### When should I use this endpoint instead of YouTube Search?

Use YouTube Channel Videos when you already know the channel and need its upload list. Use YouTube Search when you need to discover videos, channels, or playlists by keyword first.

## Related endpoints

- [YouTube Channel Info](https://scrappa.co/docs/youtube-api/youtube_channel)
- [YouTube Video Info](https://scrappa.co/docs/youtube-api/youtube_video)
- [YouTube Comments](https://scrappa.co/docs/youtube-api/youtube_comments)
- [YouTube Playlist](https://scrappa.co/docs/youtube-api/youtube_playlist)

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
