🔌 开放 API 开发者文档

一个接口解析 抖音、快手、小红书、B站、视频号、知乎、西瓜、好看、贴吧 等 10+ 平台,返回无水印直链。适合本地部署、脚本自动化、二次开发。当前为免费试用阶段。

💡 计费规则(对外承诺):缓存命中、出口风控、网络错误、服务异常一律不扣次数;真实解析成功扣 1 次,作品已删除 / 设为私密 / 粘贴的不是作品链接这类链接本身的问题(响应 fail_side:"link")同样扣 1 次; 返回的是 CDN 直链,请自行下载(不经本站中转,不限速不限流)。 查看完整定价与成本测算 →

🎫 获取你的 API Key

Key 跟随账号:在个人中心注册后自动发放首把 Key(赠试用次数),换设备不丢、可多把分项目使用。账号制之前匿名领过的 Key 继续有效,可在下方查余额/兑换,或登录个人中心绑定到账号。

你的 API Key: 复制
剩余调用次数:- · 限频:- 次/分钟 · 今日已用:-

⚡ 快速开始

所有请求带 Authorization: Bearer <你的Key> 头。先解析拿直链,再用直链自行下载:

# 1. 解析(POST 或 GET 均可)
curl -X POST "https://www.qimiaowan.com/api/v1/parse" \
  -H "Authorization: Bearer dpk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://v.douyin.com/xxxxxx/"}'

# 2. 从返回的 data.play_url 直接下载(不经本站中转)
curl -L -o video.mp4 "上一步返回的 play_url"

Python 示例:

import requests

KEY = "dpk_xxxxxxxx"
r = requests.post(
    "https://www.qimiaowan.com/api/v1/parse",
    headers={"Authorization": f"Bearer {KEY}"},
    json={"url": "https://v.douyin.com/xxxxxx/"},
    timeout=30,
).json()

if r["code"] == 0:
    data = r["data"]
    if data["aweme_type"] == "product":
        print(data["product"])  # 完整商品素材分组,不能只下载 play_url
    else:
        print(data.get("play_url") or data.get("images"))
    print("剩余次数:", r["remaining"])
else:
    print("失败:", r["code"], r["message"])

同一份响应里的 data.music.play_url 就是抖音原声 MP3 直链,无需再调用第二个接口;详见 背景音乐 / 原声 MP3 直链。

📡 接口列表

POSTGET/api/v1/parse

核心解析接口。POST 传 JSON {"url": "..."},或 GET 传 ?url=...。支持分享文本、短链、完整链接。

返回字段说明
code0 成功;非 0 见下方错误码表
data.aweme_type内容类型:video(视频)、image(图集)、product(商品混合素材)。请按此字段分支处理
data.platform / data.aweme_id平台与内容 ID;商品返回 douyin,aweme_id 为商品 ID(字符串)
data.play_url视频类为视频直链;图文有逐张动态视频时返回第一段,备用解析返回独立 MP4 列表时返回该列表第一段(完整列表请读 data.image_videos);商品类为第一段商品视频的直链,无视频时为空字符串。获取全部商品视频请读 data.product.videos
data.images图集图片直链列表;商品类为主图 + 详情图(依次拼接),分组见 data.product,不要重复下载
data.image_animations逐张动态图资源直链,与 data.images 按索引一一对应;资源可能是保留动画的 GIF/WebP,也可能是抖音为动态图提供的 MP4 视频流。上游只提供静态封面或受访问限制时为空字符串
data.image_lives / data.image_live_durations兼容字段:逐张动态视频流直链与片段时长(毫秒),与 data.images 按索引对应;普通图片位置分别为空字符串和 0。图文作品的 duration 仍为 0,单张图片的视频片段不代表整条图文作品时长
data.image_videos备用解析返回的动态图 MP4 列表;单独成列,不保证与 data.images 按索引对应。当前上游若只返回封面和 MP4 列表,下载这里的 MP4 即可保存动态图视频;抖音 CDN 要求请求携带 Referer: https://www.douyin.com/,也可传给 /api/download 由本站转发
data.product商品专用嵌套对象,含商品 ID、店铺名、视频、主图与详情图,详见下方说明;非商品内容不依赖此字段
data.qualities可选清晰度档位(抖音等多档位平台)
data.music.play_url抖音原声 MP3 直链:服务端在本次解析里已用 music.mid 换好并回填,拿到即可直接下载(douyinstatic.com 静态文件,无签名、不校验 Referer、audio/mpeg)。详见下方「背景音乐 / 原声 MP3 直链」。其它平台 / 版权受限 / 上游风控时为空字符串
data.music.play_url_backup同一原声的备用 MP3 直链,主链失败时改用;没有则为空字符串
data.music.mid / title / author抖音原声 ID、名称与作者;mid 是换链依据,仍随结果返回,便于自行核对
data.cover / desc / author封面、文案、作者信息。商品的 cover 为第一张主图,desc 为标题;店铺读 product.shop_name,不依赖作者/音乐/评论信息
remaining本次调用后你的剩余次数

