原始内容
视频转录工具 (Video Hub)
当前版本: v0.2.4
简体中文 | English
这是一个功能强大的桌面应用程序,使用 PyQt6 构建现代化图形界面,支持 YouTube、Twitter/X、抖音/TikTok、Instagram、Bilibili 等多平台视频内容的智能处理。提供媒体导入与处理、语音转录、双语字幕生成、AI 配音、内容摘要等完整工作流,并配备闲时调度、批量处理、Claude Code Skills 等高级功能。
🆕 最新更新:MiniMax 多音色配音
VideoHub 的 AI 配音现在新增 MiniMax TTS API 后端。除了原来的本地 Kokoro 和 CosyVoice,用户也可以在设置中切换到 MiniMax,并从多个系统音色中选择更合适的声音。
- 多音色选择: 支持中文男声、中文女声、新闻播音、电台主持、青年声线、成熟声线和粤语男声等预置音色
- 可试听再生成: AI 配音页可直接试听当前音色,确认效果后再开始正式配音
- 可自定义 Voice ID: 除预置音色外,也可以手动填写 MiniMax 控制台中的自定义
voice_id - 不影响默认流程: 未切换时仍默认使用本地 Kokoro;CosyVoice 和 MiniMax 都是手动选择的可选后端
- 适合视频解说: 男声播音、主持类音色更适合课程、技术分享、访谈、说明类视频的中文配音
- MiniMax配音的演示视频 youtube https://youtu.be/ns-X5yUb4gE
✨ 加入讨论群

✨ 核心功能
🎬 多平台视频处理
- 🎥 平台支持: YouTube、Twitter/X、抖音、Bilibili 等主流视频平台
- 智能处理: 支持视频/音频导入与本地处理,可选择完整视频或仅音频模式
- 精准转录: 基于 OpenAI Whisper 的高质量语音转录技术
- 多格式字幕: 生成 .srt、.vtt、.ass 等多种格式的双语字幕文件
- 字幕嵌入: 支持将字幕直接嵌入到视频文件中
- AI 配音: 默认使用 Kokoro TTS,也可手动切换到 CosyVoice SFT / Instruct 或 MiniMax API,生成更自然的中文配音版本视频
- 内容摘要: 利用 LLM(支持 OpenAI、DeepSeek 等)智能生成文章摘要
🌐 Chrome浏览器扩展
- 页面集成: 在 YouTube、Twitter/X、Bilibili 视频页面自动添加处理按钮
- 一键加入队列: 点击按钮即可将任务添加到闲时处理队列
- 队列管理: 通过扩展弹窗查看、导出、清空处理队列
- 实时同步: 通过 HTTP API 与桌面应用实时通信
- 智能识别: 自动提取视频标题、作者、链接等信息
- 视觉反馈: 添加成功后按钮状态变化,避免重复添加
正确安装插件后,在X/YouTube等视频网站,视频下方会出现处理按钮,后台运行主程序后,点击按钮即可把当前任务加入处理队列。
📱 手机本地网页下载
- 局域网访问: 在电脑上启动轻量网页端后,iPhone/手机可通过同一 Wi-Fi 下的局域网地址访问
- 手机粘贴链接: 手机浏览器中长按输入框粘贴视频链接,点击按钮即可触发本地下载
- 下载到手机相册: 下载完成后页面会提供视频预览、打开视频和下载入口,iPhone 可通过 Safari 分享菜单保存到相册
- 本地保存: 下载文件统一保存在电脑的
workspace/mobile/目录,便于后续管理和清理

启动方式:
python src/mobile_web_server.py
启动后终端会显示类似 http://局域网IP:8787 的手机访问地址。手机和电脑需要连接到同一个局域网;如果无法访问,请检查 Windows 防火墙是否允许 8787 端口。
免责声明
本项目仅供合法、合规且经授权的用途使用。使用涉及第三方平台内容、Cookie、Token、录制、导入或处理功能前,请先阅读 DISCLAIMER.md。
使用方法
1.处理 YouTube 视频列表
比如斯坦福CS231N这个视频列表:
https://www.youtube.com/playlist?list=PLoROMvodv4rOmsNzYBMe0gJY2XS8AQg16

复制好视频列表连接,在软件视频URL中右键,会直接粘贴视频的连接。

勾选下面的选项,可以保存视频、获取原生英文字幕;如果没有原生字幕,也可以用 whisper 做语音转字幕,勾选生成字幕并翻译,这样就有了视频和双语字幕,方便学习研究。翻译字幕使用的是谷歌翻译,翻译时间会比较久;如果列表中文件较多,可以先完成媒体处理,再选中视频目录单独进行字幕提取和翻译。下图就是显示出来的双语字幕。

