/download

Downloads audio or video from a YouTube URL or video ID. Available as both GET and POST — same behavior, different place for the parameters.

GET/download

Parameters are sent in the query string.

ParameterTypeRequiredDescription
urlstringrequiredA full YouTube URL (youtube.com/watch?v=… or youtu.be/…) or a bare video ID.
typestringrequiredEither audio or video.
api_keystringrequiredYour API key. See authentication.
curl
curl "https://yt-dow.co08.art/download?url=https://youtu.be/dQw4w9WgXcQ&type=audio&api_key=YOUR_API_KEY" \
  -o song.m4a

POST/download

Same parameters, sent as JSON in the request body.

FieldTypeRequiredDescription
urlstringrequiredFull YouTube URL or bare video ID.
typestringrequiredEither audio or video.
api_keystringrequiredYour API key.
curl
curl -X POST "https://yt-dow.co08.art/download" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://youtu.be/dQw4w9WgXcQ",
    "type": "video",
    "api_key": "YOUR_API_KEY"
  }' \
  -o video.mp4

The body must be valid JSON, or you'll get back 400 Invalid JSON.

Response

On success (200), the response body is the file itself — not JSON. The Content-Type reflects the actual format returned:

typePossible Content-Type
audioaudio/webm, audio/mp4, or audio/mpeg
videovideo/mp4, video/x-matroska, or video/webm

The file is served inline with a filename of {video_id}.{ext}, so saving the response body to disk (as in the examples above) gives you a usable file.

Errors

StatusdetailCause
400Type must be audio or videotype is anything other than audio/video
400Invalid video URL or IDurl couldn't be resolved to a video
400Invalid JSONPOST body isn't valid JSON
401API key requiredNo api_key sent
401Invalid API keyKey doesn't exist
403API key is inactive or expiredKey has been deactivated
403API key has expiredPast its expiry date
403API key is temporarily blockedKey is under a temporary block
403Access deniedAccount restricted
429Daily quota exhaustedDaily request limit reached
500Download failedThe source video couldn't be fetched

See errors & rate limits for IP-level responses like 429 Too many requests.