抖音无水印解析接口,支持视频与图集,返回原画直链、封面、作者、统计信息。
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| key | string | 是 | 接口调用密钥 | |
| url | string | 是 | 分享链接 | http://v.douyin.com/6SoNdw8dl_Q/ |
[
{
"name": "key",
"type": "string",
"required": true,
"description": "接口调用密钥",
"example": ""
},
{
"name": "url",
"type": "string",
"required": true,
"description": "分享链接",
"example": "http://v.douyin.com/6SoNdw8dl_Q/"
}
]
{
"openapi": "3.1.1",
"info": {
"title": "抖音解析",
"description": "抖音无水印解析接口,支持视频与图集,返回原画直链、封面、作者、统计信息。",
"version": "1.0.0"
},
"paths": {
"\/api\/parser\/douyin\/index.php": {
"get": {
"summary": "抖音解析",
"description": "抖音无水印解析接口,支持视频与图集,返回原画直链、封面、作者、统计信息。",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "接口调用密钥"
},
{
"name": "url",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "http:\/\/v.douyin.com\/6SoNdw8dl_Q\/"
},
"description": "分享链接"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application\/json": {
"schema": {
"type": "object"
}
}
}
}
}
},
"post": {
"summary": "抖音解析",
"description": "抖音无水印解析接口,支持视频与图集,返回原画直链、封面、作者、统计信息。",
"parameters": [
{
"name": "key",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "接口调用密钥"
},
{
"name": "url",
"in": "query",
"required": true,
"schema": {
"type": "string",
"example": "http:\/\/v.douyin.com\/6SoNdw8dl_Q\/"
},
"description": "分享链接"
}
],
"responses": {
"200": {
"description": "成功",
"content": {
"application\/json": {
"schema": {
"type": "object"
}
}
}
}
}
}
}
},
"servers": [
{
"url": "https:\/\/api.vsaa.cn",
"description": "当前访问入口(https)"
}
]
}
{
"code": 0, // 0=成功,其余见错误码
"msg": "ok",
"data": {
"aweme_id": "7684870416817466018",
"type": "note", // note=图集 | video=视频
"desc": "视频/图集文案",
"author": {
"uid": "1", "nickname": "作者名", "signature": "签名", "avatar": "头像URL"
},
"create_time": 1757713326,
"statistics": {
"digg_count": 404758, "comment_count": 1980,
"share_count": 64128, "play_count": 0, "collect_count": 0
},
// 当 type=note(图集):
"images": [
{
"index": 1,
"uri": "tos-cn-i-0813c001/xxx",
"width": 2160, "height": 3840, // 全分辨率,不封顶
"url": "https://...q75.webp", // 最高画质·无水印原图
"url_webp": "https://...webp", // 轻量 webp
"watermark_url": "https://...water..." // 水印版
}
],
// 当 type=video(视频):
"video": {
"url": "https://...", // 最高画质(可能带水印)
"play_url": "https://...", // 最高画质·无水印 ← 通常用它
"download_url": "https://...", // 官方下载地址
"origin_url": "https://...", // 原画直链(外网CDN,无水印)
"quality": "download_addr", "width": 0, "height": 0,
"ratio": "", "duration": 14767,
"music": { "id":"", "title":"", "author":"", "duration":0 }
}
}
}
本接口提供无水印的抖音视频与图集解析功能,支持获取原画直链及图片资源。适用于需要集成抖音内容解析能力的开发者与应用程序用户。
https://api.vsaa.cn/api/parser/douyin/index.php
支持 GET 和 POST 两种请求方法。调用时需将参数附加在请求 URL 的查询字符串中(GET)或请求体中(POST)。
本接口必须携带密钥才能调用。请在请求中添加 Query 参数 key,其值为您的专属接口调用密钥。例如:?key=您的密钥。未提供有效密钥或密钥错误时,接口将拒绝处理请求。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 接口调用密钥,需通过 Query 参数传递。 |
| url | string | 是 | 抖音分享链接,支持视频及图集链接。示例:http://v.douyin.com/6SoNdw8dl_Q/ |
参数补充说明
v.douyin.com 域名)。iesdouyin.com 域名的完整链接。{
"code": 0,
"msg": "ok",
"data": {
"aweme_id": "7684870416817466018",
"type": "note",
"desc": "示例文案内容",
"author": {
"uid": "1",
"nickname": "示例作者",
"signature": "示例签名",
"avatar": "https://example.com/avatar.jpg"
},
"create_time": 1757713326,
"statistics": {
"digg_count": 404758,
"comment_count": 1980,
"share_count": 64128,
"play_count": 0,
"collect_count": 0
},
"images": [
{
"index": 1,
"uri": "tos-cn-i-0813c001/xxx",
"width": 2160,
"height": 3840,
"url": "https://example.com/image_high_quality.webp",
"url_webp": "https://example.com/image_light.webp",
"watermark_url": "https://example.com/image_watermark.webp"
}
]
}
}
| 字段路径 | 类型 | 说明 |
|---|---|---|
code |
integer | 状态码。0 表示请求成功。 |
msg |
string | 状态描述信息,成功时为 "ok"。 |
data |
object | 解析结果数据主体。 |
data.aweme_id |
string | 作品唯一标识 ID。 |
data.type |
string | 媒体类型。note 表示图集,video 表示视频。 |
data.desc |
string | 视频或图集的文案描述。 |
data.author |
object | 作者信息对象。 |
data.author.uid |
string | 作者用户 ID。 |
data.author.nickname |
string | 作者昵称。 |
data.author.signature |
string | 作者个性签名。 |
data.author.avatar |
string | 作者头像 URL。 |
data.create_time |
integer | 作品创建时间戳(Unix 时间)。 |
data.statistics |
object | 统计信息对象。 |
data.statistics.digg_count |
integer | 点赞数量。 |
data.statistics.comment_count |
integer | 评论数量。 |
data.statistics.share_count |
integer | 分享数量。 |
data.statistics.play_count |
integer | 播放数量。 |
data.statistics.collect_count |
integer | 收藏数量。 |
data.images |
array | 图集媒体数组,仅当 type 为 note 时存在。 |
data.images[].index |
integer | 图片序号。 |
data.images[].uri |
string | 图片原始 URI 标识。 |
data.images[].width |
integer | 图片宽度(像素)。 |
data.images[].height |
integer | 图片高度(像素)。 |
data.images[].url |
string | 最高画质无水印原图直链。 |
data.images[].url_webp |
string | 轻量级 WebP 格式图片直链。 |
data.images[].watermark_url |
string | 带水印版本图片直链。 |
data.video |
object | 视频媒体对象,仅当 type 为 video 时存在。 |
data.video.url |
string | 视频地址(可能包含水印)。 |
data.video.play_url |
string | 最高画质无水印视频地址,推荐用于播放。 |
data.video.download_url |
string | 官方下载地址。 |
data.video.origin_url |
string | 原画直链地址。 |
data.video.quality |
string | 画质标识。 |
data.video.width |
integer | 视频宽度(像素),0 表示未知。 |
data.video.height |
integer | 视频高度(像素),0 表示未知。 |
data.video.ratio |
string | 视频宽高比。 |
data.video.duration |
integer | 视频时长(毫秒)。 |
data.video.music |
object | 背景音乐信息。 |
data.video.music.id |
string | 音乐 ID。 |
data.video.music.title |
string | 音乐标题。 |
data.video.music.author |
string | 音乐作者。 |
data.video.music.duration |
integer | 音乐时长(毫秒)。 |
当接口调用出现业务逻辑错误、鉴权失败或系统异常时,API 将返回统一的 JSON 结构。成功时 code 为 0,出错时 code 保持 0 或特定值(视具体网关实现,但本站标准错误结构如下),关键状态指示在 errcode 字段中。
{
"code": 0,
"msg": "密钥错误",
"errcode": 11002
}
字段说明:
code: 固定为 0,表示接口响应结构正常,非 HTTP 状态码。msg: 人类可读的错误描述信息。errcode: 业务错误码,用于程序化识别具体错误类型。下表列出了抖音解析接口可能返回的所有业务错误码及其含义。客户端应根据 errcode 进行针对性的错误处理。
| errcode | 含义说明 |
|---|---|
| 11001 | 未提供调用密钥 |
| 11002 | 密钥错误 |
| 11003 | 密钥已禁用 |
| 11004 | 积分余额不足 |
| 11005 | 请求过于频繁(QPM 限制) |
| 11006 | 接口维护中 |
| 11007 | 接口已禁用 |
| 11008 | 接口不可用 |
| 11009 | 密钥校验暂不可用 |
| 11010 | 积分系统暂不可用 |
| 11011 | 收费接口须提供有效密钥 |
| 11012 | 鉴权方式错误 |
| 11013 | 接口不存在 |
| 11014 | ***地址无效 |
| 11015 | ***地址不允许 |
| 11016 | ***请求失败 |
| 11017 | 服务暂不可用 |
| 11018 | 请求方式不允许 |
| 11019 | 当前IP不在白名单内 |
| 11020 | 启用出口代理须提供有效密钥 |
| 11021 | 未配置可用出口代理 |
| 11022 | 出口代理不可用 |
| 11023 | 密钥已过期 |
| 11024 | 令牌分配积分不足 |
常见错误场景示例:
密钥缺失或错误
{
"code": 0,
"msg": "密钥错误",
"errcode": 11002
}
频率限制触发
当每分钟请求次数超过 60 次时,可能返回:
{
"code": 0,
"msg": "请求过于频繁",
"errcode": 11005
}
积分不足
对于收费接口,若账户余额无法扣除本次调用费用:
{
"code": 0,
"msg": "积分余额不足",
"errcode": 11004
}
解析失败
当第三方返回异常或链接失效时:
{
"code": 0,
"msg": "***请求失败",
"errcode": 11016
}
curl -X GET "https://api.vsaa.cn/api/parser/douyin/index.php?key=YOUR_KEY&url=http://v.douyin.com/6SoNdw8dl_Q/"
$key = 'YOUR_KEY';
$url = 'http://v.douyin.com/6SoNdw8dl_Q/';
$apiUrl = "https://api.vsaa.cn/api/parser/douyin/index.php?key=" . urlencode($key) . "&url=" . urlencode($url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Accept: application/json"]);
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
die("cURL Error: " . $err);
}
$data = json_decode($response, true);
if ($data['code'] === 0) {
print_r($data['data']);
} else {
echo "Error: " . $data['msg'];
}
key 参数必须通过 Query 字符串传递。严禁将密钥硬编码在前端代码、移动端 App 或任何可被公开访问的客户端中,以防止密钥泄露导致额度被盗用或资金损失。https:// 协议发起,以确保传输层加密安全。禁止使用 http:// 发起请求。url 参数需为有效的抖音分享链接(如 http://v.douyin.com/...)。若链接失效、非抖音域名或内容已下架,接口将返回非 0 的 code 错误码,请根据 msg 字段进行容错处理。play_url、url)具有时效性,建议在获取后立即发起下载请求,不要长期缓存直接下载链接。若链接过期,需重新调用接口获取最新有效地址。# 抖音无水印解析
curl -s "http://YOUR_API_HOST/api/douyin/parse.php?url=http://v.douyin.com/6SoNdw8dl_Q/" | python3 -m json.tool
欢迎使用 万象数据API(以下简称“本平台”,域名为 api.vsaa.cn)。在使用本平台提供的任何接口、数据及相关服务之前,请您务必仔细阅读并充分理解本免责声明的全部内容。您对本平台任何服务的使用,均视为您已阅读、理解并同意本声明的全部条款。
最后更新日期:2026年10月6日