🎵 背景音乐 / 原声 MP3 直链

抖音作品的原声 MP3 已随解析结果一起返回,一步到位。

解析抖音作品时,服务端会用 data.music.mid 向平台换取原声文件,并回填到 data.music.play_url。它是 douyinstatic.com 上的静态 MP3(Content-Type: audio/mpeg),无签名、不校验 Referer,拿到即可直接下载,字节不经本站中转:

# 1. 解析并保存响应
curl -s -X POST "https://www.qimiaowan.com/api/v1/parse" \
  -H "Authorization: Bearer dpk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://v.douyin.com/xxxxxx/"}' > result.json

# 2. 直接下载原声 MP3(空值代表这条没有可用音频直链)
MP3=$(jq -r '.data.music.play_url // ""' result.json)
if [ -n "$MP3" ]; then curl -L -o music.mp3 "$MP3"; fi

返回片段示例(示例 CDN 地址不可下载):

{
  "platform": "douyin",
  "music": {
    "title": "原声 - 作者名",
    "author": "作者名",
    "mid": "7623343147089824527",
    "play_url": "https://lf26-music-east.douyinstatic.com/obj/ies-music-hj/xxx.mp3",
    "play_url_backup": "https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/xxx.mp3"
  }
}

什么情况下 play_url 为空:非抖音平台上游不提供独立音频文件(小红书、快手、B站等),如需音频请下载 play_url 视频后自行抽轨,本接口不提供服务端抽轨;版权方禁止下载、上游接口临时风控时也可能为空,稍后重新解析即可。旧版 mid → /api/music/direct 两步法仍可用,但那是网页内部接口、按 IP 限流,开放 API 请直接读 play_url。

商品混合素材(aweme_type = product)

同一个 /api/v1/parse 接口支持抖音商品分享文本、v.douyin.com 短链和 haohuo.jinritemai.com 商品长链,无需单独的商品端点。短链由服务端识别最终内容类型。

以下字段位于 data.product。商品视频可能为 0 条或多条,详情图可为空数组;无视频不代表解析失败。

字段类型说明
product_idstring商品 ID,与 data.aweme_id 一致;勿转为 JavaScript Number,以免丢失精度
shop_namestring店铺名称
videosarray全部商品视频,元素字段见下;无视频为 []
videos[].urlstring视频 CDN 直链
videos[].coverstring视频封面直链;为空时可使用商品主图预览
videos[].width / heightinteger视频宽 / 高(像素);未提供有效尺寸时不要据此裁切
main_imagesstring[]主图直链,保留返回顺序
detail_imagesstring[]详情图直链,保留返回顺序,可为空数组

商品 data 示例(仅展示相关字段,示例 CDN 地址不可下载):

