🔌 开放 API 开发者文档
一个接口解析 抖音、快手、小红书、B站、视频号、知乎、西瓜、好看、贴吧 等 10+ 平台,返回无水印直链。适合本地部署、脚本自动化、二次开发。当前为免费试用阶段。
fail_side:"link")同样扣 1 次;
返回的是 CDN 直链,请自行下载(不经本站中转,不限速不限流)。
查看完整定价与成本测算 →
🎫 获取你的 API Key
Key 跟随账号:在个人中心注册后自动发放首把 Key(赠试用次数),换设备不丢、可多把分项目使用。账号制之前匿名领过的 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=...。支持分享文本、短链、完整链接。
| 返回字段 | 说明 |
|---|---|
code | 0 成功;非 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_id | string | 商品 ID,与 data.aweme_id 一致;勿转为 JavaScript Number,以免丢失精度 |
shop_name | string | 店铺名称 |
videos | array | 全部商品视频,元素字段见下;无视频为 [] |
videos[].url | string | 视频 CDN 直链 |
videos[].cover | string | 视频封面直链;为空时可使用商品主图预览 |
videos[].width / height | integer | 视频宽 / 高(像素);未提供有效尺寸时不要据此裁切 |
main_images | string[] | 主图直链,保留返回顺序 |
detail_images | string[] | 详情图直链,保留返回顺序,可为空数组 |
商品 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(网页入口已下线)。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 主页链接 / 裸 eid(3x…) / 作品链接 |
cursor | string | 否 | 翻页游标,回传上次 data.pcursor;首次不传 |
count | int | 否 | 每页固定 20 条(已不支持调大,传更大值仍只返回 20);需要更多数据请用 cursor 逐页翻 |
| 返回 data 字段 | 类型 | 说明 |
|---|---|---|
items[] | array | 作品列表,元素字段见下 |
items[].aweme_id | string | 作品 photoId(唯一 id,下载/去重用) |
items[].desc | string | 作品文案 |
items[].cover | string | 封面图 URL |
items[].create_time | int | 发布时间(秒级时间戳) |
items[].duration | int | 时长(毫秒) |
items[].aweme_type | string | video | image |
items[].digg_count/comment_count/share_count/collect_count/play_count | int | 点赞/评论/转发/收藏/播放数 |
user | object|null | 作者概要(字段同 user 接口) |
has_more | bool | 是否还有下一页 |
pcursor | string | 下一页游标;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
作者主页信息(免签名,快)。返回粉丝/作品/获赞等公开数据。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 主页链接 / 作品链接 / 裸 eid |
| 返回 data 字段 | 类型 | 说明 |
|---|---|---|
uid | string | 作者 eid(3x…) |
sec_uid | string | 快手号 |
nickname | string | 昵称 |
avatar | string | 头像 URL |
signature | string | 简介 |
aweme_count | int | 作品数 |
follower_count | int | 粉丝数 |
following_count | int | 关注数 |
total_favorited | int | 获赞总数 |
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
作品评论导出(免签名,快)。返回某作品的评论列表 + 总数。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 作品链接 / photoId |
cursor | string | 否 | 翻页游标,回传 data.pcursor |
count | int | 否 | 返回条数,默认 20 |
| 返回 data 字段 | 类型 | 说明 |
|---|---|---|
aweme_id | string | 作品 photoId |
comments[] | array | 评论列表,元素字段见下 |
comments[].cid | string | 评论 id(作为 replies 的入参) |
comments[].text | string | 评论正文 |
comments[].nickname | string | 评论者昵称 |
comments[].avatar | string | 评论者头像 |
comments[].digg_count | int | 评论点赞数 |
comments[].reply_count | int | 回复数(>0 时可拉 replies) |
comments[].create_time | int | 评论时间(秒) |
total | int | 评论总数 |
has_more / pcursor | bool / 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。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 作品链接 / photoId(同 comments) |
cid | string | 是 | 根评论 id,来自 comments 的 comments[].cid |
cursor | string | 否 | 翻页游标 |
| 返回 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)。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 主页链接 / 裸 eid |
cursor | string | 否 | 翻页游标 |
| 返回 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,属平台隐私,非错误)。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 主页链接 / 裸 eid |
cursor | string | 否 | 翻页游标 |
count | int | 否 | 每页固定 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,非错误)。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 主页链接 / 裸 eid |
cursor | string | 否 | 翻页游标 |
count | int | 否 | 每页固定 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 照常计次,其余不扣 |
1401 | API 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。
| 请求参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 二选一 | 主页链接 / 分享文本 / xhslink.com 短链 |
user_id | string | 二选一 | 24 位用户 ID;与 url 同时传时以 user_id 为准 |
cursor | string | 否 | 首页留空;下一页传上一页返回的 data.cursor |
| 返回 data 字段 | 类型 | 说明 |
|---|---|---|
user | object | user_id/nickname/avatar |
items[] | array | 笔记列表(视频与图文混合) |
items[].note_id | string | 笔记唯一 ID(去重/下载用) |
items[].type | string | video | normal |
items[].title/desc/cover | string | 标题 / 文案(截断 300 字)/ 封面 URL |
items[].create_time | int | 发布时间(秒级时间戳) |
items[].is_pinned | bool | 是否置顶;新作品判断时请排除 |
items[].likes/comments/collects/shares | int | 点赞 / 评论 / 收藏 / 分享数 |
items[].note_url | string | 笔记地址(可能需登录打开) |
cursor | string | 下一页游标;空=没有下一页 |
has_more | bool | 本页满 20 条时为 true,需用 cursor 继续翻 |
fetched_at | int | 数据时间(秒级时间戳) |
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)
本站提供 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 接入专页。
{
"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_video | url(分享文本/短链/完整链接) | 解析并返回无水印视频直链、图集直链、清晰度档位、抖音原声 MP3 直链、封面与文案 |
get_balance | — | 查询当前 Key 的剩余次数、限频、今日已用 |
redeem_code | code(充值码) | 用充值码给账号加调用次数 |
支持平台同开放 API:抖音、快手、小红书、B站、视频号、微博、知乎等 10+ 平台。
🚦 错误码
| code | 含义 | 处理建议 |
|---|---|---|
0 | 成功 | — |
1001 | 解析失败(作品删除/私密/平台接口变动) | fail_side:"link"(作品删除/私密/链接无效)照常计 1 次;平台接口变动、出口风控这类我们侧失败不扣 |
1002 | 网络错误 | 不扣次数;重试 |
1401 | API Key 无效或已停用 | 检查 Authorization 头;重新领取 |
1402 | 次数用完 | 到 个人中心 兑换充值码或购买次数 |
1429 | 触发每分钟限频 | 降低请求速度(默认 10 次/分钟) |
1500 | 服务内部异常 | 不扣次数;稍后重试 |
1503 | 开放 API 服务暂停 | 维护期,稍后再试 |
📏 配额与限频
- 每个 Key 默认 10 次/分钟限频,超限返回
1429; - 次数余额制:仅「真实解析成功」扣 1 次,重复链接命中缓存免费;
- 次数全站通用:余额与网页端共享同一池子,网页超每日免费额度后自动抵扣、不弹窗;
- 免费试用次数用完后,用充值码兑换加次数,或在 个人中心 扫码购买;充值进账号共享池,名下所有 Key 共用;
- 请在你自己的程序里控制并发,勿用多线程轰击——触发风控时全站解析都会受影响,损人不利己;
- Key 跟随账号(2026-09-02 前的存量 Key 跟随领取 IP);滥用(倒卖、批量刷量、用于违法内容)将被停用。
💾 关于下载
接口返回的 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 和失败项。
反馈与合作:见页脚联系方式。服务条款与隐私政策同本站,解析内容仅限个人学习使用,请勿用于侵权用途。