# AI-Video-Transcriber **Repository Path**: xnhub/AI-Video-Transcriber ## Basic Information - **Project Name**: AI-Video-Transcriber - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-24 - **Last Updated**: 2025-12-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: GitHub ## README
# AI视频转录器 中文 | [English](README.md) 一款开源的AI视频转录和摘要工具,支持YouTube、Bilibili、抖音等30+平台。 ![Interface](cn-video.png)
## ✨ 功能特性 - 🎥 **多平台支持**: 支持YouTube、Bilibili、抖音等30+平台 - 🗣️ **智能转录**: 使用Faster-Whisper模型进行高精度语音转文字 - 🤖 **AI文本优化**: 自动错别字修正、句子完整化和智能分段 - 🌍 **多语言摘要**: 支持多种语言的智能摘要生成 - ⚡ **实时进度**: 实时进度跟踪和状态更新 - ⚙️ **条件式翻译**: 当所选摘要语言与检测到的转录语言不一致时,自动调用GPT‑4o生成翻译 - 📱 **移动适配**: 完美支持移动设备 ## 🚀 快速开始 ### 环境要求 - Python 3.8+ - FFmpeg - 可选:OpenAI API密钥(用于智能摘要功能) ### 安装方法 #### 方法一:自动安装 ```bash # 克隆项目 git clone https://github.com/wendy7756/AI-Video-Transcriber.git cd AI-Video-Transcriber # 运行安装脚本 chmod +x install.sh ./install.sh ``` #### 方法二:Docker部署 ```bash # 克隆项目 git clone https://github.com/wendy7756/AI-Video-Transcriber.git cd AI-Video-Transcriber # 使用Docker Compose(最简单) cp .env.example .env # 编辑.env文件,设置你的OPENAI_API_KEY docker-compose up -d # 或者直接使用Docker docker build -t ai-video-transcriber . docker run -p 8000:8000 -e OPENAI_API_KEY="你的API密钥" ai-video-transcriber ``` #### 方法三:手动安装 1. **安装Python依赖**(建议使用虚拟环境) ```bash # 创建并启用虚拟环境(macOS推荐,避免 PEP 668 系统限制) python3 -m venv venv source venv/bin/activate python -m pip install --upgrade pip pip install -r requirements.txt ``` 2. **安装FFmpeg** ```bash # macOS brew install ffmpeg # Ubuntu/Debian sudo apt update && sudo apt install ffmpeg # CentOS/RHEL sudo yum install ffmpeg ``` 3. **配置环境变量**(摘要/翻译功能需要) ```bash # 必需:启用智能摘要/翻译 export OPENAI_API_KEY="your_api_key_here" # 可选:如使用自建/代理的OpenAI兼容网关,按需设置 export OPENAI_BASE_URL="https://oneapi.basevec.com/v1" ``` ### 启动服务 ```bash python3 start.py ``` 服务启动后,打开浏览器访问 `http://localhost:8000` #### 生产模式(推荐用于长视频) 为了避免在处理长视频时SSE连接断开,建议使用生产模式启动(禁用热重载): ```bash python3 start.py --prod ``` 这样可以在长时间任务(30-60+分钟)中保持SSE连接稳定。 #### 使用显式环境变量启动(示例) ```bash source venv/bin/activate export OPENAI_API_KEY=your_api_key_here # export OPENAI_BASE_URL=https://oneapi.basevec.com/v1 # 如使用自定义端点 python3 start.py --prod ``` ## 📖 使用指南 1. **输入视频链接**: 在输入框中粘贴YouTube、Bilibili等平台的视频链接 2. **选择摘要语言**: 选择希望生成摘要的语言 3. **开始处理**: 点击"开始"按钮 4. **监控进度**: 观察实时处理进度,包含多个阶段: - 视频下载和解析 - 使用Faster-Whisper进行音频转录 - AI智能转录优化(错别字修正、句子完整化、智能分段) - 生成选定语言的AI摘要 5. **查看结果**: 查看优化后的转录文本和智能摘要 - 如果转录语言 ≠ 所选摘要语言,会显示第三个标签页"翻译",包含翻译后的转录文本 6. **下载文件**: 点击下载按钮保存Markdown格式的文件(转录/翻译/摘要) ## 🛠️ 技术架构 ### 后端技术栈 - **FastAPI**: 现代化的Python Web框架 - **yt-dlp**: 视频下载和处理 - **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 # 翻译模块 ├── static/ # 前端文件 │ ├── index.html # 主页面 │ └── app.js # 前端逻辑 ├── temp/ # 临时文件目录 ├── Docker相关文件 # Docker部署 │ ├── Dockerfile # Docker镜像配置 │ ├── docker-compose.yml # Docker Compose配置 │ └── .dockerignore # Docker忽略规则 ├── .env.example # 环境变量模板 ├── requirements.txt # Python依赖 └── start.py # 启动脚本 ``` ## ⚙️ 配置选项 ### 环境变量 | 变量名 | 描述 | 默认值 | 必需 | |--------|------|--------|------| | `OPENAI_API_KEY` | OpenAI API密钥 | - | 否 | | `HOST` | 服务器地址 | `0.0.0.0` | 否 | | `PORT` | 服务器端口 | `8000` | 否 | | `WHISPER_MODEL_SIZE` | Whisper模型大小 | `base` | 否 | ### Whisper模型大小选项 | 模型 | 参数量 | 英语专用 | 多语言 | 速度 | 内存占用 | |------|--------|----------|--------|------|----------| | tiny | 39 M | ✓ | ✓ | 快 | 低 | | base | 74 M | ✓ | ✓ | 中 | 低 | | small | 244 M | ✓ | ✓ | 中 | 中 | | medium | 769 M | ✓ | ✓ | 慢 | 中 | | large | 1550 M | ✗ | ✓ | 很慢 | 高 | ## 🔧 常见问题 ### Q: 为什么转录速度很慢? A: 转录速度取决于视频长度、Whisper模型大小和硬件性能。可以尝试使用更小的模型(如tiny或base)来提高速度。 ### Q: 支持哪些视频平台? A: 支持所有yt-dlp支持的平台,包括但不限于:YouTube、抖音、Bilibili、优酷、爱奇艺、腾讯视频等。 ### Q: AI优化功能不可用怎么办? A: 转录优化和摘要生成都需要OpenAI API密钥。如果未配置,系统会提供Whisper的原始转录和简化版摘要。 ### Q: 出现 500 报错/白屏,是代码问题吗? A: 多数情况下是环境配置问题,请按以下清单排查: - 是否已激活虚拟环境:`source venv/bin/activate` - 依赖是否安装在虚拟环境中:`pip install -r requirements.txt` - 是否设置 `OPENAI_API_KEY`(启用摘要/翻译所必需) - 如使用自定义网关,`OPENAI_BASE_URL` 是否正确、网络可达 - 是否已安装 FFmpeg:macOS `brew install ffmpeg` / Debian/Ubuntu `sudo apt install ffmpeg` - 8000 端口是否被占用;如被占用请关闭旧进程或更换端口 ### Q: 如何处理长视频? A: 系统可以处理任意长度的视频,但处理时间会相应增加。建议对于超长视频使用较小的Whisper模型。 ### Q: 如何使用Docker部署? A: Docker提供了最简单的部署方式: **前置条件:** - 从 https://www.docker.com/products/docker-desktop/ 安装Docker Desktop - 确保Docker服务正在运行 **快速开始:** ```bash # 克隆和配置 git clone https://github.com/wendy7756/AI-Video-Transcriber.git cd AI-Video-Transcriber cp .env.example .env # 编辑.env文件设置你的OPENAI_API_KEY # 使用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空闲空间)和网络连接 - **容器无法启动**:验证.env文件存在且包含有效的OPENAI_API_KEY **Docker常用命令:** ```bash # 查看运行中的容器 docker ps # 检查容器日志 docker logs ai-video-transcriber-ai-video-transcriber-1 # 停止服务 docker-compose down # 修改后重新构建 docker-compose build --no-cache ``` ### Q: 内存需求是多少? A: 内存使用量根据部署方式和工作负载而有所不同: **Docker部署:** - **基础内存**:空闲容器约128MB - **处理过程中**:根据视频长度和Whisper模型,需要500MB - 2GB - **Docker镜像大小**:约1.6GB磁盘空间 - **推荐配置**:4GB+内存以确保流畅运行 **传统部署:** - **基础内存**:FastAPI服务器约50-100MB - **Whisper模型内存占用**: - `tiny`:约150MB - `base`:约250MB - `small`:约750MB - `medium`:约1.5GB - `large`:约3GB - **峰值使用**:基础 + 模型 + 视频处理(额外约500MB) **内存优化建议:** ```bash # 使用更小的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 ``` ### Q: 网络连接错误或超时怎么办? A: 如果在视频下载或API调用过程中遇到网络相关错误,请尝试以下解决方案: **常见网络问题:** - 视频下载失败,出现"无法提取"或超时错误 - OpenAI API调用返回连接超时或DNS解析失败 - Docker镜像拉取失败或极其缓慢 **解决方案:** 1. **切换VPN/代理**:尝试连接到不同的VPN服务器或更换代理设置 2. **检查网络稳定性**:确保你的网络连接稳定 3. **更换网络后重试**:更改网络设置后等待30-60秒再重试 4. **使用备用端点**:如果使用自定义OpenAI端点,验证它们在你的网络环境下可访问 5. **Docker网络问题**:如果容器网络失败,重启Docker Desktop **快速网络测试:** ```bash # 测试视频平台访问 curl -I https://www.youtube.com/ # 测试OpenAI API访问(替换为你的端点) curl -I https://api.openai.com # 测试Docker Hub访问 docker pull hello-world ``` 如果问题持续存在,尝试切换到不同的网络或VPN位置。 ## 🎯 支持的语言 ### 转录 - 通过Whisper支持100+种语言 - 自动语言检测 - 主要语言具有高准确率 ### 摘要生成 - 英语 - 中文(简体) - 日语 - 韩语 - 西班牙语 - 法语 - 德语 - 葡萄牙语 - 俄语 - 阿拉伯语 - 以及更多... ## 📈 性能提示 - **硬件要求**: - 最低配置: 4GB内存,双核CPU - 推荐配置: 8GB内存,四核CPU - 理想配置: 16GB内存,多核CPU,SSD存储 - **处理时间预估**: | 视频长度 | 预估时间 | 备注 | |---------|---------|------| | 1分钟 | 30秒-1分钟 | 取决于网络和硬件 | | 5分钟 | 2-5分钟 | 推荐首次测试使用 | | 15分钟 | 5-15分钟 | 适合日常使用 | ## 🤝 贡献指南 欢迎提交Issue和Pull Request! 1. Fork项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启Pull Request ## 致谢 - [yt-dlp](https://github.com/yt-dlp/yt-dlp) - 强大的视频下载工具 - [Faster-Whisper](https://github.com/guillaumekln/faster-whisper) - 高效的Whisper实现 - [FastAPI](https://fastapi.tiangolo.com/) - 现代化的Python Web框架 - [OpenAI](https://openai.com/) - 智能文本处理API ## 📞 联系方式 如有问题或建议,请提交Issue或联系Wendy。 ## ⭐ Star History 如果您觉得这个项目有帮助,请考虑给它一个星标!