前言说明

本短视频解析 API 提供便捷的接口服务,支持通过 API 密钥验证 方式安全调用所有平台接口,无功能限制。无论是当前已开放的解析能力,还是后续平台升级新增的短视频解析接口,均可无缝使用。

核心功能

  • 短视频去水印:快速解析并去除短视频水印,保留原画质内容。
  • 常用图集解析:支持解析主流平台图集资源,提取高清图片素材。

服务优势

  • 全接口开放:覆盖现有及未来新增的所有短视频解析接口,满足多样化需求。
  • 安全验证机制:通过 API 密钥验证确保调用安全,保障数据隐私与接口稳定性。

解析支持

支持抖音、快手、小红书、微博、微视、今日头条、西瓜视频、哔哩哔哩、秒抽、美拍、皮皮虾、皮皮搞笑、全民小视频、火山小视频、好看视频、看点视频、全民K歌、看点视频、看点快报、度小视、QQ看点、陌陌、唱吧、YY、小咖秀、糖豆、最左、配音秀、酷狗音乐、酷我音乐、看看视频、梨视频、网易云音乐、大众点评、虎牙视频、懂车帝、剪映、趣头条、美图秀秀、刷宝、迅雷、京东、淘宝、天猫、拼多多、微信公众号、火锅视频、轻视频、百度视频、、微叭、微云、快看点、等等100多个短视频去水印和常用图集解析。

一、接口地址

接口地址为 https://www.yuntts.com/api/v1/tiktok

二、前置条件

通过:https://www.yuntts.com/user/api/  生成自己的秘钥

三、请求方式

支持 GETPOST 请求。

四、请求头

Authorization: Bearer 你的 API 密钥
Content-Type: application/json

五、请求参数

{
    "url": "https://v.douyin.com/F5o2FM6/"
}

六、响应示例

解析成功时,视频响应示例如下:

{
    "code": 200,
    "msg": "解析成功",
    "data": {
        "title": "#beyond #黄家驹 #大地   你知道呢首歌想表達嘅意思係乜嘢嗎 ?",
        "author": "乜秋秋",
        "uid": "QQ166cm",
        "cover": "https://p3-pc-sign.douyinpic.com/tos-cn-p-0015/ebcbce39e0f24ff1944cdc503339d9bf_1646541783~tplv-dy-360p.jpeg?lk3s=138a59ce&x-expires=1748502000&x-signature=yHtFVga9KDcYwG1twLXVy%2BNJDAw%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=origin_cover&biz_tag=pcweb_cover&l=20250515152946EC609EDD948DEE04C163",
        "time": "2025-05-15 15:29:46",
        "url": "https://v26-default.365yg.com/d1b92b0e6620de51dfac1ff720ec60c7/6825c226/video/tos/cn/tos-cn-ve-15-alinc2/e6a536741a0b4a3797ada5b16c28468d/?a=6383&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=920&bt=920&cs=0&ds=4&ft=rVWEerwwZR7Gs0Po0PDS6kwc3RZtGVpUhu9eFtRSVIr12nzXT&mime_type=video_mp4&qs=0&rc=NGQ2Ojw7NDc5MzxmN2Q4NkBpajUzNmU6ZmU2OzMzNGkzM0BiNDAyX2AuNjMxMC5hNWNgYSMwXmlicjRnamZgLS1kLWFzcw%3D%3D&btag=c0000e00008000&cquery=102u_100o_100w_100B_100x&dy_q=1747294186&l=20250515152946EC609EDD948DEE04C163"
    }
}

解析成功时,图集响应示例如下:

{
    "code": "200",
    "msg": "解析成功",
    "info": "本站所有接口仅限学习使用,请勿用于非法途径!",
    "data": {
        "title": "真的有人愿意用兄弟十年单身来换一个这样的女朋友吗#颜值 #氛围感 #图文来了",
        "url": "",
        "cover": "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/94d009bb801d4c7e844721dd612c2171~noop.jpeg?lk3s=138a59ce&x-expires=1748509200&x-signature=NOnQtCqUSLJm2Jj0ey9OGJBU6rQ%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&biz_tag=pcweb_cover&l=20250515170527747D5AC231FE53031941",
        "images": [
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/94d009bb801d4c7e844721dd612c2171~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=8hONTsUlw16sGhgBWvrpfYuYav4%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813c001/1e53975c0b604a64a91b3cb279d8fd10~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=NoAGnt3z1%2FVaSaplFQJSUhF%2BRkE%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/b412e40b62d648e2b05cbc49943708aa~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=vUchb4vFdX%2B4GzSYiu9RXXIuTUs%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813c001/1f7955bca3354071890721dbcefcc637~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=jJNisc1CKM53kbzVmTRu2RcfOzc%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p9-pc-sign.douyinpic.com/tos-cn-i-0813c001/d9d90fef8507405681ada17b412a1bfa~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=JHSRVallmcvRYPWj8GajFeuJGDs%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941"
        ],
        "pics": [
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/94d009bb801d4c7e844721dd612c2171~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=8hONTsUlw16sGhgBWvrpfYuYav4%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813c001/1e53975c0b604a64a91b3cb279d8fd10~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=NoAGnt3z1%2FVaSaplFQJSUhF%2BRkE%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/b412e40b62d648e2b05cbc49943708aa~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=vUchb4vFdX%2B4GzSYiu9RXXIuTUs%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813c001/1f7955bca3354071890721dbcefcc637~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=jJNisc1CKM53kbzVmTRu2RcfOzc%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941",
            "https://p9-pc-sign.douyinpic.com/tos-cn-i-0813c001/d9d90fef8507405681ada17b412a1bfa~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1749891600&x-signature=JHSRVallmcvRYPWj8GajFeuJGDs%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20250515170527747D5AC231FE53031941"
        ],
        "time": "2025-05-15 17:05:28",
        "mp3": "",
        "author": {
            "uid": "28140762319",
            "name": "万花筒.(限流中)"
        }
    }
}