{
  "aweme_type": "product",
  "platform": "douyin",
  "aweme_id": "3811124822906372482",
  "desc": "商品标题",
  "cover": "https://cdn.example.com/main.webp",
  "play_url": "https://cdn.example.com/video.mp4",
  "images": [
    "https://cdn.example.com/main.webp",
    "https://cdn.example.com/detail.jpeg"
  ],
  "product": {
    "product_id": "3811124822906372482",
    "shop_name": "店铺名称",
    "videos": [{
      "url": "https://cdn.example.com/video.mp4",
      "cover": "https://cdn.example.com/video-cover.webp",
      "width": 1080,
      "height": 1080
    }],
    "main_images": ["https://cdn.example.com/main.webp"],
    "detail_images": ["https://cdn.example.com/detail.jpeg"]
  }
}

无视频商品仍返回 aweme_type: "product",同时 play_url: ""、product.videos: [];图片可照常展示和下载。

GET/api/v1/balance

查询 Key 状态。返回 balance(剩余调用次数;Key 已绑账号时为账号共享池余额,与网页超额解析通用、名下所有 Key 共用)、rpm(每分钟限频)、today_used(今日已用)。

curl "https://www.qimiaowan.com/api/v1/balance" -H "Authorization: Bearer dpk_xxxxxxxx"

POST/api/v1/redeem

兑换充值码加次数(一码一用;Key 已绑账号时充入账号共享池)。Body:{"code": "XXXXXXXXXXXX"}。

curl -X POST "https://www.qimiaowan.com/api/v1/redeem" \
  -H "Authorization: Bearer dpk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"code": "XXXXXXXXXXXX"}'

🎬 快手 Pro 接口(主页作品列表 / 作者 / 评论)

快手进阶能力,共 7 个端点。列表类(posts/likes/collect)由常驻浏览器代签名,响应稍慢(约 1-3s); user/comments/replies/live 为直连,较快。统一返回信封 {code, message, data},code=0 为成功。

入参约定:各端点 url 支持主页链接 https://www.kuaishou.com/profile/3x…、裸 eid(3x 开头)、作品链接 https://www.kuaishou.com/short-video/3x…(具体见各端点表格)。不支持纯数字 uid。

翻页约定:列表类用字符串游标 pcursor。首次不传 cursor;之后把响应里的 data.pcursor 原样回传给 cursor; 当 data.has_more=false 或 pcursor="no_more" 表示已到底。

🔐 鉴权与计费(快手为按次计费功能)

调用方式请求头计费 / 准入
API-Key(推荐,脚本/B2B)Authorization: Bearer <Key>成功即扣费,响应附 remaining(剩余次数)与 cost(本次扣减次数);不受每日免费限制
网页登录(浏览器会话)携带本站登录 Cookie成功即扣账户共享池,扣减次数同上;余额不足返 1402
匿名(未登录且无 Key)—不可用,返 1402 并提示登录或改用 API-Key

💰 扣费次数:列表类 posts / likes / collect 每次调用扣 3 次;信息类 user / comments / replies / live 每次调用扣 1 次。 实际扣减以响应里的 cost 字段为准;我们侧失败(风控 / 网络 / 服务异常)不扣次数,链接本身不可用(fail_side:"link")照常扣 1 次;余额不足返 1402。

GET/api/pro/kuaishou/posts

主页作品列表(核心)。返回作者主页的作品(视频/图集)列表;监控场景用 aweme_id+create_time 判断新增。 无水印下载:拿 aweme_id 拼作品链接调 /api/v1/parse。仅开放 API-Key 调用:必须携带 Authorization: Bearer <Key>,无 Key 返 1401(网页入口已下线)。

请求参数类型必填说明
urlstring是主页链接 / 裸 eid(3x…) / 作品链接
cursorstring否翻页游标,回传上次 data.pcursor;首次不传
countint否每页固定 20 条(已不支持调大,传更大值仍只返回 20);需要更多数据请用 cursor 逐页翻
返回 data 字段类型说明
items[]array作品列表,元素字段见下
items[].aweme_idstring作品 photoId(唯一 id,下载/去重用)
items[].descstring作品文案
items[].coverstring封面图 URL
items[].create_timeint发布时间(秒级时间戳)
items[].durationint时长(毫秒)
items[].aweme_typestringvideo | image
items[].digg_count/comment_count/share_count/collect_count/play_countint点赞/评论/转发/收藏/播放数
userobject|null作者概要(字段同 user 接口)
has_morebool是否还有下一页
pcursorstring下一页游标;no_more=到底
curl "https://www.qimiaowan.com/api/pro/kuaishou/posts?url=https://www.kuaishou.com/profile/3xwghd2fbbtswdy&count=20" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/user

