视频解析 API
GET /v1/social-media/video/extract 参考文档,包括支持的分享链接、提取的元数据、固定价格和错误说明。
从社交媒体分享链接中提取视频下载信息,包括多清晰度视频流、独立音频流、封面图片和元数据。
端点
GET https://api.leaper.one/v1/social-media/video/extract参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 视频 URL 或包含 URL 的分享文本 |
url 参数既可以接收视频直链,也可以接收从平台复制的原始分享文本。API 会自动从文本中提取 URL。
支持的平台
| 平台 | URL 格式 | paramName | 视频输出 | 音频输出 |
|---|---|---|---|---|
| 抖音 | v.douyin.com/*、*.douyin.com/* | url | 多清晰度 1080p/720p/540p | 背景音乐 MP3 |
| TikTok | *.tiktok.com/* | url | 多清晰度 | 背景音乐 MP3 |
| 快手 | *.kuaishou.com/*、*.gifshow.com/* | url | 多清晰度 | 有 |
| 小红书 | *.xiaohongshu.com/*、xhslink.com/* | share_text | H.264/H.265 | — |
*.instagram.com/* | post_url | 多分辨率 | — | |
| Bilibili | bilibili.com/video/BV*、b23.tv/* | url(提取 BV 号) | DASH 多流 | DASH 独立音频 |
| YouTube | youtube.com/watch?v=*、youtu.be/* | video_id(自动提取) | 360p–4K、mp4/webm | m4a/weba |
| Twitter/X | x.com/*/status/*、twitter.com/* | tweet_id(自动提取) | 多码率 MP4 | — |
| 微博 | weibo.com/*、weibo.cn/* | id(自动提取) | 720p/HD/LD | — |
| 西瓜视频 | ixigua.com/* | item_id(自动提取) | 有 | — |
| 皮皮虾 | pipix.com/*、pipixia.com/* | cell_id(自动提取) | 高/低清晰度 | — |
“—”表示音频已嵌入视频文件中(audios 为空数组)。Bilibili 和 YouTube 使用音视频分离的 DASH 格式,下载后需要使用 ffmpeg 合并。
请求
curl -G "https://api.leaper.one/v1/social-media/video/extract" \
--data-urlencode "url=https://v.douyin.com/L4FJNR3/" \
-H "Authorization: Bearer sk-your-api-key"响应示例
返回多种清晰度的视频选项和背景音乐 MP3。
{
"platform": "douyin",
"data": {
"platform": "douyin",
"videoId": "6918273131559881997",
"title": "骑白马的也可以是公主#百万转场变身",
"author": "Real机智张",
"authorId": "MS4wLjABAAAA...",
"coverUrl": "https://p3-sign.douyinpic.com/...webp",
"duration": 10,
"videos": [
{ "url": "https://...mp4", "quality": "adapt_lowest_1080_1", "format": "mp4", "width": 1080, "height": 1920, "size": 3455733 },
{ "url": "https://...mp4", "quality": "adapt_lowest_720_1", "format": "mp4", "width": 720, "height": 1280, "size": 2205160 },
{ "url": "https://...mp4", "quality": "adapt_540_1", "format": "mp4", "width": 576, "height": 1024, "size": 1681820 }
],
"audios": [
{ "url": "https://sf6-cdn-tos.douyinstatic.com/...mp3", "format": "mp3" }
]
}
}使用音视频分离的 DASH 格式。请使用 ffmpeg 合并。
{
"platform": "bilibili",
"data": {
"platform": "bilibili",
"videoId": "BV1cAQqBqEpT",
"title": "《万历黑诏书》第七十一话:帝王之术",
"author": "虾仁耶YE",
"authorId": "21741349",
"coverUrl": "http://i1.hdslb.com/bfs/archive/...jpg",
"duration": 545,
"videos": [
{ "url": "https://...bilivideo.com/...mp4", "quality": "480p", "format": "mp4", "codec": "avc1.640033", "width": 852, "height": 480 }
],
"audios": [
{ "url": "https://...bilivideo.com/...m4s", "format": "m4a", "codec": "mp4a.40.2" }
]
}
}ffmpeg -i video.mp4 -i audio.m4a -c copy output.mp4返回 20 多种视频格式(360p 至 4K)和多条音轨。
{
"platform": "youtube",
"data": {
"platform": "youtube",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"author": "Rick Astley",
"authorId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"coverUrl": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/maxresdefault.webp",
"duration": 213,
"videos": [
{ "url": "https://...googlevideo.com/...", "quality": "360p", "format": "mp4", "codec": "avc1.42001E, mp4a.40.2", "width": 640, "height": 360, "size": 11829048 },
{ "url": "https://...googlevideo.com/...", "quality": "720p", "format": "mp4", "codec": "avc1.4d401f", "width": 1280, "height": 720 },
{ "url": "https://...googlevideo.com/...", "quality": "1080p", "format": "webm", "codec": "vp9", "width": 1920, "height": 1080 }
],
"audios": [
{ "url": "https://...googlevideo.com/...", "format": "m4a", "codec": "mp4a.40.2", "size": 3449447 },
{ "url": "https://...googlevideo.com/...", "format": "weba", "codec": "opus", "size": 1231355 }
]
}
}YouTube 的 360p mp4 通常包含音轨,可以直接播放。更高分辨率的视频流通常不含音频,需要与 audios 中的音频流合并。
返回多种清晰度的视频流。
{
"platform": "kuaishou",
"data": {
"platform": "kuaishou",
"videoId": "5229242270556079433",
"title": "@爱笑岩❗️还在努力. #三道街 #爱笑岩 #爱笑岩安利挑战",
"author": "捕风在努力",
"authorId": "1152464658",
"coverUrl": "https://p3.a.kwimgs.com/...jpg",
"duration": 103,
"videos": [
{ "url": "https://tymov2.a.kwimgs.com/...mp4", "format": "mp4" },
{ "url": "https://tymov2.a.kwimgs.com/...mp4", "format": "mp4" }
],
"audios": []
}
}测试 URL
复制以下 URL,直接调用 API 进行测试:
| 平台 | 测试 URL |
|---|---|
| 抖音 | https://v.douyin.com/L4FJNR3/ |
| TikTok | https://www.tiktok.com/@bellapoarch/video/6862153058223197445 |
| 快手 | https://v.kuaishou.com/dEHKhN |
| Bilibili | https://www.bilibili.com/video/BV1cAQqBqEpT/ |
| YouTube | https://www.youtube.com/watch?v=dQw4w9WgXcQ |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
platform | string | 检测到的平台名称 |
data | object | null | 标准化后的视频数据。标准化失败时为 null |
data.platform | string | 平台名称 |
data.videoId | string | 视频在平台上的 ID |
data.title | string | 视频标题或描述 |
data.author | string | 作者显示名称 |
data.authorId | string | 作者在平台上的 ID |
data.coverUrl | string | 封面图片 URL |
data.duration | number | 时长,单位为秒 |
data.videos | MediaItem[] | 可用的视频下载选项 |
data.audios | MediaItem[] | 可用的音频下载选项;音频嵌入视频时为空数组 |
raw | object | 上游原始响应,仅在标准化失败时返回 |
MediaItem
| 字段 | 类型 | 说明 |
|---|---|---|
url | string | 下载 URL |
quality | string? | 清晰度标签:"1080p"、"720p"、"480p" 等 |
format | string? | 文件格式:"mp4"、"webm"、"m4a"、"mp3"、"weba" |
codec | string? | 编解码器:"avc1.640033"、"mp4a.40.2"、"opus"、"vp9" |
width | number? | 视频宽度,单位为像素 |
height | number? | 视频高度,单位为像素 |
size | number? | 文件大小,单位为字节 |
错误响应
价格
每次成功请求 $0.01(HTTP 2xx)。请求失败不会计费。
注意事项
- 视频和音频 URL 具有时效性,通常在数小时至数天后失效。获取后请尽快下载。
- 抖音和 TikTok 共用混合解析器,一个端点同时支持两个平台。
- 小红书支持完整 URL 和短链接(
xhslink.com)。 duration的单位始终为秒。- 当
data为null时,raw字段会包含未经处理的上游响应,便于调试。