小马的 AI 工具集 给 Agent 学习

视频转写

粘贴 YouTube/TikTok/B站等链接,用 AI 转写并总结视频与播客内容

视频转写
类型 应用 2,751 星标 更新 2026-04-30 许可 Apache-2.0 原仓库 主页

AI Video Transcriber

English | 中文

一款基于AI的视频和播客转录与摘要工具——粘贴来自 YouTube、TikTok、Bilibili、Apple Podcasts、SoundCloud等30多个平台的链接,或上传本地文件本地文件(音频、视频或纯文本)。

界面截图

✨ 功能特性

  • 🎥 多平台支持:支持YouTube、TikTok、Bilibili、Apple Podcasts、SoundCloud等30多个平台
  • 📁 本地文件上传:支持拖拽或点击选择文件——支持的格式包括.txt(视为转录文本)、.mp3.mp4.m4a.wav.webm.mkv.mkv.ogg.flac。媒体文件会通过FFmpeg标准化后交由Whisper处理;与URL处理流程相同的优化→翻译→摘要管线
  • 字幕优先架构:对于自带字幕的平台(如YouTube),可直接提取转录文本,无需下载音频。Whisper仅作为备用方案,大幅提升整体处理速度
  • 🗣️ 智能转录:当无字幕可用时,使用Faster-Whisper实现高精度语音转文字
  • 🤖 AI文本优化:自动修正拼写错误、补全句子、智能分段
  • 🌍 多语言摘要:支持生成多种语言的智能摘要
  • 🔧 自带模型:在UI中直接配置任意兼容OpenAI的API端点(OpenAI、OpenRouter、本地LLM等)——输入API Base URL和API Key,点击获取即可自动发现所有可用模型并选择
  • ⚙️ 条件翻译:当摘要语言与源语言不同时,自动翻译转录文本
  • 📱 移动端友好:完美支持移动设备

Star历史图表

🚀 快速开始

前提条件

  • Python 3.8+
  • FFmpeg(yt-dlp音频提取和上传媒体标准化必需)
  • 任意兼容OpenAI的提供商(OpenAI、OpenRouter等)的API密钥——直接在UI中配置,无需服务器端环境变量

安装

方法一:自动安装

# 克隆仓库
git clone https://github.com/wendy7756/AI-Video-Transcriber.git
cd AI-Video-Transcriber

# 运行安装脚本
chmod +x install.sh
./install.sh

方法二:Docker

# 克隆仓库
git clone https://github.com/wendy7756/AI-Video-Transcriber.git
cd AI-Video-Transcriber

# 使用Docker Compose(最简单)
cp .env.example .env
# 如需服务器端默认配置,编辑.env文件(可选)
docker-compose up -d

# 或直接使用Docker
docker build -t ai-video-transcriber .
docker run -p 8000:8000 --env-file .env ai-video-transcriber

该镜像使用Python 3.12(Debian Bookworm),升级pip/setuptools/wheel,然后从requirements.txt安装依赖——与当前Python版本下全新本地虚拟环境相同的版本约束。

方法三:手动安装

  1. 安装Python依赖
# macOS(PEP 668)强烈建议使用虚拟环境
python3 -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
  1. 安装FFmpeg
# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt update && sudo apt install ffmpeg

# CentOS/RHEL
sudo yum install ffmpeg
  1. 配置环境变量 (可选)
# 如需服务器端默认配置,设置以下变量——否则通过UI配置
export OPENAI_API_KEY="your_api_key_here"
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"  # 任意兼容OpenAI的端点

启动服务

python3 start.py

服务启动后,打开浏览器访问http://localhost:8000

生产模式(推荐用于长视频)

为避免长时间处理过程中避免SSE断开连接,请使用生产模式启动(禁用热重载):

python3 start.py --prod

这能确保长时间任务(30-60分钟以上)中SSE连接稳定。

使用显式环境变量运行(示例)

source venv/bin/activate
export OPENAI_API_KEY=your_api_key_here         # 可选:服务器端默认值
# export OPENAI_BASE_URL=https://openrouter.ai/api/v1  # 可选:服务器端默认值
python3 start.py --prod

