JX-API

多平台素材链接解析 · 无水印提取 · 代理下载

支持平台 认证方式 解析接口 代理下载 其他接口 错误码 代码示例 内部项目接入 在线测试

支持平台

🎵 抖音 📕 小红书 📺 B站 ⚡ 快手 🌐 微博

支持分享链接、短链接、完整链接,自动识别平台。

认证方式

/api/health 外,所有接口需携带 API Key:

# 方式1: Header (推荐)
X-API-Key: jx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 方式2: Query 参数
?api_key=jx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
API Key 由管理员分配,每个 Key 有独立的速率限制和权限控制。

核心接口: 解析素材

GET /api/parse

传入素材链接,自动识别平台,返回无水印资源地址。

参数类型必填说明
urlstring素材链接(分享链接/短链/完整链接均可)

视频类型返回

{
  "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": "作者昵称"
  }
}
proxyUrl 是服务端代理地址,可直接用于下载/展示,已处理防盗链。
使用时需拼接完整域名: https://jx-api.vipdouyin.cn + proxyUrl,并带上 API Key。

代理下载

GET /api/proxy

代理下载资源,自动处理 Referer/UA 等防盗链头。

参数类型必填说明
urlstring资源原始URL(从 parse 接口获取)
platformstring平台标识(自动识别,建议传)
download-加上此参数触发浏览器下载(Content-Disposition)
# 在线预览
GET /api/proxy?url=https://...&platform=douyin

# 触发下载
GET /api/proxy?url=https://...&platform=douyin&download

其他接口

GET /api/platforms

获取支持的平台列表

Response: { "code": 0, "data": [{"id":"douyin","name":"抖音"}, ...] }

GET /api/health

健康检查(无需认证)

Response: { "code": 0, "msg": "ok", "data": {"service":"jx-api","activeKeys":1} }

错误码

code说明
40000缺少必要参数
40001未提供 API Key
40002无效的 API Key
40003API Key 已禁用
40004API 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}")

内部项目自动获取 Key

内部项目可通过 HMAC 签名自动获取/创建 API Key,无需管理员手动操作。

POST /api/internal/provision-key

参数类型说明
project_idstring项目标识(字母数字连字符,2-64位)
timestampnumber当前时间戳(毫秒),±5分钟有效
signaturestringHMAC-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 })
});
同一 IP 签名错误超过 5 次将被锁定 1 小时。master_secret 请找管理员获取。

在线测试