API 开发文档v3.1.1 · 短视频无水印解析

接口概述

短视频无水印解析服务,内置双引擎——自研引擎与第三方引擎自动容灾。传入分享链接即可获得无水印直链及标题、封面、作者等结构化信息。

Base URL
https://qsy.cwj666.top
请求方式
GET / POST
返回格式
JSON (UTF-8)
认证方式
无需认证
跨域 CORS
✅ 已开放
解析引擎
self / third / auto
在线使用页
/
在线调试
/api-docs

双引擎架构

方案method说明支持平台
自研引擎self直接逆向平台内部接口(抖音 SSR + a_bogus 签名、快手 Apollo SSR),零第三方依赖抖音 douyin / 快手 kuaishou
第三方引擎third代理接入多家上游解析服务并自动容灾(主接口失败自动切换备用)20+ 平台全内容格式
自动路由auto有自研引擎的平台走自研,其余自动走第三方(默认)全部
同一链接可在 self 与 third 间自由切换对比。响应 data.engine 字段标识实际命中的引擎。

快速开始

粘贴分享链接(或整段复制文案)到 /parse,三秒拿无水印直链。

GET 方式

curl · GET
curl "https://qsy.cwj666.top/parse?url=https://v.douyin.com/xxxxx/"

POST · JSON

curl · POST
curl -X POST "https://qsy.cwj666.top/parse" \
     -H "Content-Type: application/json" \
     -d '{"url": "https://v.douyin.com/xxxxx/"}'
url 支持直接传入 App 复制出来的整段分享文案(含文字、口令等),后端会自动提取其中的 http(s) 链接,无需手动抠链接。

支持平台

接口兼容 20+ 平台,持续更新中。下表为当前已识别的平台标识(platform 字段)。

平台平台标识 (platform)平台平台标识 (platform)
抖音douyin全民(全民K歌/全民TV)quanmin
快手kuaishou虎牙huya
小红书xiaohongshuYouTubeyoutube
微博weiboTikToktiktok
绿洲oasis推特 (Twitter)twitter
B站 (bilibili)bilibiliInstagraminstagram
西瓜视频ixigua网易云音乐netease_music
好看视频haokan汽水音乐water_music
微视weishi皮皮虾pipixia
梨视频pearvideo皮皮搞笑pipigaoxiao
A站 (AcFun)acfun豆包doubao
知乎zhihu即梦AIjimeng
美拍meipai微信视频号channels
若链接特征未能识别(如新平台短链),platform 返回 unknown,但不影响解析结果。平台持续更新中,以实际解析结果为准。

GETPOST/parse 解析接口

解析分享链接,返回无水印直链与作品结构化信息。

接口地址
https://qsy.cwj666.top/parse

请求参数

参数名必填类型说明
url是string 作品分享链接,或直接粘贴整段复制文案(自动提取链接)
method否string 解析方案:auto(默认) / self / third。POST 时同样支持传入

请求示例

GET · 浏览器直接访问
https://qsy.cwj666.top/parse?url=https://v.douyin.com/xxxxx/
POST · form 表单
curl -X POST "https://qsy.cwj666.top/parse" \
     -d "url=https://v.douyin.com/xxxxx/"

成功响应(视频示例)

JSON
{
  "code": 200,
  "msg": "解析成功",
  "data": {
    "type": "video",
    "author": "JiuHun",
    "uid": "jiuhunwl",
    "avatar": "https://p26.douyinpic.com/.../100x100/...jpeg",
    "like": 1,
    "time": 1744551760,
    "title": "#步数打卡 #步数排行榜 ...",
    "cover": "https://p3-sign.douyinpic.com/.../540:q75.webp",
    "url": "https://aweme.snssdk.com/aweme/v1/play/?video_id=...",
    "video_url": "https://aweme.snssdk.com/aweme/v1/play/?video_id=...",
    "platform": "douyin",
    "engine": "self",
    "music": {
      "title": "原声标题",
      "author": "JiuHun",
      "url": "https://.../music.mp3"
    }
  }
}

字段说明

