乐于分享
好东西不私藏

抖音视频解析工具V1.0版本插件源码

抖音视频解析工具V1.0版本插件源码

🚀 脚本名称:抖音视频解析工具V1.0版本

💻 语言:Python 3.1+

————————————

📝 功能介绍

————————————

抖音视频解析,可下载无水印视频、封面、音乐

————————————

————————————

⚠️ 免责声明

————————————

1.本公众号分享的源码及程序仅供学习交流与技术研究之用,严禁用于任何商业或非法用途。

2.本脚本按“现状”提供,不提供任何形式的明示或暗示担保。运行环境差异可能导致意外结果,请在测试环境中先行验证

3.若使用者因参考或运行本文代码造成数据丢失、系统故障或其他损失,本人及本公众号不承担任何法律责任。

4.如涉及第三方API或网站,请遵守其对应平台的 robots.txt协议及相关服务条款。

5.最终解释权归本公众号所有。
合规使用:本代码仅为技术演示。请勿高频请求目标服务器,避免对其造成负担,否则可能面临IP封禁甚至法律风险。

账号安全:请勿将包含个人Token、Cookie或密码的代码直接上传至公开仓库,由此导致的账号被盗责任自负。

禁止滥用:严禁利用本脚本进行网络攻击、数据窃取或任何违反《网络安全法》的行为。

风险自担:一旦运行本程序,即视为您已了解并同意自行承担所有风险。作者不对任何直接或间接损害负责。

————————————

📸 效果预览

————————————

————————————

📄 核心源码

————————————

import timeimport secretsimport hmacimport hashlibimport requestsfrom urllib.parse import urlencodeimport tkinter as tkimport sys# 原API配置API_BASE = "https://api.dog886.com"SECRET_KEY = "your-secret-key-here"  # 请替换为实际密钥def fetch_douyin_video(url: str, extra: dict = None):    """请求 dog886 接口,返回解析后的视频信息"""    if not url or not isinstance(url, str):        raise ValueError("URL 参数无效")    extra = extra or {}    timestamp = int(time.time())    nonce = ''.join(        secrets.choice(            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"        )        for _ in range(16)    )    sign_str = f"{url}{timestamp}{nonce}"    signature = hmac.new(        SECRET_KEY.encode(),        sign_str.encode(),        hashlib.sha256    ).hexdigest()    params = {        "url": url,        "timestamp": timestamp,        "nonce": nonce,        "signature": signature    }    for k in ("id""vid""data"):        if k in extra:            params[k] = extra[k]    full_url = f"{API_BASE}/video.php?{urlencode(params)}"    headers = {        "Accept""application/json",        "Content-Type""application/json"    }    try:        resp = requests.get(full_url, headers=headers, timeout=10)        resp.raise_for_status()        return resp.json()    except requests.exceptions.RequestException as e:        return {"code"500"message"f"请求失败: {str(e)}"}def format_video_info(result: dict, terminal):    """格式化并打印解析结果到终端"""    if result.get("code") != 200:        terminal._print_system_message(f"❌ 解析失败:{result.get('message''未知错误')}""red")        return    data = result.get("data", {})    info = {        "author": data.get("author""未知"),        "title": data.get("title""无标题"),        "like": data.get("like""0"),        "video_url": data.get("url"""),        "cover_url": data.get("cover"""),        "music_url": data.get("music", {}).get("url""")    }    terminal._print_system_message("\n✅ 解析成功!结果如下:""green")    print("\n✅ 解析成功!结果如下:")    time.sleep(0.4)    terminal._print_system_message(f"👤 作者:{info['author']}""cyan")    print(f"👤 作者:{info['author']}")    time.sleep(0.4)    terminal._print_system_message(f"📝 标题:{info['title']}""white")    print(f"📝 标题:{info['title']}")    time.sleep(0.4)    terminal._print_system_message(f"👍 点赞:{info['like']}""yellow")    print(f"👍 点赞:{info['like']}")    time.sleep(0.4)    terminal._print_system_message(f"🎥 视频直链:{info['video_url']}""blue")    print(f"🎥 视频直链:{info['video_url']}")    time.sleep(0.4)    terminal._print_system_message(f"🖼️ 封面图:{info['cover_url']}""blue")    print(f"🖼️ 封面图:{info['cover_url']}")    time.sleep(0.4)    terminal._print_system_message(f"🎵 音乐链接:{info['music_url']}""blue")    print(f"🎵 音乐链接:{info['music_url']}")def douyin_command(terminal, *args):    """    抖音视频解析命令    用法: douyin <抖音链接>    """    if len(args) == 0:        terminal._print_system_message("❌ 请提供抖音链接""red")        terminal._print_system_message("用法: douyin <抖音链接>""yellow")        terminal._print_system_message("示例: douyin https://v.douyin.com/EzisbXWdQLk/""gray")        return    url = args[0]    # 验证是否为抖音链接    if "douyin.com" not in url and "iesdouyin.com" not in url:        terminal._print_system_message("⚠️ 警告:可能不是有效的抖音链接""yellow")    terminal._print_system_message(f"🔍 正在解析: {url}""cyan")    print(f"🔍 正在解析: {url}")    time.sleep(0.4)    try:        result = fetch_douyin_video(url)        format_video_info(result, terminal)    except Exception as e:        terminal._print_system_message(f"❌ 解析出错: {str(e)}""red")def register_commands():    """    必须实现的函数    返回一个字典,键为命令名,值为命令函数    """    return {        "douyin": douyin_command,    }

本源码已开源,可随意修改使用