七、参数说明

字段 类型 说明
code int 状态码,“200”表示请求成功
msg string 状态信息,描述操作结果
title string 短视频标题或描述(含话题标签)
url string 解析后的无水印视频播放地址
cover string 短视频封面图片地址
time string 视频发布/解析时间(格式:YYYY-MM-DD HH:mm:ss)
mp3 string 音频下载地址(当前返回为空)
pics string 图集
images string 图集
author object 发布者信息对象
├─ uid string 用户唯一标识符
└─ name string 用户昵称

八、错误处理

1. 缺少 API 密钥

{
    "code": 0,
    "msg": "缺少API密钥",
    "data": []
}

2. API 密钥无效

{
    "code": 0,
    "msg": "API密钥无效",
    "data": []
}

3. 解析次数不足

{
    "code": 0,
    "msg": "解析次数不足",
    "data": []
}

九、参考代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="referrer" content="never">
    <title>Video Parser</title>
    <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.3.3/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
    <div class="container mt-5">
        <h2 class="text-center">Video Parser</h2>
        <div class="row mt-4">
            <div class="col-md-6">
                <div class="mb-3">
                    <label for="videoUrl" class="form-label">Video URL</label>
                    <textarea class="form-control" id="videoUrl" rows="10"></textarea>
                </div>
                <button type="button" class="btn btn-primary me-2" id="parseButton">解析视频</button>
                <a id="downloadButton" class="btn btn-success" style="display: none;">下载视频</a>
            </div>
            <div class="col-md-6">
                <table class="table table-striped" id="resultTable">
                    <thead>
                        <tr>
                            <th scope="col">项目</th>
                            <th scope="col">值</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <th scope="row">标题</th>
                            <td id="videoTitleCell"></td>
                        </tr>
                        <tr>
                            <th scope="row">作者</th>
                            <td id="authorNameCell"></td>
                        </tr>
                        <tr>
                            <th scope="row">图片地址</th>
                            <td id="coverUrlCell"></td>
                        </tr>
                        <tr>
                            <th scope="row">视频地址</th>
                            <td id="videoUrlCell"></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
        <div class="row mt-4">
            <div class="col-md-12">
                <video id="videoPlayer" controls style="max-width: 100%; display: none;"></video>
            </div>
        </div>
    </div>
    <script>
        const API_KEY = "68985a242e655fb2d0194dfb478f1f76";
        const parseButton = document.getElementById('parseButton');
        const resultTable = document.getElementById('resultTable');
        const videoPlayer = document.getElementById('videoPlayer');
        const downloadButton = document.getElementById('downloadButton');
        const videoTitleCell = document.getElementById('videoTitleCell');
        const authorNameCell = document.getElementById('authorNameCell');
        const coverUrlCell = document.getElementById('coverUrlCell');
        const videoUrlCell = document.getElementById('videoUrlCell');

        parseButton.addEventListener('click', () => {
            const videoUrl = document.getElementById('videoUrl').value;
            const apiUrl = '/api/v1/tiktok';
            const data = {
                url: videoUrl
            };
            fetch(apiUrl, {
                method: 'POST',
                headers: {
                    'Authorization': `Bearer ${API_KEY}`,
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify(data)
            })
               .then(response => {
                    if (!response.ok) {
                        throw new Error('Network response was not ok');
                    }
                    return response.json();
                })
               .then(data => {
                    console.log('Success:', data);
                    if (data.code === 200) {
                        videoPlayer.style.display = 'block';
                        downloadButton.style.display = 'inline-block';

                        videoTitleCell.textContent = data.data.title;
                        authorNameCell.textContent = data.data.author.name;
                        coverUrlCell.textContent = data.data.cover;
                        videoUrlCell.textContent = data.data.url;

                        videoPlayer.src = data.data.url;
                        downloadButton.href = data.data.url;
                    }
                })
               .catch((error) => {
                    console.error('Error:', error);
                });
            console.log('Video URL:', videoUrl);
            console.log('API Key:', API_KEY);
        });
    </script>
</body>

</html>

 

curl -X POST \ 
  -H "Authorization: Bearer 4f4e3128b66856908abea9d440657cce" \ 
  -H "Content-Type: application/json" \ 
  -d '{"url": "https://v.douyin.com/F5o2FM6/"}' \ 
  https://www.yuntts.com/api/v1/tiktok
import requests

# 配置信息
api_key = "4f4e3128b66856908abea9d440657cce"
api_url = 'https://www.yuntts.com/api/v1/tiktok'
video_url = 'https://v.douyin.com/F5o2FM6/'

# 准备请求数据和请求头
headers = {
    'Authorization': Bearer api_key,
    'Content-Type': 'application/json'
}

data = {
    'url': video_url
}

# 发送 POST 请求
response = requests.post(api_url, headers=headers, json=data)

# 处理响应
if response.status_code == 200:
    result = response.json()
    print('请求成功:', result)
    if result.get('code') == 200:
        print('视频标题:', result['data']['title'])
        print('视频链接:', result['data']['url'])
else:
    print('请求失败,状态码:', response.status_code)

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。