字段类型说明
codeint状态码,200 表示成功
msgstring结果描述
data.typestring内容类型:video / image / video_album / live_photo / music
data.urlstring/null无水印视频直链(可直接播放/下载);图集/音乐时可能为 null
data.video_urlstring/nullurl 的别名,两者取值一致
data.imagesstring[]图集图片数组(type=image 时存在)
data.live_photoobject[]实况照片数组,每项含 image/video
data.titlestring作品标题/描述
data.coverstring视频封面图 URL
data.authorstring/object作者昵称,或对象 {name, id, avatar}
data.author_namestring作者昵称(兼容字段)
data.uidstring作者平台唯一 ID/抖音号
data.avatarstring作者头像 URL
data.author_avatarstringavatar 的别名,两者取值一致
data.likeint/string作品点赞数
data.timeint发布时间,Unix 时间戳(秒)
data.platformstring来源平台标识(见「支持平台」)
data.enginestring实际命中的引擎:self / third_party
data.musicobject原声/音乐信息,含 title/url/author/avatar
data.extraobject平台扩展信息(点赞/评论/收藏统计等,原样透传)
解析成功与否不依赖视频直链。只要上游返回了视频/图片/实况/音乐中的任意一种,即返回 code:200。title/cover/author 等字段为「尽力而为」,取决于上游是否返回;至少 type 与对应资源字段之一必然存在。
data 会原样透传上游全部字段(如 extra、hashtags 等),不丢弃任何数据,开发者可直接取用。

GET/proxy 媒体代理

流式媒体代理接口,解决 CDN 防盗链(Referer)导致的 403,可作为播放器 / 图片 / 音频的 src。

接口地址
GET https://qsy.cwj666.top/proxy?url=<媒体直链>
参数名必填类型说明
url是string需要播放/下载的视频、图片、音频直链

特性

  • 后端以浏览器 UA 拉取真实内容并流式转发(自动带平台 Referer 绕过防盗链)
  • 支持 Range 断点请求,视频可拖动进度条
  • 支持 GET / HEAD,自动透传 Content-Type / Content-Length / Content-Range
  • 全局连接池复用,拖动 seek 更流畅

使用示例

HTML
<!-- 视频播放器直接使用代理地址 -->
<video src="https://qsy.cwj666.top/proxy?url=https%3A%2F%2Fv3-dy-o.zjcdn.com%2Fxxx.mp4" controls></video>

<!-- 图片 -->
<img src="https://qsy.cwj666.top/proxy?url=<图片直链>">

<!-- 音乐 -->
<audio src="https://qsy.cwj666.top/proxy?url=<音乐直链>" controls></audio>
使用页面已实现直连优先、代理兜底:播放/下载/封面/音乐一律优先使用 CDN 原直链(全速),仅在防盗链返回 403 时自动回退到本代理接口;下载区同时提供备用代理链接,兼顾速度与可用性。

GET/health 健康检查

返回服务运行状态与版本信息,可用于监控探活。

curl
curl "https://qsy.cwj666.top/health"
JSON
{
  "code": 200,
  "msg": "短视频无水印解析 API 运行中",
  "version": "3.0.0",
  "parse": "/parse?url=<分享链接>&method=auto|self|third",
  "proxy": "/proxy?url=<媒体直链>",
  "engines": { "self": ["douyin", "kuaishou"], "third_party": ["bugpk.com + backup"] },
  "web": "/",
  "docs": "/docs"
}

内容格式

接口支持全部内容格式,通过 data.type 字段标识。

内容格式type 值说明主要字段
视频video普通视频/短视频url / video_url
图集(图文)image多张图片组成images(数组),url 可能为 null
视频图集video_album既有视频又有图集url + images
实况照片live_photo动态照片(图+短视频)live_photo(数组),url 取第一段视频
音乐music音乐/MVmusic.url,url 可能为 null
请先判断 data.type,再选择对应资源字段(视频取 url、图集取 images、实况取 live_photo、音乐取 music.url),避免因 url 为 null 而误判失败。

状态码与错误

HTTP 状态码code说明处理建议
200200解析成功正常取 data
400400缺少 url 参数检查是否传入 url
500500解析失败(上游接口不可用或链接无效)根据 msg 重试,或确认链接有效性

错误响应示例

JSON
{
  "code": 500,
  "msg": "解析失败: 上游接口未返回可用的视频直链",
  "platform": "douyin"
}
仅当链接无效、不支持该平台或上游返回内容不含任何可用内容时,才返回 500。

各语言调用示例

Python(GET)

python
import requests

url = "https://qsy.cwj666.top/parse"
params = {"url": "https://v.douyin.com/xxxxx/"}
resp = requests.get(url, params=params, timeout=15)
data = resp.json()

if data.get("code") == 200:
    info = data["data"]
    print("视频直链:", info["video_url"])
    print("标题:", info.get("title"))
    print("封面:", info.get("cover"))
    print("作者:", info.get("author"))
else:
    print("解析失败:", data.get("msg"))

Python(POST · JSON)

python
import requests

url = "https://qsy.cwj666.top/parse"
resp = requests.post(url, json={"url": "https://v.douyin.com/xxxxx/"}, timeout=15)
data = resp.json()

