Skip to content

Felixwang007/TubeSnap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 TubeSnap — YouTube 外文视频一键转中文短视频

版本 Python FastAPI License

AI 驱动的智能翻译 + 风趣口播 + 自动剪辑,3 分钟生成爆款短视频


✨ 核心功能

功能 说明
🔗 视频下载 基于 yt-dlp,自动下载 YouTube 视频和字幕(≥720P)
📝 智能转写 优先使用 YouTube 原生字幕,降级使用 OpenAI Whisper 离线转写
🤖 AI 翻译 DeepSeek 大模型驱动,将外文字幕翻译为风趣幽默的中文口播稿
🗣️ 语音合成 Microsoft Edge-TTS 生成自然流畅的中文配音(5 种音色可选)
✂️ 智能剪辑 按口播时间戳精准截取原视频画面,口型与语音对齐
🎨 字幕烧录 自动生成 SRT 字幕并烧录到视频中,风格可定制
🎵 BGM 混音 自动匹配背景音乐,支持循环/截取,音量可调
📱 竖屏/横屏 支持 9:16 竖屏(抖音/小红书)和 16:9 横屏(B站/YouTube)
实时进度 WebSocket 实时推送处理进度,前端动画展示

🎯 处理流程

粘贴YouTube链接 → 下载视频+字幕 → 提取文字稿 → AI生成口播稿
      ↓
TTS语音合成 → 视频剪辑拼接 → 字幕烧录 → BGM混音 → 成品下载

🚀 快速开始

环境要求

  • Python 3.10+
  • FFmpeg(需在系统 PATH 中可用)
  • DeepSeek API Key(注册获取

安装步骤

# 1. 克隆仓库
git clone https://github.com/felix007/TubeSnap.git
cd TubeSnap

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

# 3. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入你的 DeepSeek API Key

# 4. 准备 BGM(可选)
# 将 .mp3 背景音乐放入 static/assets/bgm/ 目录

# 5. 启动服务
python main.py
#
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

浏览器打开 http://localhost:8000 即可使用。


⚙️ 配置说明

编辑 .env 文件进行个性化配置:

# DeepSeek API(必填)
DEEPSEEK_API_KEY=sk-your-api-key-here
DEEPSEEK_MODEL=deepseek-chat

# 视频下载
VIDEO_MIN_HEIGHT=720          # 最低分辨率
VIDEO_MAX_FILESIZE_MB=500     # 最大文件大小

# 短视频参数
SHORT_VIDEO_MIN_DURATION=180  # 最小时长(秒)
SHORT_VIDEO_MAX_DURATION=300  # 最大时长(秒)

# TTS 配音
TTS_DEFAULT_VOICE=zh-CN-XiaoxiaoNeural
TTS_SPEED_RATE=+10%

# 音频混音
BGM_VOLUME=0.25     # BGM 音量(0-1)
SPEECH_VOLUME=1.0   # 人声音量

可选配音音色

音色 标识符 适合风格
😄 活泼女声(晓晓) zh-CN-XiaoxiaoNeural 风趣幽默
👦 开朗男声(云希) zh-CN-YunxiNeural 科技资讯
👩 知性女声(云健) zh-CN-YunjianNeural 正经解说
👧 温柔女声(晓伊) zh-CN-XiaoyiNeural 温情故事
👨 沉稳男声(云扬) zh-CN-YunyangNeural 严肃分析

📁 项目结构

TubeSnap/
├── main.py                  # FastAPI 主应用入口
├── config.py                # 全局配置管理
├── requirements.txt         # Python 依赖
├── .env.example             # 环境变量模板
│
├── modules/                 # 核心模块
│   ├── pipeline.py          # 管道编排(串联所有步骤)
│   ├── downloader.py        # YouTube 视频下载(yt-dlp)
│   ├── transcriber.py       # 字幕提取 + Whisper 转写
│   ├── translator.py        # AI 翻译 + 口播稿生成(DeepSeek)
│   ├── tts_generator.py     # TTS 语音合成(Edge-TTS)
│   ├── video_editor.py      # 视频剪辑拼接
│   ├── subtitle.py          # 字幕生成(SRT/ASS)+ 烧录
│   ├── audio_mixer.py       # BGM 选取 + 音频混音
│   └── bgm_generator.py     # 演示 BGM 生成
│
├── utils/                   # 工具函数
│   └── ffmpeg_utils.py      # FFmpeg 命令封装
│
├── templates/               # 前端模板
│   ├── index.html           # 主页面(输入 + 进度 + 结果)
│   └── result.html          # 结果展示页
│
├── static/                  # 静态资源
│   ├── css/style.css        # 现代化 UI 样式
│   ├── js/app.js            # 前端交互逻辑
│   └── assets/bgm/          # 背景音乐库
│
└── output/                  # 输出目录(自动创建)
    ├── downloads/           # YouTube 下载缓存
    ├── audio/               # TTS 语音片段
    ├── subtitles/           # SRT 字幕文件
    └── final/               # 最终成品视频

🛠️ 技术栈

层级 技术 用途
Web 框架 FastAPI + Uvicorn HTTP API + WebSocket
模板引擎 Jinja2 服务端渲染页面
下载器 yt-dlp YouTube 视频/字幕下载
语音转写 OpenAI Whisper 离线语音识别(降级方案)
AI 翻译 DeepSeek API(兼容 OpenAI SDK) 字幕翻译 + 口播稿生成
TTS Edge-TTS 中文语音合成
视频处理 FFmpeg 剪辑/字幕烧录/音频混音
前端 原生 HTML/CSS/JS 现代化 UI,无需框架

🎥 口播风格

通过 System Prompt 控制 AI 生成的口播风格:

  • 😄 风趣幽默(默认):接地气、有网感、像朋友聊天
  • 🎙️ 正经解说:专业客观的知识分享
  • 🤖 科技资讯:简洁高效的技术快报
  • 💝 温情故事:温暖细腻的叙事风格

📝 API 接口

方法 路径 说明
GET / 主页面
GET /result/{task_id} 结果页
POST /api/process 提交处理任务
GET /api/status/{task_id} 查询任务状态
GET /api/download/{task_id} 下载成品视频
GET /api/download/srt/{task_id} 下载字幕文件
GET /api/preview/{task_id} 在线预览视频
GET /api/tasks 列出所有任务
WS /ws/progress/{task_id} WebSocket 进度推送

⚠️ 注意事项

  1. API Key 安全:请勿将 .env 文件提交到公开仓库。.gitignore 已配置排除
  2. 网络要求:YouTube 下载需要稳定的网络环境,部分地区可能需要代理
  3. 版权声明:本项目仅供学习交流使用,生成视频请尊重原视频版权
  4. FFmpeg 依赖:确保 FFmpeg 已安装并在系统 PATH 中,或放置于 ffmpeg_extracted/ 目录
  5. 存储空间:视频处理会产生大量临时文件,建议保留至少 5GB 可用空间

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 License

MIT License — 详见 LICENSE 文件

About

AI驱动的YouTube外文视频转中文短视频系统

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors