多平台视频下载工具 | Multi-Platform Video Downloader
基于 PyQt5 的多平台视频下载工具,支持抖音、YouTube、Twitter/X、寇享(Koushare)视频下载
- 🎬 无水印下载 - 支持下载无水印高清视频
- 📸 图片集支持 - 完整下载抖音图片集内容
- 🔄 智能解析 - 自动识别和解析抖音链接
- 🎬 高质量下载 - 支持4K、1080p等多种画质
- 🎞️ 多格式支持 - MP4、AVI、MKV、MOV等格式
- 🎞️ Shorts支持 - 支持YouTube Shorts短视频
- 📊 详细信息 - 自动获取标题、时长、缩略图
- 🐦 原画质保持 - 保持Twitter视频原始质量
- 🔗 链接识别 - 自动识别推文中的视频链接
- ⚡ 快速下载 - 优化的下载体验
- 📺 回放与视频页支持 - 支持直播回放页和视频详情页下载
- 🎞️ HLS 下载 - 通过 ffmpeg 下载并合并 m3u8 视频流
- 🔽 画质回退 - 优先请求高画质,不可用时自动回退
- 🎯 平台切换 - 直观的平台选择界面
- 📊 实时进度 - 下载进度实时显示
- 🖼️ 视频预览 - 自动生成视频缩略图
- 📁 批量下载 - 支持多个视频同时下载
- 💻 现代 UI - 简洁美观的图形界面
- 🚀 纯 Python 实现 - 无需外部服务,开箱即用
- GUI 框架: PyQt5
- 下载引擎: yt-dlp + 平台定制下载器
- HTTP 请求: requests + httpx
- 视频处理: ffmpeg (用于缩略图提取)
- 日志系统: loguru
- 正则解析: Python re
- Python 3.7 或更高版本
- Windows / macOS / Linux
- FFmpeg (用于视频处理)
- 克隆项目
git clone <项目地址>
cd douyin_app- 安装依赖
pip install -r requirements.txt- 安装 FFmpeg
用于视频缩略图提取和视频处理:
- Windows: 从 ffmpeg.org 下载并添加到 PATH
- macOS:
brew install ffmpeg - Linux:
sudo apt-get install ffmpeg
- 运行程序
python main.py- 选择平台 - 在左侧边栏选择要下载的平台(抖音/YouTube/Twitter/寇享)
- 复制链接 - 复制对应平台的视频链接
- 粘贴下载 - 点击「粘贴链接」按钮,程序自动识别并下载
- 查看进度 - 实时查看下载进度和状态
- 打开文件 - 下载完成后可直接打开所在文件夹
https://v.douyin.com/xxxxx/https://www.douyin.com/video/xxxxxxxhttps://www.iesdouyin.com/share/video/xxxxxxxhttps://dy.tt/xxxxx
https://www.youtube.com/watch?v=xxxxxhttps://youtu.be/xxxxxhttps://www.youtube.com/shorts/xxxxxhttps://www.youtube.com/embed/xxxxx
https://twitter.com/[用户名]/status/[推文ID]https://x.com/[用户名]/status/[推文ID]https://www.twitter.com/i/web/status/[推文ID]https://www.x.com/i/web/status/[推文ID]
https://www.koushare.com/live/details/[liveId]?vid=[videoId]https://www.koushare.com/live/details/[liveId]?videoId=[videoId]https://www.koushare.com/video/details/[videoId]https://www.koushare.com/video/videodetail/[videoId]
- 无水印高清视频下载
- 完整图片集下载
- 自动解析分享文本
- 多画质选择(4K/1080p/720p等)
- 多格式支持(MP4/AVI/MKV/MOV)
- 自动获取视频信息和缩略图
- 支持YouTube Shorts
- 保持原始视频质量
- 快速下载体验
- 自动识别推文视频
- 支持直播回放链接与视频详情页链接
- 通过 Koushare 接口获取播放地址
- 使用 ffmpeg 下载 HLS 视频流
- 高画质不可用时自动回退
douyin_app/
├── main.py # 主程序入口
├── requirements.txt # 依赖包列表
├── README.md # 项目说明文档
├── test_core_functions.py # 核心功能测试
├── core/ # 核心下载模块
│ ├── __init__.py
│ ├── downloader.py # 抖音下载器
│ ├── pure_python_extractor.py # 抖音解析器
│ ├── thumbnail_extractor.py # 缩略图处理
│ ├── youtube_downloader.py # YouTube下载器
│ ├── twitter_downloader.py # Twitter下载器
│ └── koushare_downloader.py # 寇享下载器
├── ui/ # 用户界面模块
│ ├── __init__.py
│ ├── main_window.py # 主窗口
│ ├── sidebar.py # 侧边栏
│ ├── topbar.py # 顶部工具栏
│ ├── video_list.py # 视频列表
│ └── styles.py # 界面样式
├── resources/ # 资源文件
│ └── icons/ # 图标文件
│ └── icons8-youtube-100.png
├── douyin_downloads/ # 抖音下载目录
├── youtube_downloads/ # YouTube下载目录
├── twitter_downloads/ # Twitter下载目录
└── koushare_downloads/ # 寇享下载目录
- 下载引擎: yt-dlp + 平台定制下载器
- GUI框架: PyQt5 (跨平台桌面应用)
- 网络请求: requests + httpx
- 视频处理: FFmpeg
- 日志系统: loguru
- 模块化设计: 每个平台独立的下载模块
- 异步下载: QThread实现多任务并发
- 智能解析: 自动识别和提取视频链接
- 进度监控: 实时显示下载进度和状态
- 错误处理: 完善的异常处理和用户提示
- URL识别: 正则表达式匹配平台URL
- 信息获取: 调用平台解析逻辑获取视频元信息
- 参数配置: 根据用户选择配置下载参数
- 异步下载: QThread工作线程执行下载
- 结果处理: 更新界面和文件信息
默认按平台分别保存到下载目录中:
douyin_downloads/youtube_downloads/twitter_downloads/koushare_downloads/
可以在设置中修改下载路径。
- 视频文件:
{视频标题}_no_watermark.mp4 - 缩略图:
{视频标题}_thumb.jpg - 图片集:
{标题}_1.jpg,{标题}_2.jpg, ...
运行核心功能测试:
python test_core_functions.py测试内容:
- URL识别功能
- URL提取功能
- 下载器初始化
- 格式选择功能
- ✨ 新增YouTube视频下载支持
- ✨ 新增Twitter/X视频下载支持
- ✨ 新增寇享(Koushare)视频下载支持
- 🎞️ 支持寇享直播回放页与视频详情页链接
- 🔽 支持寇享 HLS 下载与画质自动回退
- 🎨 全新界面设计,支持平台切换
- 🔧 重构下载器架构,支持平台定制下载器
- 📱 优化用户体验和界面交互
- 🚀 升级依赖包,支持最新功能
- ✨ 优化下载进度显示
- 🐛 修复文件命名问题
- 📝 完善文档说明
- ✨ 添加图片集下载支持
- 🎨 优化 UI 界面
- 🐛 修复已知 bug
- 🎉 首次发布
- ✨ 基础下载功能
- 💻 PyQt5 GUI 界面
本项目仅供合法用途使用。 在使用下载、解析、平台链接处理等功能前,请先阅读 DISCLAIMER.md。
- 网络环境: 某些地区可能需要代理才能访问YouTube/Twitter
- 版权声明: 请尊重视频内容版权,仅在有合法权限的前提下下载和使用内容
- 存储空间: 确保有足够的磁盘空间存储下载的视频
- 法律合规: 使用本工具请遵守当地法律法规及平台服务条款
- 支持更多视频平台(Bilibili、Instagram等)
- 添加视频格式转换功能
- 实现批量下载和播放列表支持
- 集成字幕下载功能
- 添加下载历史管理
- 支持代理设置
- 开发命令行版本
详细使用与免责说明请见 DISCLAIMER.md。
本工具仅供学习交流使用,请勿用于商业用途。
- 下载的内容版权归原作者所有
- 请尊重原创,合理使用下载内容
- 使用本工具产生的一切后果由使用者自行承担
本项目采用 MIT License 开源协议。
如果这个项目对你有帮助,请给一个 ⭐ Star!
Made with ❤️ by [Your Name]