if data.get("code") == 200:
    info = data["data"]
    print("视频直链:", info["url"])
    print("作者:", info.get("author"))
    print("作者抖音号:", info.get("uid"))
    print("点赞:", info.get("like"))
else:
    print("解析失败:", data.get("msg"))

JavaScript(浏览器 fetch)

javascript
const shareUrl = encodeURIComponent("https://v.douyin.com/xxxxx/");
const resp = await fetch(`https://qsy.cwj666.top/parse?url=${shareUrl}`);
const data = await resp.json();

if (data.code === 200) {
  console.log("视频直链:", data.data.video_url);
  console.log("标题:", data.data.title);
  console.log("封面:", data.data.cover);
}

Node.js

node
const axios = require("axios");

axios.get("https://qsy.cwj666.top/parse", {
  params: { url: "https://v.douyin.com/xxxxx/" },
  timeout: 15000
}).then(res => {
  const data = res.data;
  if (data.code === 200) {
    console.log("视频直链:", data.data.video_url);
  }
}).catch(err => {
  console.error("请求失败:", err.message);
});

PHP

php
<?php
$url = "https://qsy.cwj666.top/parse?url=" . urlencode("https://v.douyin.com/xxxxx/");
$resp = file_get_contents($url);
$data = json_decode($resp, true);

if ($data['code'] === 200) {
    echo "视频直链: " . $data['data']['video_url'];
}
?>

Java

java
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ParseDemo {
    public static void main(String[] args) throws Exception {
        String shareUrl = URLEncoder.encode("https://v.douyin.com/xxxxx/", "UTF-8");
        URL url = new URL("https://qsy.cwj666.top/parse?url=" + shareUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setConnectTimeout(15000);

        BufferedReader reader = new BufferedReader(
            new InputStreamReader(conn.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = reader.readLine()) != null) sb.append(line);
        System.out.println(sb.toString());
    }
}

注意事项与使用规范

  1. 跨域调用:接口已开放 CORS,任意来源前端可直接调用。
  2. 内容格式判断:先判断 data.type,再取对应资源字段。
  3. 使用范围:免费公益服务,请勿用于商业、违法违规或侵权场景。
  4. 上游稳定性:依赖上游服务,无法保证 100% 可用;后端已做主备容灾,偶发失败可重试。
  5. 链接时效性:返回的媒体直链为临时链接,通常数小时内有效,请勿长期缓存。
  6. 请求频率:建议合理调用(每秒不超过几次),恶意刷接口可能导致 IP 被限制。
  7. 异常处理:开发时应兼容 code != 200,并做好网络超时(建议 15 秒以上)。
  8. 版权声明:解析所得内容版权归原平台及原作者所有,请尊重原创。

接口变更记录

  • v3.1.1 · 2026-08-11 — 修复文档页在移动端/小屏右侧出现多余空白(横向溢出):根级 overflow-x 兜底、flex/grid 容器 min-width:0 与 max-width:100%、长 code/标题强制换行、代码块与表格滚动容器加固。
  • v3.1.0 · 2026-08-11 — 自研引擎信息完善:抖音/快手补齐 author 对象、author_avatar、comment_count/collect_count/share_count、music.cover、hashtags、extra.statistics 等字段,对齐第三方接口;页面全面适配手机端(顶部导航固定、按钮触控、表格/代码横向滚动);播放/下载链接直连优先,仅防盗链 403 时才回退代理。
  • v3.0.0 · 2026-08-06 — 双引擎架构:新增自研引擎(self,抖音/快手,零第三方依赖);method 支持 auto/self/third 三方案;前端媒体直连优先,防盗链自动回退代理。
  • v2.4.0 · 2026-08-03 — 新增 /proxy 流式媒体代理接口(防盗链/跨域、Range 断点、GET/HEAD)。
  • v2.3.0 · 2026-08-03 — url 支持整段复制文案;新增在线使用页面与 /health。
  • v2.2.0 · 2026-08-03 — 支持全内容格式(视频/图集/实况/音乐),解析成功不再依赖视频直链。
  • v2.1.0 · 2026-08-03 — /parse 支持 POST;平台识别扩展至 26 个。
  • v2.0.x · 2026-08-03 — 完整透传上游字段;新增双字段兼容(url/video_url 等)。
  • v2.0.0 · 2026-08-02 — 完整结构化字段(标题/封面/作者/统计);platform 平台识别;统一响应结构;开放 CORS。
  • v1.0.0 · 2026-08-01 — 初版,仅返回 video_url。