REST API · GET
YouTube Video API
Download YouTube video and audio: MP4, WebM, and M4A in multiple qualities up to 720p and beyond.
GET
https://api.interapi.dev/api/v1/youtube
Price: 15 credits per successful response. 5xx is free, 4xx costs at most 1 credit. Pricing
What it does
Accepts YouTube and YouTube Music links — youtube.com, youtu.be, Shorts, and music.youtube.com. Returns title, author, channel_url, description, duration_sec, and the full format list in media.
- MP4, WebM, M4A formats
- Up to 720p and beyond
- Separate audio track
- youtube.com and youtu.be
- music.youtube.com
How to use it
- Use a youtube.com, youtu.be, Shorts, or music.youtube.com link
- GET /api/v1/youtube?url=…
- Response: title, author, duration_sec, and media[] with MP4/WebM/M4A formats.
Parameters
urlstringrequired- YouTube or YouTube Music link: youtube.com, youtu.be, /shorts/, or music.youtube.com
Request example
curl -G "https://api.interapi.dev/api/v1/youtube" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "url=https://youtu.be/UFk4_Ybx7yk"import requests
resp = requests.get(
"https://api.interapi.dev/api/v1/youtube",
params={"url": "https://youtu.be/UFk4_Ybx7yk"},
headers={"X-API-Key": "YOUR_API_KEY"},
timeout=60,
)
resp.raise_for_status()
print(resp.json())const params = new URLSearchParams({ url: "https://youtu.be/UFk4_Ybx7yk" });
const resp = await fetch(`https://api.interapi.dev/api/v1/youtube?${params}`, {
headers: { "X-API-Key": "YOUR_API_KEY" },
});
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
console.log(await resp.json());<?php
$query = http_build_query(["url" => "https://youtu.be/UFk4_Ybx7yk"]);
$ch = curl_init("https://api.interapi.dev/api/v1/youtube?" . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: YOUR_API_KEY"],
CURLOPT_TIMEOUT => 60,
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);
Response example
{
"status": "success",
"platform": "InterAPI",
"title": "HAYEDEH — Dance Mix",
"description": "",
"media": [
{
"type": "video",
"url": "https://redirector.googlevideo.com/…/videoplayback",
"quality": "mp4 (360p)",
"format_id": "18",
"height": 360,
"ext": "mp4",
"bitrate": 158903
},
{
"type": "video",
"url": "https://redirector.googlevideo.com/…/videoplayback",
"quality": "mp4 (720p)",
"format_id": "136",
"height": 720,
"ext": "mp4",
"bitrate": 138427
}
],
"video_url": "https://redirector.googlevideo.com/…/videoplayback",
"video_hd_url": "https://redirector.googlevideo.com/…/videoplayback",
"music_url": "https://redirector.googlevideo.com/…/videoplayback",
"thumbnail": "https://i.ytimg.com/…/maxresdefault.jpg",
"duration_sec": 3232,
"author": "",
"channel_url": null,
"duration_ms": 2585
}duration_ms is server processing time. URLs in the example are shortened.
Test a request
Without a key — up to 30 requests per hour per IP. With your key, each request costs the API price in credits.
Paste a link and press Send. The response shows up here.