Programmatic access to yt-dlp's powerful video downloading engine. Extract metadata, download media, retrieve subtitles, and redirect live streams — all through a simple RESTful API.
Subscribe to the Developer Plan and get your API key in seconds.
Get Your API KeyAll API requests require a valid Developer API Key. You can obtain your key from the Profile page after subscribing to the Developer Plan.
Pass your API key as a query parameter:
GET /open/v1/video/info?url=https://youtube.com/watch?v=dQw4w9WgXcQ&apikey=YOUR_API_KEY
For POST requests, you can also include apikey in the JSON body.
https://ytdlp.online/open/v1
All endpoint paths below are relative to this base URL.
Adaptive rate limits are enforced per IP and API key to ensure service stability. Under normal usage you are unlikely to hit any limits.
If you receive a 429 Too Many Requests response, implement retry with exponential backoff.
All errors return a JSON object with an error field:
{
"error": "Description of what went wrong",
"details": "Optional additional details"
}
| HTTP Code | Meaning |
|---|---|
400 | Bad Request — Missing or invalid parameters |
401 | Unauthorized — Invalid or missing API key |
403 | Forbidden — Developer plan required |
404 | Not Found — Resource does not exist |
429 | Too Many Requests — Rate limit exceeded |
500 | Internal Server Error — Extraction or server failure |
504 | Gateway Timeout — Extraction timed out |
/video/info
Retrieve full JSON metadata for a single video, including title, description, duration, formats, thumbnails, and more.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The video page URL (YouTube, TikTok, Bilibili, etc.) |
apikey | string | Yes | Your Developer API key |
curl "https://ytdlp.online/open/v1/video/info?url=https://youtube.com/watch?v=dQw4w9WgXcQ&apikey=YOUR_API_KEY"
{
"status": "success",
"data": {
"title": "Video Title",
"duration": 212,
"view_count": 1500000,
"thumbnail": "https://...",
"formats": [...]
}
}
/video/subtitles
Extract subtitles (manual or auto-generated) for a video and return as text content.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The video page URL |
apikey | string | Yes | Your Developer API key |
lang | string | No | Language code (default: en) |
format | string | No | Subtitle format: srt, vtt, ass (default: srt) |
curl "https://ytdlp.online/open/v1/video/subtitles?url=https://youtube.com/watch?v=dQw4w9WgXcQ&lang=en&format=srt&apikey=YOUR_API_KEY"
{
"status": "success",
"data": {
"content": "1\n00:00:00,000 --> 00:00:05,000\nHello world\n...",
"lang": "en",
"format": "srt"
}
}
/playlist/info
Get metadata for all videos in a playlist. Uses flat extraction for speed — returns basic info (title, ID, URL) for each entry without fetching full details.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The playlist URL |
apikey | string | Yes | Your Developer API key |
{
"status": "success",
"data": {
"playlist_count": 25,
"videos": [
{"id": "abc123", "title": "Video 1", "url": "..."},
{"id": "def456", "title": "Video 2", "url": "..."}
]
}
}
/live/stream
Extract the real underlying stream URL from a live broadcast page and return a 302 redirect. Ideal for use with media players like VLC or Astra CeSBo — they will auto-follow the redirect to the actual stream.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The live stream page URL |
apikey | string | Yes | Your Developer API key |
curl -L "https://ytdlp.online/open/v1/live/stream?url=https://youtube.com/watch?v=LIVE_ID&apikey=YOUR_API_KEY"
Note: Use the -L flag in cURL to follow the 302 redirect automatically.
/download
Submit an asynchronous download task. The file will be processed in the background. Use the returned task_id to poll for status.
| Name | Type | Required | Description |
|---|---|---|---|
url | string | Yes | The video page URL |
apikey | string | Yes | Your Developer API key |
format | string | No | mp4 or mp3 (default: mp4) |
curl -X POST "https://ytdlp.online/open/v1/download" \
-H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=dQw4w9WgXcQ", "format": "mp4", "apikey": "YOUR_API_KEY"}'
{
"status": "success",
"task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"message": "Download task submitted successfully."
}
/download/{task_id}
Check the status of a previously submitted download task.
| Status | Description |
|---|---|
pending | Task is queued and waiting to start |
processing | Download is in progress |
completed | File is ready — download_url field is available |
failed | Download failed — error field has details |
{
"status": "success",
"data": {
"status": "completed",
"url": "https://youtube.com/watch?v=...",
"format": "mp4",
"download_url": "/open/v1/download/TASK_ID/file/Video%20Title.mp4"
}
}
/download/{task_id}/file/{filename}
Download the actual file once the task is completed. The download_url from the status response can be used directly. No API key required for this endpoint.
/account/status
Check your API account status and verify your key is working.
{
"status": "success",
"data": {
"email": "[email protected]",
"level": "developer",
"status": "active"
}
}
Subscribe to the Developer Plan and get your API key in seconds.
Get Your API KeyQuestions? Contact [email protected]