Skip to content

Repository files navigation

Media-Parser Logo

基于 Python 的多平台媒体原生本地解析系统

License Python Version Flask Docker Support

核心特性支持平台部署指南开发者文档测试自检开发文档联系作者

Media-Parser是一款专为短视频创作者与开发者打造的100%原生本地解析工具

通过“智能识别 -> 本地抓取 -> 提取地址 -> 快捷下载”的闭环,助你高效获取无水印素材。

不依赖外部API,不套壳第三方库,无浏览器开销,纯底层协议与算法逆向。


✨ 核心特性

  • 极速轻量:纯 HTTP 网络协议与底层算法逆向,免启动 Chromium/Playwright 等笨重浏览器,内存占用极低(<100MB),毫秒级极速响应。
  • 原生自主:100% 本地代码闭环抓取,零外部商用 API 或第三方代解析依赖,数据链路自主可控,杜绝断流与隐私泄露风险。
  • 插件化解耦:内置 ParserFactory 模块自动发现与工厂分发机制,50 个平台独立解耦,遵循统一的数据契约,新增与维护平台极度轻松。
  • 开箱即用:提供标准 JSON 接口、Web 体验页与轻量运营控制台,默认内置 SQLite,Docker Compose 一键构建。
  • 访问控制:支持客户注册、管理员配置有效期与积分、API Key 管理、全局与单平台开关、用户总量/单个密钥/平台全局三级 QPS 限流和调用日志。

💾 支持的平台矩阵

平台名称 作者 标题 文案 封面 视频 图集 多视频 实况 音频 字幕
抖音
小红书
视频号
微信公众号
快手
哔哩哔哩
豆包
即梦AI
小云雀AI
可灵AI
海螺AI
夸克AI
通义千问
腾讯元宝
闲鱼
拼多多
Soul
汽水音乐
QQ音乐
网易云音乐
酷狗音乐
配音秀
松果时刻
腾讯频道
剪映 / CapCut
快影
皮皮搞笑
微视
AcFun
西瓜视频
今日头条
绿洲
皮皮虾
全民K歌
新片场
好看视频
梨视频
微博
知乎
虎牙
美拍
最右
番茄小说
红果短剧
红果漫剧
得物
网易LOFTER
星绘AI
央视
央视频

*注:腾讯元宝等极少数平台提取的是官方存储桶原画质直链,素材保留官方原生水印。


🚀 部署指南

Cookie 配置(Docker 与 Python 环境运行通用)

大多数平台无需登录态即可解析,如需按需增强以下特定功能,请先复制环境变量示例文件:

cp .env.example .env

然后在本地 .env 中按需填写对应配置:

  1. 抖音放映厅长视频 (DOUYIN_COOKIE)
    • 仅在解析放映厅/影视长片/演唱会大片等强风控内容时才需要配置。推荐精简 Cookie 配置 s_v_web_id=xxx; __ac_nonce=xxx,该字段不是个人账号登录信息,仅为字节安全 SDK 的人机风控通行证。日常 99% 的普通短视频、图文笔记、LivePhoto、原声音乐等完全免 Cookie 匿名解析
  2. 豆包无水印视频 (DOUBAO_COOKIE)
    • 用于解密获取 1080P 原始纯净无水印视频。由于该字段包含豆包的个人账号登录会话凭证,建议使用闲置小号。推荐精简 Cookie 配置 sessionid_ss=xxx。未配置时仍可解析公开图片与带水印预览切片。
  3. 微信视频号 (YUANBAO_COOKIE)
    • 通过腾讯元宝接口提取视频号原始流、高清图集及背景原声。由于该接口绑定了腾讯元宝的账号会话(属于个人账号登录凭证),建议使用闲置小号。推荐精简 Cookie 配置 hy_user=xxx; hy_token=xxx。未配置时仅可获取公开基础信息(标题/作者/封面)。
  4. 拼多多视频 (PINDUODUO_COOKIE)
    • 用于多多视频原画解析。登录 mobile.yangkeduo.com(拼多多移动网页版)后获取,推荐精简 Cookie 配置 PDDAccessToken=xxx。由于该字段属于个人账号登录凭证,建议使用闲置小号。未配置时仍可免 Cookie 解析商品图与评价素材。

Docker 部署(推荐)

通过 Docker Compose 快捷构建并启动服务;如需配置 Cookie,请先按上方说明配置 .env

# 1. 获取源码
git clone https://github.com/ucmao/media-parser.git
cd media-parser

# 2. 构建并启动服务
docker compose up -d --build