2.批量翻译字幕
在软件中选中本地视频,勾选批量处理,选中要处理的目录,把要处理的项勾选上,让它自己处理就可以了,这个列表共有18个视频,翻译花了好长时间。仅供参考。

3.抖音内容处理
在抖音PC版上点分享,复制连接,直接在视频URL中右键直接粘贴连接,勾选你要处理的项,可以进行媒体处理和摘要提取等。


4.处理 X 视频链接
类似这种连接,页面有一个视频。
https://x.com/tanchibu37099/status/2000362448982102119
复制好连接,在视频URL中右键直接粘贴连接,即可加入处理流程。
5.插件使用
把项目中的chrome_extension整个文件夹拖到Edge或者Chrome浏览器中的扩展中,就完成了插件安装。安装成功后,扩展栏会有一个图标。在支持的视频正下方会有处理按钮,点击后会把当前任务加入到处理队列中。

🔄 批量处理
- 多平台批处理: 支持混合处理不同平台的视频链接
- 文件导入: 可从文本文件批量导入 URL 列表
- 进度跟踪: 实时显示批量任务的处理进度和结果
⏰ 闲时调度系统
- 智能调度: 设置闲时时间段(如晚上23:00-早晨07:00),自动执行处理任务
- 任务队列: 白天将任务添加到队列,闲时自动依次执行
- 灵活控制: 支持暂停/恢复、立即执行、任务重排等操作
- 可视化管理: 专门的"闲时队列"标签页,实时查看和管理任务状态
🎙️ AI 配音
- 样片演示: CosyVoice 中文配音合成样片
- 默认后端: 默认使用原来的 Kokoro TTS,支持晓贝、晓晓、晓艺、云健、云扬等中文音色
- CosyVoice 后端: 可在设置中手动切换到 CosyVoice SFT 或 CosyVoice Instruct,支持中文女、中文男、粤语女、英文女等音色
- MiniMax 后端: 可在设置中手动切换到 MiniMax API,支持中文男声、中文女声、新闻播音、电台主持、青年声线、成熟声线和粤语男声等系统音色
- 音色试听: 配音页可直接试听当前音色,试听文件会缓存到
workspace/dubbing_temp/voice_previews/,再次试听同一配置时直接播放旧文件 - 智能转录: 自动将视频语音转录为字幕
- 流畅合成: 保持原始视频节奏,自动填充静音
- 灵活输出: 可选择保留原声背景音,调节背景音音量
输出目录: 配音文件保存在 workspace/dubbing_temp/ 目录,完成后生成 {原文件名}_中文配音.mp4
使用 CosyVoice 配音
CosyVoice 作为可选本地 TTS 后端,需要先启动独立服务:
python tts_service.py --host 127.0.0.1 --port 8877
服务启动后,在 VideoHub 中进入 设置 -> TTS 配音设置:
TTS 引擎版本选择CosyVoice SFT或CosyVoice Instruct- 确认
CosyVoice 服务地址为http://127.0.0.1:8877 - 选择 CosyVoice 音色,例如
中文女或中文男 - 如果使用
CosyVoice Instruct,填写朗读指令,例如“用自然、清晰、适合视频讲解的语气朗读” - 保存设置后,到
AI配音页面点击音色旁边的试听 - 确认音色效果后,选择 YouTube 链接、本地视频或已有字幕,点击
开始配音
切换到 CosyVoice 后,AI 配音页的音色列表会自动从 Kokoro 的“晓贝/晓晓/云健”等切换为 CosyVoice 的“中文女/中文男/粤语女”等。未手动切换时,VideoHub 仍保持原来的 Kokoro 配音流程。
使用 MiniMax API 配音
MiniMax 是外部付费 TTS API,适合想快速获得更多中文音色选择、又不想在本地加载大模型的场景。
在 VideoHub 中进入 设置 -> TTS 配音设置:
TTS 类型和引擎选择外部付费 - MiniMax API- 填写
MiniMax API Key - 选择模型,例如
speech-2.8-turbo或speech-2.8-hd - 在
MiniMax 音色中选择男声、女声、播音、主持等预置音色 - 如需使用自定义声音,可直接在音色框中填写自己的
voice_id - 保存设置后,到
AI配音页面点击音色旁边的试听 - 确认音色效果后,选择 YouTube 链接、本地视频或已有字幕,点击
开始配音
切换到 MiniMax 后,AI 配音页的音色列表会自动显示 MiniMax 的系统音色。试听和正式配音都会使用当前选中的音色;如果没有配置 MiniMax API Key,不会影响 Kokoro 和 CosyVoice 的本地配音流程。
🤖 项目级 Skills
本项目在 .agents/skills/ 下维护了一组项目级 skills,供 Codex、Claude Code 等智能编码助手读取。它们不是业务运行时依赖,也不会替代 GUI 或 CLI;它们的作用是让智能助手在处理 VideoHub 相关任务时,优先复用当前项目已有入口、脚本和约定,减少重复造轮子或误用过期路径。
| Skill | 适用场景 | 主要复用入口 |
|---|---|---|
videohub |
总入口与任务路由,判断应使用哪个子 skill | main.py、src/youtube_transcriber.py |
videohub-youtube |
YouTube、Twitter/X、Bilibili、本地音视频/文本的转写、字幕、翻译和总结 | python src/youtube_transcriber.py --help |
videohub-douyin |
抖音单视频和用户主页作品下载 | python src/douyin_cli.py <url> |
videohub-queue |
闲时队列、Chrome/Edge 扩展、本地 API 排查 | src/api_server.py、http://127.0.0.1:8765 |
videohub-ffmpeg |
FFmpeg 状态检查、路径配置、模式切换、下载和测试 | python src/ffmpeg_config_cli.py help |
videohub-subtitles |
字幕生成后的烧录、视频合成、独立字幕合成工具说明 | embed_subtitles_to_video()、python src/subtitle_merger.py |
videohub-live |
直播录制依赖、配置和运行状态诊断 | src/live_recorder_adapter.py |
常见同步点:
- 字幕翻译默认使用 Google;如果 Google 失败,会尝试 DeepSeek/OpenAI 作为备用翻译。
- 字幕目标语言支持
zh-CN、zh-TW、en、ja、ko、ru、fr、de、es、it、pt、ar,默认zh-CN。 - 字幕烧录主流程复用
src/youtube_transcriber.py中的embed_subtitles_to_video();独立 GUI 工具为src/subtitle_merger.py。 - 抖音用户主页下载已有入口,但通常需要有效 Cookie 和相关依赖,实际可用性以运行结果为准。
🖼️ 应用界面
主界面标签页
- 在线视频: 单个视频处理,支持 YouTube、Twitter、X、抖音等多平台
- 本地音频/视频: 处理本地媒体文件
- 批量处理: 批量处理多个不同平台的视频链接
- 闲时队列: 可视化任务队列管理和闲时调度控制
- 直播录制: 多平台直播监控与录制相关功能
- 处理历史: 查看所有处理过的任务记录
- 设置: API 配置、模板管理、闲时设置

