# YouTube channel and playlist videos API

List up to 20 available videos from a YouTube channel or playlist.

Canonical: https://fetchfox.net/docs/youtube-videos-api

## Request

GET /youtube/videos (query parameters) or POST /youtube/videos (JSON). Authenticate with x-access-key. Keep keys server-side.

Credits: 1 credit for up to 50 returned results; 2 credits for 51–100.

### curl

```
curl --fail-with-body --get 'https://api.fetchfox.net/youtube/videos' \
  -H 'x-access-key: YOUR_KEY' \
  --data-urlencode 'url=https://www.youtube.com/@YouTube' \
  --data-urlencode 'limit=20'
```

### JavaScript

```
// Run on your server with FETCHFOX_API_KEY set.
const url = new URL('https://api.fetchfox.net/youtube/videos');
url.searchParams.set('url', 'https://www.youtube.com/@YouTube');
url.searchParams.set('limit', '20');
const response = await fetch(url, {
  headers: { 'x-access-key': process.env.FETCHFOX_API_KEY },
  signal: AbortSignal.timeout(130000)
});
if (!response.ok) throw new Error('HTTP ' + response.status);
const result = await response.json();
if (!result.success) throw new Error('Request unsuccessful');
console.log(result.data);
```

### Python

```
import json, os
from urllib.parse import urlencode
from urllib.request import Request, urlopen

query = urlencode({"url":"https://www.youtube.com/@YouTube","limit":20})
request = Request('https://api.fetchfox.net/youtube/videos?' + query,
    headers={'x-access-key': os.environ['FETCHFOX_API_KEY']})
with urlopen(request, timeout=130) as response:
    result = json.load(response)
if not result.get('success'):
    raise RuntimeError('Request unsuccessful')
print(result['data'])
```

## Inputs and limits

This is a bounded list, not a complete archive. Missing dates or descriptions remain unavailable. This tool does not automatically extract transcripts.

REST and MCP accept limits from 1 to 100, default 20. Browser viewers request 20. Each new request is billed separately; downloading a current browser result does not make another request.

## Use comparable observations

Save source URLs and your retrieval time with returned data. Public metrics can change and some counts are rounded. Missing metrics remain null, separately from genuine zero. Search and channel lists are samples, not a complete archive or guaranteed ranking feed.

Video duration alone does not establish whether an item is a Short. Returned dates and descriptions depend on source availability; optional full_details enrichment on /youtube/videos is capped at 30 videos.

## Related pages

- https://fetchfox.net/tools/youtube-videos

- https://fetchfox.net/docs

- https://fetchfox.net/pricing