# 3. 查看日志与运行状态
docker compose logs -f web

服务默认监听 8051 端口,启动后直接访问 http://localhost:8051

首次部署请访问 http://localhost:8051/auth/setup 创建管理员,该入口会在管理员创建后自动关闭。用户、API Key、系统配置和自动生成的安全密钥均保存在 ./data 目录,请务必持久化该目录。


Python 环境运行

适用于调试、二次开发或直接在宿主机运行。推荐 Python 3.10+;如需解析豆包或视频号视频,请先按上方说明配置 .env

# 1. 安装依赖
pip install -r requirements.txt

# 2. 启动服务
python app.py

🔌 API 接口

解析媒体

  • 接口GET /api/v1/parse
  • 参数url,视频或图文分享链接
  • 鉴权Authorization: Bearer mp_xxx
curl --get 'http://localhost:8051/api/v1/parse' \
  --header 'Authorization: Bearer mp_xxx' \
  --data-urlencode 'url=https://v.douyin.com/xxx/'

也支持通过 key 查询参数传递密钥,但生产环境不推荐,因为密钥可能被浏览器或代理日志记录:

http://localhost:8051/api/v1/parse?key=mp_xxx&url=https://v.douyin.com/xxx/

客户可在 /console 创建和停用 API Key;管理员可在 /admin 配置客户有效期、积分、QPS 与平台开关。

返回数据

接口以 JSON 格式返回标题、正文、作者及解析出的媒体资源。部分平台可能没有独立标题、封面或主视频;为兼容已有调用方,对应字段会使用正文、首图或首视频兜底。原始正文和图集仍分别保留在 descimage_list 中,多视频内容则通过 video_list 返回。

{
  "retcode": 200,
  "retdesc": "成功",
  "data": {
    "video_id": "7123...",
    "platform": "抖音",
    "title": "视频标题内容",
    "desc": "视频文案内容",
    "video_url": "https://... (主视频地址)",
    "video_list": [
      "https://... (仅多视频/合集内容额外返回,首项与 video_url 相同)"
    ],
    "audio_url": "https://... (背景音乐/独立音频地址)",
    "cover_url": "https://... (高清封面地址)",
    "author": {
      "nickname": "作者昵称",
      "author_id": "作者ID",
      "avatar": "https://..."
    },
    "image_list": [
      "https://... (普通图集地址)",
      {
        "url": "https://... (实况图封面地址)",
        "live_photo_url": "https://... (实况图视频原件地址)"
      }
    ],
    "subtitles": [
      { "start": 0.64, "end": 2.12, "text": "文案/字幕内容" }
    ]
  },
  "succ": true
}

失败时会返回稳定的错误码:

{
  "retcode": 400,
  "retdesc": "该链接尚未支持提取 / 解析失败",
  "data": null,
  "error_code": "PLATFORM_NOT_SUPPORTED",
  "succ": false
}

默认响应还会附带可由管理员配置或关闭的 _tip 服务信息字段。

POST /api/parse 仅供网站首页在线体验使用,不作为客户接入接口。


🧪 自动化测试与健康自检

本项目拥有完备的双层测试体系(Mock 单元测试 + 50 平台真实在线样本库回归)。遇到解析异常或日常部署验证时,可一键运行健康自检:

# 50 平台极速冒烟测试(每个平台测 1 条最具代表性的链接,秒级完成健康检查)
python3 tests/manual_verify_parsers.py --limit 1

# 仅验证单个或指定平台(如:小云雀AI / 抖音)
python3 tests/manual_verify_parsers.py --platform "小云雀AI"

📖 开发者文档与逆向百科

本项目提供了详尽的技术架构与全平台逆向分析手册,详细内容请查阅 docs/ 目录:


📩 联系作者

如果您在安装、使用过程中遇到问题,或有定制需求,请通过以下方式联系:


⚖️ 开源协议 & 免责声明

  1. 本项目基于 MIT LICENSE 协议开源。
  2. 免责声明:本项目仅用于学习交流和技术研究。严禁用于任何非法目的。因滥用本项目造成的后果,由使用者自行承担。

About

Media-Parser是一个高性能RESTful API解析去水印服务,专注于多平台短视频的解析与去水印核心功能。它支持抖音、小红书、视频号、豆包、即梦等50+主流平台,支持获取作者、标题、封面、视频、图集、音频、Live实况等,并提供简洁易用的接口供前端调用。项目采用下载器工厂模式实现平台兼容性,是支撑去水印小程序或Web应用的理想后端解决方案。

Topics

Resources

Security policy

Stars

216 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages