API 文档

概述

短视频去水印API提供统一的视频解析接口,支持抖音、TikTok、小红书、快手、B站等主流短视频平台。开发者只需传入视频链接或分享口令,即可获取无水印视频下载地址。

Base URL:https://your-domain.com

认证方式

API调用需要在请求头中携带API Key:

X-API-Key: wh_your_api_key_here

获取API Key的步骤:

  1. 注册账号并登录
  2. 进入控制台查看API Key
  3. 如需重新生成,可在控制台操作
请妥善保管API Key,不要泄露给他人。如发现泄露,请立即重新生成。

视频解析接口

POST /api/v1/parse

通过POST方式解析视频,适合程序调用。

参数类型必填说明
urlstring视频链接或分享口令

请求示例:

curl -X POST https://your-domain.com/api/v1/parse \
  -H "Content-Type: application/json" \
  -H "X-API-Key: wh_your_api_key_here" \
  -d '{"url": "https://v.douyin.com/xxxxx/"}'

响应示例:

{
  "success": true,
  "platform": "douyin",
  "platform_name": "抖音",
  "title": "视频标题",
  "author": "作者昵称",
  "cover_url": "https://...",
  "video_url": "https://...",
  "video_urls": ["https://..."],
  "music_url": "https://...",
  "images": [],
  "message": ""
}
GET /api/v1/parse

通过GET方式解析视频,适合浏览器直接调用。

参数类型必填说明
urlstring视频链接(需URL编码)

请求示例:

curl "https://your-domain.com/api/v1/parse?url=https%3A%2F%2Fv.douyin.com%2Fxxxxx%2F" \
  -H "X-API-Key: wh_your_api_key_here"
POST /api/parse

网页端解析接口,需要登录后才能使用,每个用户每日免费3次解析额度。

此接口需要 Bearer Token 认证,请先登录获取 Token。

下载说明

解析成功后,API 会返回原始平台的视频下载地址。由于部分平台有防盗链机制,下载方式有所不同:

平台下载方式说明
抖音复制链接到浏览器有防盗链,需复制链接到浏览器地址栏打开
其他平台直接点击下载可直接点击下载按钮保存视频
所有平台都支持复制视频链接,可使用下载工具或浏览器扩展进行下载。

错误码

HTTP状态码说明
200请求成功
400请求参数错误
401未认证或API Key无效
403账号被禁用或权限不足
422参数验证失败
500服务器内部错误

支持平台

平台标识链接格式
抖音douyinv.douyin.com, www.douyin.com
TikToktiktokwww.tiktok.com, vm.tiktok.com
小红书xiaohongshuwww.xiaohongshu.com, xhslink.com
快手kuaishouwww.kuaishou.com, v.kuaishou.com
哔哩哔哩bilibiliwww.bilibili.com, b23.tv
微博weiboweibo.com, m.weibo.cn
今日头条toutiaowww.toutiao.com
西瓜视频xiguawww.ixigua.com
皮皮虾pipixiawww.pipix.com

代码示例

Python
import requests

API_KEY = "wh_your_api_key_here"
BASE_URL = "https://your-domain.com"

def parse_video(url):
    headers = {
        "X-API-Key": API_KEY,
        "Content-Type": "application/json"
    }
    data = {"url": url}
    response = requests.post(f"{BASE_URL}/api/v1/parse", json=data, headers=headers)
    return response.json()

result = parse_video("https://v.douyin.com/xxxxx/")
if result["success"]:
    print(f"标题: {result['title']}")
    print(f"作者: {result['author']}")
    print(f"视频链接: {result['video_url']}")
else:
    print(f"解析失败: {result['message']}")
JavaScript
const API_KEY = 'wh_your_api_key_here';
const BASE_URL = 'https://your-domain.com';

async function parseVideo(url) {
  const response = await fetch(`${BASE_URL}/api/v1/parse`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': API_KEY
    },
    body: JSON.stringify({ url })
  });
  return await response.json();
}

const result = await parseVideo('https://v.douyin.com/xxxxx/');
if (result.success) {
  console.log(`标题: ${result.title}`);
  console.log(`视频链接: ${result.video_url}`);
} else {
  console.log(`解析失败: ${result.message}`);
}
PHP
<?php
$apiKey = 'wh_your_api_key_here';
$baseUrl = 'https://your-domain.com';

function parseVideo($url) {
    global $apiKey, $baseUrl;
    $data = json_encode(['url' => $url]);
    $opts = [
        'http' => [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n" .
                        "X-API-Key: $apiKey\r\n",
            'content' => $data
        ]
    ];
    $context = stream_context_create($opts);
    $result = file_get_contents("$baseUrl/api/v1/parse", false, $context);
    return json_decode($result, true);
}

$result = parseVideo('https://v.douyin.com/xxxxx/');
if ($result['success']) {
    echo "标题: {$result['title']}\n";
    echo "视频链接: {$result['video_url']}\n";
} else {
    echo "解析失败: {$result['message']}\n";
}
?>