Developer API Documentation

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.

JWT Authentication JSON Responses Rate Limited RESTful

Ready to Get Started?

Subscribe to the Developer Plan and get your API key in seconds.

Get Your API Key

Authentication

All 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:

Authentication Example
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.

Base URL

https://ytdlp.online/open/v1

All endpoint paths below are relative to this base URL.

Rate Limits

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.

Error Handling

All errors return a JSON object with an error field:

Error Response
{
  "error": "Description of what went wrong",
  "details": "Optional additional details"
}
HTTP CodeMeaning
400Bad Request — Missing or invalid parameters
401Unauthorized — Invalid or missing API key
403Forbidden — Developer plan required
404Not Found — Resource does not exist
429Too Many Requests — Rate limit exceeded
500Internal Server Error — Extraction or server failure
504Gateway Timeout — Extraction timed out

API Endpoints

GET /video/info

Retrieve full JSON metadata for a single video, including title, description, duration, formats, thumbnails, and more.

Parameters

NameTypeRequiredDescription
urlstringYesThe video page URL (YouTube, TikTok, Bilibili, etc.)
apikeystringYesYour Developer API key

Example

cURL
curl "https://ytdlp.online/open/v1/video/info?url=https://youtube.com/watch?v=dQw4w9WgXcQ&apikey=YOUR_API_KEY"
Response (200)
{
  "status": "success",
  "data": {
    "title": "Video Title",
    "duration": 212,
    "view_count": 1500000,
    "thumbnail": "https://...",
    "formats": [...]
  }
}
GET /video/subtitles

Extract subtitles (manual or auto-generated) for a video and return as text content.

Parameters

NameTypeRequiredDescription
urlstringYesThe video page URL
apikeystringYesYour Developer API key
langstringNoLanguage code (default: en)
formatstringNoSubtitle format: srt, vtt, ass (default: srt)

Example

cURL
curl "https://ytdlp.online/open/v1/video/subtitles?url=https://youtube.com/watch?v=dQw4w9WgXcQ&lang=en&format=srt&apikey=YOUR_API_KEY"
Response (200)
{
  "status": "success",
  "data": {
    "content": "1\n00:00:00,000 --> 00:00:05,000\nHello world\n...",
    "lang": "en",
    "format": "srt"
  }
}
GET /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.

Parameters

NameTypeRequiredDescription
urlstringYesThe playlist URL
apikeystringYesYour Developer API key
Response (200)
{
  "status": "success",
  "data": {
    "playlist_count": 25,
    "videos": [
      {"id": "abc123", "title": "Video 1", "url": "..."},
      {"id": "def456", "title": "Video 2", "url": "..."}
    ]
  }
}
GET /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.

Parameters

NameTypeRequiredDescription
urlstringYesThe live stream page URL
apikeystringYesYour Developer API key

Example

cURL
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.

POST /download

Submit an asynchronous download task. The file will be processed in the background. Use the returned task_id to poll for status.

Request Body (JSON)

NameTypeRequiredDescription
urlstringYesThe video page URL
apikeystringYesYour Developer API key
formatstringNomp4 or mp3 (default: mp4)

Example

cURL
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"}'
Response (200)
{
  "status": "success",
  "task_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "message": "Download task submitted successfully."
}
GET /download/{task_id}

Check the status of a previously submitted download task.

Status Values

StatusDescription
pendingTask is queued and waiting to start
processingDownload is in progress
completedFile is ready — download_url field is available
failedDownload failed — error field has details
Response — Completed (200)
{
  "status": "success",
  "data": {
    "status": "completed",
    "url": "https://youtube.com/watch?v=...",
    "format": "mp4",
    "download_url": "/open/v1/download/TASK_ID/file/Video%20Title.mp4"
  }
}
GET /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.

GET /account/status

Check your API account status and verify your key is working.

Response (200)
{
  "status": "success",
  "data": {
    "email": "[email protected]",
    "level": "developer",
    "status": "active"
  }
}

Ready to Get Started?

Subscribe to the Developer Plan and get your API key in seconds.

Get Your API Key

Questions? Contact [email protected]