📖 使用指南

  1. 选择输入方式——URL或文件
    • 视频/播客URL:将YouTube、Bilibili或其他支持平台的链接粘贴到输入框
    • 本地文件:将文件拖拽到虚线上传区域(或点击浏览)。点击转录按钮即可开始任务;上传文件与URL使用相同的API路由(POST /api/process-video,multipart file),便于反向代理仅允许该路径
  2. 选择摘要语言:从输入框旁边的下拉菜单中选择输出语言
  3. (可选)配置AI模型:点击AI设置展开面板
    • 输入API Base URL(如https://openrouter.ai/api/v1)和API Key
    • 点击获取自动加载该提供商的所有模型
    • 选择所需模型——留空则使用服务器默认值
  4. 开始处理:点击转录按钮。对于URL任务,进度条会显示当前模式:
    • ⚡ 字幕(绿色)——找到原生字幕,数秒内提取转录文本
    • 🎙 Whisper(琥珀色)——无可用字幕,下载音频进行转录 对于本地上传,媒体文件会通过FFmpeg标准化后由Whisper转录;纯文本**.txt**文件会跳过下载/Whisper,直接进入文本处理文本管线(优化→摘要,语言不同时进行翻译)。
  5. 查看结果:查看优化后的转录文本和AI摘要
    • 如果转录文本语言≠所选摘要语言,翻译标签页签会自动出现
  6. 下载文件:保存Markdown格式的文件(转录文本/翻译/摘要)

🛠️ 技术架构

后端技术栈

  • FastAPI:现代Python Web框架
  • yt-dlp:视频下载与处理
  • FFmpeg:音频提取与本地上传标准化(Whisper所需的单声道16kHz)
  • Faster-Whisper:高效语音转录
  • OpenAI API:智能文本摘要

前端技术栈

  • HTML5 + CSS3:响应式界面设计
  • JavaScript (ES6+):现代前端交互
  • Marked.js:Markdown渲染
  • Font Awesome:图标库

项目结构

AI-Video-Transcriber/
├── backend/                 # 后端代码
│   ├── main.py             # FastAPI主应用
│   ├── video_processor.py  # 视频处理模块
│   ├── transcriber.py      # 转录模块
│   ├── summarizer.py       # 摘要模块
│   ├── translator.py       # 翻译模块
│   └── llm_sanitize.py     # 后处理LLM输出后处理(去除模板化内容)
├── static/                 # 前端文件
│   ├── index.html          # 主页面
│   └── app.js              # 前端逻辑
├── temp/                   # 临时文件目录
├── Dockerfile              # Docker镜像配置
├── docker-compose.yml      # Docker Compose配置
├── .dockerignore           # Docker忽略规则
├── .env.example            # 环境变量模板
├── requirements.txt        # Python依赖
├── start.py               # 启动脚本
└── README.md              # 项目文档

⚙️ 配置选项

环境变量

变量描述默认值必需
OPENAI_API_KEYAPI 密钥(服务端默认值)-否——也可在 UI 中设置
HOST服务器地址0.0.0.0
PORT服务器端口8000
WHISPER_MODEL_SIZEWhisper 模型尺寸base
UPLOAD_MAX_MB本地文件最大上传大小(MB)200

可选专用端点 POST /api/process-upload 存在,其行为与向 /api/process-video 发送 file 相同。

Whisper 模型尺寸选项

模型参数仅英文多语言速度内存占用
tiny39 M
base74 M中等
small244 M中等中等
medium769 M中等
large1550 M非常慢

🔧 常见问题

问:为什么转录速度慢?

答:转录速度取决于视频长度、Whisper 模型大小和硬件性能。尝试使用更小的模型(如 tiny 或 base)来提高速度。

问:支持哪些视频平台?

答:yt-dlp 支持的所有平台,包括但不限于:YouTube、TikTok、Facebook、Instagram、Twitter、Bilibili、优酷、爱奇艺、腾讯视频等。

问:本地文件类型和大小限制是什么?

答:允许的扩展名包括 .txt.mp3.mp4.m4a.wav.webm.mkv.ogg.flac。默认每个文件最大 200 MB;可通过服务器上的 UPLOAD_MAX_MB 环境变量覆盖。

问:如果 AI 优化功能不可用怎么办?

答:AI 功能需要来自任何兼容 OpenAI 的提供商(OpenAI、OpenRouter 等)的 API 密钥。您可以直接在 UI 中的 AI 设置 面板中输入——无需重启服务器。或者,将 OPENAI_API_KEY 设置为环境变量作为服务端默认值。

问:启动/使用服务时遇到 HTTP 500 错误,为什么?

答:大多数情况下是环境配置问题,而非代码错误。请检查:

  • 确保已激活虚拟环境:source venv/bin/activate
  • 在虚拟环境中安装依赖:pip install -r requirements.txt
  • AI 设置 面板中配置您的 API 密钥,或将 OPENAI_API_KEY 设置为环境变量
  • 安装 FFmpeg:brew install ffmpeg(macOS)/ sudo apt install ffmpeg(Debian/Ubuntu)
  • 如果端口 8000 被占用,停止旧进程或更改 PORT

问:如何处理长视频?

答:系统可以处理任意长度的视频,但处理时间会相应增加。对于非常长的视频,考虑使用更小的 Whisper 模型。

问:如何使用 Docker 部署?

答:Docker 提供了最简单的部署方法:

前提条件:

快速启动:

# 克隆并设置
git clone https://github.com/wendy7756/AI-Video-Transcriber.git
cd AI-Video-Transcriber
cp .env.example .env
# 编辑 .env 文件设置服务端默认值(可选)

# 使用 Docker Compose 启动(推荐)
docker-compose up -d

# 或手动构建并运行
docker build -t ai-video-transcriber .
docker run -p 8000:8000 --env-file .env ai-video-transcriber

常见 Docker 问题:

  • 端口冲突:如果 8000 被占用,更改端口映射 -p 8001:8000
  • 权限不足:确保 Docker Desktop 正在运行且您有适当权限
  • 构建失败:检查磁盘空间(需要约 2GB 可用空间)和网络连接
  • 容器无法启动:使用 docker logs <container_id> 查看 Docker 日志

Docker 命令:

# 查看运行中的容器
docker ps

# 查看容器日志
docker logs ai-video-transcriber-ai-video-transcriber-1

# 停止服务
docker-compose down

# 更改后重新构建
docker-compose build --no-cache

问:内存要求是什么?

答:内存使用量取决于部署方式和工作负载:

Docker 部署:

  • 基础内存:空闲容器约 128MB
  • 处理期间:500MB – 2GB,取决于视频长度和 Whisper 模型
  • Docker 镜像大小:需要约 1.6GB 磁盘空间
  • 推荐:4GB+ RAM 以实现流畅运行

传统部署:

  • 基础内存:FastAPI 服务器约 50–100MB
  • Whisper 模型内存使用
    • tiny:约 150MB
    • base:约 250MB
    • small:约 750MB
    • medium:约 1.5GB
    • large:约 3GB
  • 峰值使用:基础 + 模型 + 视频处理(额外约 500MB)

内存优化技巧:

# 使用更小的 Whisper 模型以减少内存使用
WHISPER_MODEL_SIZE=tiny  # 或 base

# 对于 Docker,可根据需要限制容器内存
docker run -m 1g -p 8000:8000 --env-file .env ai-video-transcriber

# 监控内存使用
docker stats ai-video-transcriber-ai-video-transcriber-1

问:网络连接错误或超时?

答:如果在视频下载或 API 调用过程中遇到网络相关错误,请尝试以下解决方案:

常见网络问题:

  • 视频下载失败,出现“无法提取”或超时错误
  • OpenAI API 调用返回连接超时或 DNS 解析失败
  • Docker 镜像拉取失败或速度极慢

解决方案:

  1. 切换 VPN/代理:尝试连接到不同的 VPN 服务器或更改代理设置
  2. 检查网络稳定性:确保您的互联网连接稳定
  3. 网络更改后重试:更改网络设置后等待 30–60 秒再重试
  4. 使用替代端点:如果使用自定义 OpenAI 端点,请验证它们可从您的网络访问
  5. Docker 网络问题:如果容器网络失败,重启 Docker Desktop

快速网络测试:

# 测试视频平台访问
curl -I https://www.youtube.com/

# 测试您的 AI 提供商端点
curl -I https://openrouter.ai

# 测试 Docker Hub 访问
docker pull hello-world

🎯 支持的语言

转录

  • 通过 Whisper 支持 100+ 种语言
  • 自动语言检测
  • 对主要语言具有高准确度

摘要生成

  • 英语
  • 中文(简体)
  • 日语
  • 韩语
  • 西班牙语
  • 法语
  • 德语
  • 葡萄牙语
  • 俄语
  • 阿拉伯语
  • 以及更多……

📈 性能提示

  • 硬件要求

    • 最低:4GB RAM,双核 CPU
    • 推荐:8GB RAM,四核 CPU
    • 理想:16GB RAM,多核 CPU,SSD 存储
  • 处理时间估算

    视频长度字幕模式Whisper 模式备注
    1 分钟~5 秒30 秒–1 分钟字幕模式无需下载音频
    5 分钟~10 秒2–5 分钟YouTube 自动字幕触发字幕模式
    15 分钟~15 秒5–15 分钟大多数 YouTube 视频支持字幕模式
    30 分钟以上~20 秒15–60 分钟播客/纯音频始终使用 Whisper

🤝 贡献

我们欢迎 Issue 和 Pull Request!

  1. Fork 本仓库
  2. 创建功能分支(git checkout -b feature/AmazingFeature
  3. 提交您的更改(git commit -m '添加了一些 AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 打开 Pull Request

致谢

📞 联系

如有问题或建议,请提交 Issue 或联系 Wendy。


🚀 体验完整产品 — sipsip.ai

此工具是 sipsip.ai 的开源部分。

完整产品更进一步:

  • 📧 每日邮件简报 — 关注你喜欢的创作者,每天早上在收件箱中获取 AI 精选摘要
  • ⚡ 按需转录和总结任何视频或播客
  • 🌐 所有功能均支持多语言

免费开始 — 无需信用卡。

➡️ sipsip.ai


⭐ 星标历史

如果你觉得这个项目有帮助,请考虑给它一个星标!

在 GitHub 查看完整项目