多平台素材链接解析 · 无水印提取 · 代理下载
支持分享链接、短链接、完整链接,自动识别平台。
除 /api/health 外,所有接口需携带 API Key:
# 方式1: Header (推荐) X-API-Key: jx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 方式2: Query 参数 ?api_key=jx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
传入素材链接,自动识别平台,返回无水印资源地址。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 素材链接(分享链接/短链/完整链接均可) |
{
"code": 0,
"msg": "success",
"data": {
"platform": "douyin",
"platformName": "抖音",
"type": "video",
"videoUrl": "https://www.iesdouyin.com/aweme/v1/play/?video_id=xxx&ratio=1080p",
"proxyUrl": "/api/proxy?url=...&platform=douyin",
"desc": "视频描述文案",
"nickname": "作者昵称",
"awemeId": "7400000000000000000"
}
}
{
"code": 0,
"msg": "success",
"data": {
"platform": "xiaohongshu",
"platformName": "小红书",
"type": "images",
"images": [
{ "url": "https://...", "proxyUrl": "/api/proxy?url=...&platform=xiaohongshu" },
{ "url": "https://...", "proxyUrl": "/api/proxy?url=...&platform=xiaohongshu" }
],
"desc": "笔记描述",
"nickname": "作者昵称"
}
}
https://jx-api.vipdouyin.cn + proxyUrl,并带上 API Key。
代理下载资源,自动处理 Referer/UA 等防盗链头。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 资源原始URL(从 parse 接口获取) |
| platform | string | 否 | 平台标识(自动识别,建议传) |
| download | - | 否 | 加上此参数触发浏览器下载(Content-Disposition) |
# 在线预览 GET /api/proxy?url=https://...&platform=douyin # 触发下载 GET /api/proxy?url=https://...&platform=douyin&download
获取支持的平台列表
Response: { "code": 0, "data": [{"id":"douyin","name":"抖音"}, ...] }
健康检查(无需认证)
Response: { "code": 0, "msg": "ok", "data": {"service":"jx-api","activeKeys":1} }
| code | 说明 |
|---|---|
| 40000 | 缺少必要参数 |
| 40001 | 未提供 API Key |
| 40002 | 无效的 API Key |
| 40003 | API Key 已禁用 |
| 40004 | API Key 已过期 |
| 40010 | 解析失败(链接过期/已删除/格式不支持) |
| 42900 | 超出速率限制 |
所有错误返回格式: {"code": 40001, "msg": "错误描述", "data": null}
# 解析抖音视频 curl -H "X-API-Key: jx_your_key_here" \ "https://jx-api.vipdouyin.cn/api/parse?url=https://v.douyin.com/ixxxxxx/" # 下载视频(通过代理) curl -H "X-API-Key: jx_your_key_here" -o video.mp4 \ "https://jx-api.vipdouyin.cn/api/proxy?url=VIDEO_URL&platform=douyin&download"
const API = 'https://jx-api.vipdouyin.cn';
const KEY = 'jx_your_key_here';
async function parseUrl(url) {
const res = await fetch(
API + '/api/parse?url=' + encodeURIComponent(url),
{ headers: { 'X-API-Key': KEY } }
);
const json = await res.json();
if (json.code !== 0) throw new Error(json.msg);
return json.data;
}
// 使用
const result = await parseUrl('https://v.douyin.com/ixxxxxx/');
if (result.type === 'video') {
console.log('视频:', API + result.proxyUrl + '&api_key=' + KEY);
} else {
result.images.forEach(img => {
console.log('图片:', API + img.proxyUrl + '&api_key=' + KEY);
});
}
import requests
API = 'https://jx-api.vipdouyin.cn'
KEY = 'jx_your_key_here'
def parse_url(url):
r = requests.get(f'{API}/api/parse',
params={'url': url},
headers={'X-API-Key': KEY})
data = r.json()
if data['code'] != 0:
raise Exception(data['msg'])
return data['data']
# 使用
result = parse_url('https://v.douyin.com/ixxxxxx/')
if result['type'] == 'video':
print('视频:', f"{API}{result['proxyUrl']}&api_key={KEY}")
else:
for img in result['images']:
print('图片:', f"{API}{img['proxyUrl']}&api_key={KEY}")
内部项目可通过 HMAC 签名自动获取/创建 API Key,无需管理员手动操作。
| 参数 | 类型 | 说明 |
|---|---|---|
| project_id | string | 项目标识(字母数字连字符,2-64位) |
| timestamp | number | 当前时间戳(毫秒),±5分钟有效 |
| signature | string | HMAC-SHA256(project_id + ":" + timestamp, master_secret) |
# Node.js 示例
const crypto = require('crypto');
const SECRET = 'your_master_secret'; // 找管理员获取
const projectId = 'my-project';
const timestamp = Date.now();
const signature = crypto.createHmac('sha256', SECRET)
.update(projectId + ':' + timestamp).digest('hex');
fetch('https://jx-api.vipdouyin.cn/api/internal/provision-key', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ project_id: projectId, timestamp, signature })
});