服务运行中 · 日均 10万+ 调用

短视频无水印解析API服务

当前匿名公开解析以哔哩哔哩 BV/AV 原链接为稳定能力;其他主流平台按实时上游条件明确标注支持等级。

1
稳定媒体平台
BV/AV
推荐输入格式
公开
无需登录内容
实时
能力状态披露

主流平台真实支持等级

只展示经匿名公开样本验证的能力;平台策略变化时,以 API 错误码和状态页为准。

哔哩哔哩 BV/AV
STABLE · 公开媒体直链
哔哩哔哩 b23
PARTIAL · 请优先 BV/AV 原链接
抖音
PARTIAL · 匿名上游可能返回 20005
快手
METADATA_ONLY · 暂不提供媒体下载
小红书
UNAVAILABLE · 匿名访问受限
微博
UNAVAILABLE · 当前公开页面结构受限
TikTok
UNAVAILABLE · 当前匿名上游超时
Instagram
UNAVAILABLE · 当前匿名页面不可解析
YouTube
UNAVAILABLE · 当前匿名上游不可达
Twitter / X
UNAVAILABLE · 当前匿名 oEmbed 不可达

接口调用示例

支持 GET / POST 两种请求方式,统一使用 appId + appKey 鉴权。

在线测试
i 确保后端服务已启动(npm start),登录后自动使用您的 API 密钥进行调用
GET /api/video
curl -X GET "https://YOUR_HOST/api/video?url=https://www.bilibili.com/video/BV..." -H "X-App-Id: YOUR_APP_ID" -H "X-App-Key: YOUR_APP_KEY"

POST 同样支持 POST 请求,参数放在 Body 中(JSON 格式)。

GET /api/video
import requests

url = "https://YOUR_HOST/api/video"
response = requests.get(url, params={"url": "https://www.bilibili.com/video/BV..."}, headers={
    "X-App-Id": "YOUR_APP_ID", "X-App-Key": "YOUR_APP_KEY"
})
data = response.json()

if data["code"] == 200:
    video_url = data["data"]["video_url"]
    print(f"无水印视频: {video_url}")
    print(f"标题: {data['data']['title']}")
    print(f"作者: {data['data']['author']}")
else:
    print(f"错误: {data['message']}")
GET /api/video
const params = new URLSearchParams({
  url: 'https://www.bilibili.com/video/BV...'
});

const response = await fetch(
  `/api/video?${params}`,
  { headers: { 'X-App-Id': 'YOUR_APP_ID', 'X-App-Key': 'YOUR_APP_KEY' } }
);
const data = await response.json();

if (data.code === 200) {
  console.log('无水印视频:', data.data.video_url);
  console.log('标题:', data.data.title);
  console.log('作者:', data.data.author);
} else {
  console.error('错误:', data.message);
}
GET /api/video
<?php
$url = 'https://YOUR_HOST/api/video?' . http_build_query(['url' => 'https://www.bilibili.com/video/BV...']);
$context = stream_context_create(['http' => ['header' => "X-App-Id: YOUR_APP_ID\\r\\nX-App-Key: YOUR_APP_KEY"]]);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);

if ($data['code'] === 200) {
    echo '无水印视频: ' . $data['data']['video_url'] . "\n";
    echo '标题: ' . $data['data']['title'] . "\n";
    echo '作者: ' . $data['data']['author'] . "\n";
} else {
    echo '错误: ' . $data['message'];
}
200 OK 响应示例
{
  "code": 200,
  "message": "success",
  "data": {
    "video_url": "https://upos-sz-...bilivideo.com/...",
    "cover_url": "https://i0.hdslb.com/...jpg",
    "title": "视频标题",
    "author": "作者昵称",
    "platform": "bilibili",
    "duration": 15000
  }
}

注意:CDN 直链有效期为 30 分钟 ~ 2 小时,请及时下载,不要长期缓存视频链接。

常见问题

关于去水印 API 的常见疑问。

去水印是真的"去除"水印吗?
不是图像处理。当前稳定能力仅针对哔哩哔哩公开 BV/AV 链接,返回平台公开播放地址;其他平台的能力以首页等级和 API 错误码为准。
视频链接有效期是多久?
CDN 直链有效期通常为 30 分钟到 2 小时,过期后链接会失效。建议每次需要下载时重新调用 API 获取最新链接,不要长期缓存视频 URL。视频元数据(标题、作者、封面等)可以缓存较长时间。
私密账号的视频能解析吗?
不能。私密账号的视频设置了严格的访问权限,第三方工具无法绕过。API 会返回明确的错误提示"私密视频无法解析"。已删除的视频同样无法解析。
支持哪些清晰度?
哔哩哔哩公开 BV/AV 结果取决于其公开播放接口返回的可用流。其他平台目前不承诺媒体直链。
为什么有时候解析失败?
常见原因包括内容删除、公开性变化,以及匿名上游限流、超时或页面结构变化。服务不接收客户 Cookie,也不绕过登录或验证。

准备好开始了吗?

注册即享每日 100 次免费调用,无需绑定信用卡。

免费体验 在线测试