cURL
curl --request GET \
--url 'https://api.keyapi.ai/v1/youtube/get_signed_stream_url?video_id=dQw4w9WgXcQ&video_url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ' \
--header 'Authorization: Bearer <YOUR_API_KEY>'import requests
response = requests.get(
'https://api.keyapi.ai/v1/youtube/get_signed_stream_url',
params={"video_id": "dQw4w9WgXcQ", "video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
)
print(response.json())const params = new URLSearchParams({"video_id": "dQw4w9WgXcQ", "video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"});
const response = await fetch(`https://api.keyapi.ai/v1/youtube/get_signed_stream_url?${params}`, {
method: 'GET',
headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
});
const data = await response.json();
console.log(data);{
"code": 0,
"message": "success",
"data": {
"itag": 18,
"url": "https://rr2---sn-n4v7snse.googlevideo.com/videoplayback?expire=1784569652&ei=1ApeateDDZiTsfIPmcy5iQ8&ip=147.182.249.55&id=o-ALxzSWNnBoHoPO68QTV3MpwtEGLCgjnuA28YW1y_rsgV&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1204&met=1784548052%2C&mh=7c&mm=31%2C29&mn=sn-n4v7snse%2Csn-o097znzr&ms=au%2Crdu&mv=m&mvi=2&pl=23&rms=au%2Cau&initcwndbps=200000&bui=AZFlqhNBswx5MROTQhua2VtmmPNUQT8nEwd6wuQPl6lFnOp90knalCSN5i7H6XjPLGW2zw3TMjL3-y4q&spc=SQ-umtZFLGstiGl1s3DPUQ&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&cnr=14&ratebypass=yes&dur=213.089&lmt=1766960953317159&mt=1784547653&fvip=5&fexp=51565115&c=ANDROID_VR&txp=5538534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AE0s2JYwRgIhAO9KbtWBhE3ZzhhXdG4o1o_7FadRm5etMUwgF-9kzXgBAiEAkaTgkUTizFOh-jyi7H8QPubkVVsDVcqwPVIWskzWtNU%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKeLD6BWmbZ7IkmKVLbatW1bBco_angavNiDXjshfYkyAiA3-wCcFTmmn1L-TK3iG2G2ykiOKZQ9RIoKWl-ELxTfDA%3D%3D",
"expires_in_seconds": 21600
},
"requestId": "09ae9c28-bc8d-43e9-8dcc-5e28de5216c3"
}{
"code": 400,
"data": null,
"message": "Missing required parameter: handle"
}{
"code": 401,
"data": null,
"message": "apiKey is null"
}{
"code": 402,
"data": null,
"message": "apiKey quota is not enough"
}{
"code": 429,
"data": null,
"message": "qps limit exceeded"
}{
"code": 500,
"data": null,
"message": "Internal server error"
}YouTube 视频
获取已签名的视频流URL
获取指定 itag 的已签名播放地址(可直接播放) 配合 get_video_streams 接口使用,先获取所有格式,再选择 itag 获取播放地址
注意事项
- 播放地址有时效性(约6小时),过期后需重新获取
- URL 长度较长(约1000-2000字符)
- 某些视频可能受地区限制
GET
/
v1
/
youtube
/
get_signed_stream_url
cURL
curl --request GET \
--url 'https://api.keyapi.ai/v1/youtube/get_signed_stream_url?video_id=dQw4w9WgXcQ&video_url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ' \
--header 'Authorization: Bearer <YOUR_API_KEY>'import requests
response = requests.get(
'https://api.keyapi.ai/v1/youtube/get_signed_stream_url',
params={"video_id": "dQw4w9WgXcQ", "video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"},
headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
)
print(response.json())const params = new URLSearchParams({"video_id": "dQw4w9WgXcQ", "video_url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"});
const response = await fetch(`https://api.keyapi.ai/v1/youtube/get_signed_stream_url?${params}`, {
method: 'GET',
headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
});
const data = await response.json();
console.log(data);{
"code": 0,
"message": "success",
"data": {
"itag": 18,
"url": "https://rr2---sn-n4v7snse.googlevideo.com/videoplayback?expire=1784569652&ei=1ApeateDDZiTsfIPmcy5iQ8&ip=147.182.249.55&id=o-ALxzSWNnBoHoPO68QTV3MpwtEGLCgjnuA28YW1y_rsgV&itag=18&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&cps=1204&met=1784548052%2C&mh=7c&mm=31%2C29&mn=sn-n4v7snse%2Csn-o097znzr&ms=au%2Crdu&mv=m&mvi=2&pl=23&rms=au%2Cau&initcwndbps=200000&bui=AZFlqhNBswx5MROTQhua2VtmmPNUQT8nEwd6wuQPl6lFnOp90knalCSN5i7H6XjPLGW2zw3TMjL3-y4q&spc=SQ-umtZFLGstiGl1s3DPUQ&vprv=1&svpuc=1&mime=video%2Fmp4&rqh=1&cnr=14&ratebypass=yes&dur=213.089&lmt=1766960953317159&mt=1784547653&fvip=5&fexp=51565115&c=ANDROID_VR&txp=5538534&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Crqh%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AE0s2JYwRgIhAO9KbtWBhE3ZzhhXdG4o1o_7FadRm5etMUwgF-9kzXgBAiEAkaTgkUTizFOh-jyi7H8QPubkVVsDVcqwPVIWskzWtNU%3D&lsparams=cps%2Cmet%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRQIhAKeLD6BWmbZ7IkmKVLbatW1bBco_angavNiDXjshfYkyAiA3-wCcFTmmn1L-TK3iG2G2ykiOKZQ9RIoKWl-ELxTfDA%3D%3D",
"expires_in_seconds": 21600
},
"requestId": "09ae9c28-bc8d-43e9-8dcc-5e28de5216c3"
}{
"code": 400,
"data": null,
"message": "Missing required parameter: handle"
}{
"code": 401,
"data": null,
"message": "apiKey is null"
}{
"code": 402,
"data": null,
"message": "apiKey quota is not enough"
}{
"code": 429,
"data": null,
"message": "qps limit exceeded"
}{
"code": 500,
"data": null,
"message": "Internal server error"
}🪙2 credit每次请求
Copy for AI
🤖 让 AI 帮你写调用代码
点击按钮复制一段结构化提示词,可直接交给 ChatGPT、Claude 或其他 AI 助手生成接口调用代码。
授权
查询参数
视频ID(推荐, 与video_url二选一)
示例:
"dQw4w9WgXcQ"
完整的视频URL(与video_id二选一)
示例:
"https://www.youtube.com/watch?v=dQw4w9WgXcQ"
格式标识符,从 get_video_streams 接口返回的格式列表中选择
示例:
"18"
响应
The response is of type object.
⌘I