🛠️ 安装配置
系统要求
- Python 3.8+
- Windows/macOS/Linux
- 8GB+ RAM(推荐用于 Whisper 模型)
- FFmpeg(直播录制必需)
- Chrome浏览器(使用浏览器扩展时)
1. 环境准备
# 克隆仓库
git clone git@github.com:cacity/VideoHub.git
cd VideoHub
# 创建虚拟环境(推荐)
conda create -n VideoHub python=3.12
conda activate VideoHub
# 安装依赖
pip install -r requirements.txt
核心依赖
PyQt6 # 现代化GUI框架
yt-dlp # 多平台媒体获取与处理支持
openai-whisper # 语音转录
openai # OpenAI API
requests # HTTP请求
python-dotenv # 环境变量管理
flask # API服务器
flask-cors # 跨域支持
asyncio # 异步IO(直播录制)
2. 配置设置
API 密钥配置
在应用的"设置"标签页中配置以下 API 密钥:
# OpenAI API (用于GPT模型)
OPENAI_API_KEY=sk-your-openai-api-key
# DeepSeek API (国内替代方案)
DEEPSEEK_API_KEY=your-deepseek-api-key
# 代理设置(如需要)
PROXY=http://proxy.example.com:8080
闲时设置
- 默认闲时:23:00 - 07:00
- 可在"设置"或"闲时队列"页面自定义时间段
3. 安装 FFmpeg(直播录制必需)
FFmpeg 是直播录制功能的必需组件。应用会自动检测并尝试安装:
# 运行自动安装脚本
python ffmpeg_install.py
手动安装方式:
- Windows: 下载 FFmpeg 并添加到系统 PATH
- macOS:
brew install ffmpeg - Linux:
sudo apt-get install ffmpeg或sudo yum install ffmpeg
4. 安装 Chrome 浏览器扩展(可选)
如果需要使用浏览器扩展功能:
- 打开 Chrome 浏览器,访问
chrome://extensions/ - 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择项目中的
chrome_extension文件夹 - 扩展将出现在扩展程序列表中
5. 运行应用
# 启动桌面应用(包含 HTTP API 服务器)
python main.py
# 启动手机本地网页下载服务(局域网访问,默认端口 8787)
python src/mobile_web_server.py
# 启动 CosyVoice TTS 服务(使用 CosyVoice 配音前启动)
python tts_service.py --host 127.0.0.1 --port 8877
# 或使用抖音处理命令行工具
python douyin_cli.py <抖音视频URL>
📂 项目结构
VideoHub/
├── 📁 核心文件
│ ├── main.py # PyQt6 GUI 主程序(整合所有功能)
│ ├── api_server.py # HTTP API 服务器(供Chrome扩展调用)
│ ├── tts_service.py # CosyVoice 本地 TTS 服务
│ ├── douyin_cli.py # 抖音命令行处理工具
│ ├── live_recorder_adapter.py # 直播录制适配器
│ ├── mobile_web_server.py # 手机局域网网页下载服务
│ ├── ffmpeg_install.py # FFmpeg 自动安装脚本
│ ├── msg_push.py # 消息推送模块
│ └── requirements.txt # Python 依赖
├── 📁 Chrome扩展
│ ├── chrome_extension/
│ │ ├── manifest.json # 扩展配置文件
│ │ ├── background.js # 后台服务脚本
│ │ ├── content-scripts/ # 页面内容脚本
│ │ │ ├── youtube.js
│ │ │ ├── twitter.js
│ │ │ ├── bilibili.js
│ │ │ └── styles.css
│ │ ├── popup/ # 扩展弹窗界面
│ │ │ ├── popup.html
│ │ │ ├── popup.js
│ │ │ └── popup.css
│ │ └── icons/ # 扩展图标
├── 📁 抖音下载模块
│ ├── douyin/ # 抖音视频解析和下载
│ │ ├── parser.py # URL解析
│ │ ├── downloader.py # 视频下载
│ │ ├── video_extractor.py # 视频提取器
│ │ └── ...
│ └── douyinVd/ # Deno实现的备用下载方案
├── 📁 直播录制模块
│ ├── live_recorder/
│ │ ├── spider.py # 直播平台爬虫
│ │ ├── stream.py # 直播流处理
│ │ ├── room.py # 直播间管理
│ │ └── ...
│ └── live_config/
│ ├── config.ini # 直播录制配置
│ └── URL_config.ini # 直播间URL列表
├── 📁 输出目录
│ ├── downloads/ # 多平台音频文件 (.mp3)
│ ├── videos/ # 多平台视频文件 (.mp4/.webm/.mov等)
│ ├── douyin_downloads/ # 抖音视频输出目录
│ ├── live_downloads/ # 直播录制文件 (.ts/.flv/.mp4)
│ ├── mobile/ # 手机网页端下载文件
│ ├── transcripts/ # 转录文本 (.txt)
│ ├── subtitles/ # 字幕文件 (.srt/.vtt/.ass)
│ ├── summaries/ # 文章摘要 (.md)
│ └── dubbing_temp/ # AI 配音临时文件
├── 📁 配置目录
│ ├── templates/ # 自定义文章模板
│ ├── icons/ # 应用图标资源
│ └── logs/ # 下载历史记录
└── 📁 配置文件
├── .env # 环境变量(API密钥等)
└── idle_queue.json # 闲时队列数据
🌐 支持的平台
主要支持平台
- 🎬 YouTube: 完整支持,包括私有视频(需Cookie)
- 🐦 Twitter/X: 支持视频推文,可能需要登录状态
- 📱 抖音: 支持抖音链接识别与媒体处理
- 📺 Bilibili: 支持 B 站视频处理
- 🌍 其他平台: 基于 yt-dlp 支持的 1000+ 网站
平台特性对比
| 平台 | 媒体处理 | 音频提取 | 字幕支持 | Cookie需求 | 特色功能 |
|---|---|---|---|---|---|
| YouTube | ✅ 完整支持 | ✅ 高质量 | ✅ 多语言 | 部分视频需要 | 原生字幕提取 |
| Twitter/X | ✅ 支持 | ✅ 支持 | ✅ 转录生成 | 推荐使用 | 短视频优化 |
| 抖音 | ✅ 支持 | ✅ 高质量 | ✅ 转录生成 | 视场景而定 | 智能分享识别 |
| Bilibili | ✅ 支持 | ✅ 支持 | ✅ 转录生成 | 部分内容需要 | 弹幕处理 |
🤝 贡献
欢迎对本项目进行贡献!
贡献方式
- 🐛 报告 Bug: 创建 Issue
- 💡 功能建议: 提交 Feature Request
- 🔀 代码贡献: 提交 Pull Request
- 📖 文档改进: 完善使用说明
📄 许可证
本项目采用 MIT 许可证,允许自由使用、修改和分发。使用涉及第三方平台内容、Cookie、Token、录制或批量处理等功能前,请先阅读 DISCLAIMER.md。
🌟 致谢
感谢以下开源项目的支持:
- PyQt6 - 现代化GUI框架
- yt-dlp - 多平台视频下载工具(支持1000+网站)
- OpenAI Whisper - 语音识别模型
- OpenAI API - 大语言模型服务
Star History
⭐ 如果这个项目对您有帮助,请给个 Star 支持一下!
