media-parser是一个高性能RESTful API解析去水印服务,专注于多平台短视频的解析与去水印核心功能。它支持抖音、快手、小红书等26主流平台,支持获取作者、标题、封面、视频、图集、音频、Live实况等,并提供简洁易用的接口供前端调用。项目采用下载器工厂模式实现平台兼容性,是支撑短视频去水印小程序或Web应用的理想后端解决方案。
基于 Python 的多平台媒体原生本地解析系统(Starter 极简版)
媒体解析去水印是一款专为短视频创作者打造的原生本地解析工具。
通过“智能识别 -> 本地抓取 -> 提取地址 -> 快捷下载”的闭环,助你高效获取无水印素材。
不依赖第三方解析服务,不中转用户链接,核心解析逻辑全部在本地代码中完成。
💎 核心解析逻辑
- 多平台智能适配:内置
ParserFactory工厂模式,自动识别链接来源并分配对应解析器。 - 原生本地解析:解析逻辑直接内置在项目代码中,由各平台 Parser 本地发起请求并提取真实媒体地址。
- 不依赖第三方解析服务:不接入外部“代解析 API”或 SaaS 中转服务,部署后即可独立运行。
- 纯粹解析 API:极简版只保留最核心的 JSON 解析服务,无数据库依赖,无鉴权门槛,适合开发者快速提取原型直接使用。
✨ 项目特点
- 本地可控:解析链路和请求逻辑都在仓库内,方便审计、调试和二次开发。
- 部署简单:安装 Python 依赖后即可运行,不需要额外申请第三方解析平台账号或密钥。
- 便于扩展:每个平台对应独立 Parser,新增平台时可沿用现有工厂模式和统一返回结构。
💾 支持的平台矩阵
| 平台名称 | 作者 | 标题 | 封面 | 视频 | 图集 | 音频 | 实况 | 平台名称 | 作者 | 标题 | 封面 | 视频 | 图集 | 音频 | 实况 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 抖音 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 小红书 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 快手 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 哔哩哔哩 | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| 皮皮搞笑 | ✓ | ✓ | ✓ | ✓ | 好看视频 | ✓ | ✓ | ✓ | ✓ | ||||||
| 微视 | ✓ | ✓ | ✓ | ✓ | 梨视频 | ✓ | ✓ | ✓ | ✓ | ||||||
| AcFun | ✓ | ✓ | ✓ | ✓ | 微博 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| 西瓜视频 | ✓ | ✓ | ✓ | ✓ | 知乎 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| 逗拍 | ✓ | ✓ | ✓ | 虎牙 | ✓ | ✓ | ✓ | ||||||||
| 绿洲 | ✓ | ✓ | ✓ | 美拍 | ✓ | ✓ | ✓ | ||||||||
| 皮皮虾 | ✓ | ✓ | ✓ | ✓ | 全民小视频 | ✓ | ✓ | ✓ | ✓ | ||||||
| 全民K歌 | ✓ | ✓ | ✓ | 六间房 | ✓ | ✓ | ✓ | ||||||||
| 新片场 | ✓ | ✓ | ✓ | 最右 | ✓ | ✓ | ✓ | ||||||||
| TikTok | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | YouTube | ✓ | ✓ | ✓ | ✓ | ✓ |
🚀 快速开始
当前版本主打“原生本地解析”。只要目标平台仍可通过现有脚本抓取,就不需要额外依赖第三方解析服务。
1. 获取源码
git clone https://github.com/ucmao/media-parser.git
cd media-parser
2. Docker 部署 (推荐)
项目自带完整的 Dockerfile 和 docker-compose 配置文件。如果你已经安装了 Docker,一键即可拉起服务:
# 构建并后台启动容器
docker-compose up -d --build
3. 本地环境部署 (不使用 Docker)
3.1 环境要求
- Python: 3.8 及以上版本
3.2 安装依赖
pip install -r requirements.txt
3.3 启动应用
开发模式:
python app.py
生产模式 (Gunicorn):
gunicorn -w 4 -b 0.0.0.0:8051 app:app
4. 环境变量配置(小红书高级解析,可选)
默认小红书普通分享链接无需Cookie即可解析;仅解析推荐流链接如xsec_source=pc_feed时,才需配置登录Cookie。
Docker/本地部署步骤
- 复制模板生成配置文件
cp .env.example .env
- 在
.env填入小红书Cookie
XIAOHONGSHU_COOKIE="a1=xxx;webId=xxx"
- 启动服务
- Docker:
docker-compose up -d --build - 本地运行:
python app.py
📂 项目结构
media-parser/
├── app.py # 程序入口
├── configs/ # 核心配置与业务常量
├── src/
│ ├── api/ # 路由层:API 接口处理仅保留核心 parse.py
│ ├── parsers/ # 核心:各平台视频解析实现
│ └── parser_factory.py # 工厂模式实现
├── static/ # 静态资源保存位置
├── utils/ # 通用工具函数 (网络请求等)
└── tests/ # 自动化测试用例
🔌 API 核心接口说明
解析接口:POST /api/parse
请求参数 (Request Body)
格式: application/json
| 参数名 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
text |
string |
是 | 视频分享链接或包含链接的文本短语 | "https://v.douyin.com/..." |
返回说明 (Response)
格式: application/json
成功响应示例:
{
"code": 200,
"msg": "成功",
"data": {
"video_id": "7123...",
"platform": "抖音",
"title": "视频标题内容",
"video_url": "https://... (无水印视频真实地址)",
"audio_url": "https://... (背景音乐/音频地址)",
"cover_url": "https://... (高清封面地址)",
"author": {
"nickname": "作者昵称",
"author_id": "作者ID",
"avatar": "https://..."
},
"image_list": [
"https://... (普通图集地址)",
{
"url": "https://... (实况图封面地址)",
"live_photo_url": "https://... (实况图视频原件地址)"
}
]
},
"succ": true
}
失败响应示例:
{
"code": 400,
"msg": "该链接尚未支持提取 / 解析失败",
"data": null,
"succ": false
}
相关导航
暂无评论...