作者主页信息(免签名,快)。返回粉丝/作品/获赞等公开数据。

请求参数类型必填说明
urlstring是主页链接 / 作品链接 / 裸 eid
返回 data 字段类型说明
uidstring作者 eid(3x…)
sec_uidstring快手号
nicknamestring昵称
avatarstring头像 URL
signaturestring简介
aweme_countint作品数
follower_countint粉丝数
following_countint关注数
total_favoritedint获赞总数
curl "https://www.qimiaowan.com/api/pro/kuaishou/user?url=https://www.kuaishou.com/profile/3xwghd2fbbtswdy" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/comments

作品评论导出(免签名,快)。返回某作品的评论列表 + 总数。

请求参数类型必填说明
urlstring是作品链接 / photoId
cursorstring否翻页游标,回传 data.pcursor
countint否返回条数,默认 20
返回 data 字段类型说明
aweme_idstring作品 photoId
comments[]array评论列表,元素字段见下
comments[].cidstring评论 id(作为 replies 的入参)
comments[].textstring评论正文
comments[].nicknamestring评论者昵称
comments[].avatarstring评论者头像
comments[].digg_countint评论点赞数
comments[].reply_countint回复数(>0 时可拉 replies)
comments[].create_timeint评论时间(秒)
totalint评论总数
has_more / pcursorbool / string翻页标志 / 游标
curl "https://www.qimiaowan.com/api/pro/kuaishou/comments?url=https://www.kuaishou.com/short-video/3x2qchb3zj6v869&count=20" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/replies

评论回复导出(免签名,快)。拉某条根评论下的回复;返回结构同 comments。

请求参数类型必填说明
urlstring是作品链接 / photoId(同 comments)
cidstring是根评论 id,来自 comments 的 comments[].cid
cursorstring否翻页游标
返回 data 字段类型说明
同 comments:comments[] 为该根评论下的回复(cid/text/nickname/digg_count/create_time),另有 total/has_more/pcursor
curl "https://www.qimiaowan.com/api/pro/kuaishou/replies?url=https://www.kuaishou.com/short-video/3x2qchb3zj6v869&cid=1179363630087" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/live

直播回放列表(免签名,快)。返回作者的直播回放;items[] 结构同 posts(aweme_id=回放 photoId)。

请求参数类型必填说明
urlstring是主页链接 / 裸 eid
cursorstring否翻页游标
返回 data 字段类型说明
同 posts:items[](回放,字段同作品条目)+ has_more/pcursor;不含 user
curl "https://www.qimiaowan.com/api/pro/kuaishou/live?url=https://www.kuaishou.com/profile/3xwghd2fbbtswdy" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/likes

喜欢列表(浏览器签名,稍慢)。对方未公开喜欢时 items 为空(code=0,属平台隐私,非错误)。

请求参数类型必填说明
urlstring是主页链接 / 裸 eid
cursorstring否翻页游标
countint否每页固定 20 条(传更大值仍只返回 20),更多用 cursor 翻页
返回 data 字段类型说明
同 posts:items[](字段同作品条目)+ has_more/pcursor
curl "https://www.qimiaowan.com/api/pro/kuaishou/likes?url=https://www.kuaishou.com/profile/3xwghd2fbbtswdy&count=20" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

GET/api/pro/kuaishou/collect

收藏列表(浏览器签名,稍慢)。收藏多为私密,通常 items 为空(code=0,非错误)。

请求参数类型必填说明
urlstring是主页链接 / 裸 eid
cursorstring否翻页游标
countint否每页固定 20 条(传更大值仍只返回 20),更多用 cursor 翻页
返回 data 字段类型说明
同 posts:items[](字段同作品条目)+ has_more/pcursor
curl "https://www.qimiaowan.com/api/pro/kuaishou/collect?url=https://www.kuaishou.com/profile/3xwghd2fbbtswdy&count=20" \
  -H "Authorization: Bearer dpk_xxxxxxxx"

🚦 快手接口错误码

code含义处理建议
0成功—
1业务失败(链接无效/作品私密/风控)看 message 与 fail_side:link 照常计次,其余不扣
1401API Key 无效或已停用检查 Authorization 头
1402未登录 / 次数不足(快手强制计次)登录充值,或改用 API-Key
1429触发该 Key 每分钟限频降低并发
503高级功能暂未开放维护期,稍后再试

📕 小红书用户笔记列表(新视频监控)

按主页取作品列表,固定 20 条/页。监控场景用 note_id 集合 + create_time 判断新增, is_pinned=true 的置顶旧帖不要当新作品。要下载新视频,再用 note_id 拼笔记链接调 /api/v1/parse(另计 1 次)。

GET/api/v1/xhs/user/notes

计费:每次成功调用扣 3 次; 参数错误 / 用户不可访问 / 服务异常不扣。余额不足返 1402。

请求参数类型必填说明
urlstring二选一主页链接 / 分享文本 / xhslink.com 短链
user_idstring二选一24 位用户 ID;与 url 同时传时以 user_id 为准
cursorstring否首页留空;下一页传上一页返回的 data.cursor
返回 data 字段类型说明
userobjectuser_id/nickname/avatar
items[]array笔记列表(视频与图文混合)
items[].note_idstring笔记唯一 ID(去重/下载用)
items[].typestringvideo | normal
items[].title/desc/coverstring标题 / 文案(截断 300 字)/ 封面 URL
items[].create_timeint发布时间(秒级时间戳)
items[].is_pinnedbool是否置顶;新作品判断时请排除
items[].likes/comments/collects/sharesint点赞 / 评论 / 收藏 / 分享数
items[].note_urlstring笔记地址(可能需登录打开)
cursorstring下一页游标;空=没有下一页
has_morebool本页满 20 条时为 true,需用 cursor 继续翻
fetched_atint数据时间(秒级时间戳)
curl "https://www.qimiaowan.com/api/v1/xhs/user/notes?url=https://www.xiaohongshu.com/user/profile/xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Authorization: Bearer dpk_xxxxxxxx"
# 每 10 分钟查第一页,用 note_id 集合做新视频检测(伪代码)
seen = set()
while True:
    r = GET /api/v1/xhs/user/notes?user_id=<24位ID>
    for it in r["data"]["items"]:
        if it["type"] == "video" and not it["is_pinned"] and it["note_id"] not in seen:
            print("新视频", it["note_id"], it["create_time"], it["title"])
    seen.update(x["note_id"] for x in r["data"]["items"])
    sleep(600)
错误码含义是否扣次
1404无法识别 user_id / 主页链接,或用户不可访问否
1429触发该 Key 每分钟限频否
1503服务暂不可用否
1504服务异常否

🤖 让 AI 直接调用(MCP)

mcptry 实时状态:DouParse MCP 服务可连通并显示评分 本站 MCP 服务已收录到官方 Registry,并通过第三方实时连通检测(鼠标悬停徽章可看说明)。完整的一键安装指引与常见问题见 AI 接入专页 →。

本站提供 MCP Server(Model Context Protocol)。在 Claude Desktop、Cursor 等支持 MCP 的 AI 客户端里加一段配置, 之后直接对 AI 说「帮我解析这条抖音链接」,AI 就会自动调用下面的工具拿到无水印直链——无需你自己写代码。 鉴权与计费同开放 API:复用你的 API Key(放在 Authorization: Bearer 头里)。

⚙️ 客户端配置

想省事点按钮一键装进 Cursor / VS Code;用别的 IDE 就用下面的通用配置。不同客户端的配置文件格式不完全一样:多数用顶层 mcpServers,VS Code 的 .vscode/mcp.json 用 servers,Claude Desktop 需 mcp-remote 桥接,图形界面客户端只填 URL。

⚠️ 一键装完还需要补一次 API Key:按钮只写入连接地址,出于安全不会带上你的密钥。 更省事的是用下方通用配置填一次 Key 再复制粘贴,否则调用工具会返回 1401(Key 无效)。 还没有 Key?到 个人中心 免费领取。更多说明见 AI 接入专页。

📋 通用配置 · 换 IDE 不用换配置 选客户端 → 填 API Key(可留空)→ 复制,整段粘贴到对应配置文件即可。
API Key(可选;只在本机替换占位符,不上传、不保存)
{
  "mcpServers": {
    "douparse": {
      "type": "http",
      "url": "https://www.qimiaowan.com/mcp/",
      "headers": { "Authorization": "Bearer dpk_xxxxxxxx" }
    }
  }
}

适用:Cursor、Windsurf、Cline / Roo Code、Claude Code、Trae、Continue、Cherry Studio、Copilot 便携格式等。

注意 URL 结尾的斜杠 /mcp/ 不能省;Cursor 用户也可填 Settings → MCP → Add new global MCP server。

🧰 可用工具

工具入参作用
parse_videourl(分享文本/短链/完整链接)解析并返回无水印视频直链、图集直链、清晰度档位、抖音原声 MP3 直链、封面与文案
get_balance—查询当前 Key 的剩余次数、限频、今日已用
redeem_codecode(充值码)用充值码给账号加调用次数

支持平台同开放 API:抖音、快手、小红书、B站、视频号、微博、知乎等 10+ 平台。

🚦 错误码

code含义处理建议
0成功—
1001解析失败(作品删除/私密/平台接口变动)fail_side:"link"(作品删除/私密/链接无效)照常计 1 次;平台接口变动、出口风控这类我们侧失败不扣
1002网络错误不扣次数;重试
1401API Key 无效或已停用检查 Authorization 头;重新领取
1402次数用完到 个人中心 兑换充值码或购买次数
1429触发每分钟限频降低请求速度(默认 10 次/分钟)
1500服务内部异常不扣次数;稍后重试
1503开放 API 服务暂停维护期,稍后再试

📏 配额与限频

💾 关于下载

接口返回的 play_url / images 是平台视频 / 图片 CDN 直链,抖音原声 MP3 直链在同一次响应的 data.music.play_url(见 背景音乐),商品完整素材见 product.videos / main_images / detail_images,请在你的环境里直接下载—— 直链有时效性(通常数小时),过期重新解析即可(同链接缓存期内不扣次数)。 部分平台 CDN 校验 Referer 时,下载请求带上对应平台域名作为 Referer 即可。

商品素材下载:网页端直接从 CDN 获取文件,在浏览器内打包 ZIP,不使用 /api/download、/api/resolve、/api/probe 或 /api/redirect。浏览器请求使用 mode: "cors"、credentials: "omit"、referrerPolicy: "no-referrer";若网络或 CORS 失败,请复制直链,或在新窗口打开后另存,不会自动回退服务器代理。网页下载、复制下载直链及新窗口另存入口均需登录。

下载文件的扩展名请按实际响应 Content-Type 命名,例如 image/webp → .webp、image/jpeg → .jpg,不要把所有商品图片固定存成 JPG。ZIP 中按 videos/、main_images/、detail_images/ 分目录保存;若有文件下载失败,网页会明确标注部分素材 ZIP 和失败项。

🎁 兑换充值码 / 查余额

已有 Key?在这里直接兑换充值码或查询余额(Key 只保存在你的浏览器本地)。

没有充值码?到 个人中心 的「充值 / 购买次数」扫码支付,到账自动加次数。

反馈与合作:见页脚联系方式。服务条款与隐私政策同本站,解析内容仅限个人学习使用,请勿用于侵权用途。

京ICP备2025153929号