Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/huanshere/videolingo
Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上配音,一键全自动视频搬运AI字幕组
https://github.com/huanshere/videolingo
ai-translation dubbing localization video-translation voice-cloning
Last synced: 3 days ago
JSON representation
Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上配音,一键全自动视频搬运AI字幕组
- Host: GitHub
- URL: https://github.com/huanshere/videolingo
- Owner: Huanshere
- License: apache-2.0
- Created: 2024-08-09T11:19:52.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-11-11T10:28:41.000Z (about 2 months ago)
- Last Synced: 2024-11-13T04:01:04.540Z (about 2 months ago)
- Topics: ai-translation, dubbing, localization, video-translation, voice-cloning
- Language: Python
- Homepage: https://docs.videolingo.io
- Size: 12.5 MB
- Stars: 5,574
- Watchers: 38
- Forks: 593
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Connect the World, Frame by Frame
[Website](https://videolingo.io) | [Documentation](https://docs.videolingo.io/docs/start)
[**English**](/README.md)|[**中文**](/i18n/README.zh.md)
## 🌟 Overview ([Try VideoLingo For Free!](https://videolingo.io))
VideoLingo is an all-in-one video translation, localization, and dubbing tool aimed at generating Netflix-quality subtitles. It eliminates stiff machine translations and multi-line subtitles while adding high-quality dubbing, enabling global knowledge sharing across language barriers.
Key features:
- 🎥 YouTube video download via yt-dlp- **🎙️ Word-level and Low-illusion subtitle recognition with WhisperX**
- **📝 NLP and AI-powered subtitle segmentation**
- **📚 Custom + AI-generated terminology for coherent translation**
- **🔄 3-step Translate-Reflect-Adaptation for cinematic quality**
- **✅ Netflix-standard, Single-line subtitles Only**
- **🗣️ Dubbing with GPT-SoVITS, Azure, OpenAI, and more**
- 🚀 One-click startup and processing in Streamlit
- 📝 Detailed logging with progress resumption
Difference from similar projects: **Single-line subtitles only, superior translation quality, seamless dubbing experience**
## 🎥 Demo
### Russian Translation
---
https://github.com/user-attachments/assets/25264b5b-6931-4d39-948c-5a1e4ce42fa7### GPT-SoVITS Dubbing
---
https://github.com/user-attachments/assets/47d965b2-b4ab-4a0b-9d08-b49a7bf3508c### Language Support
**Input Language Support(more to come):**
🇺🇸 English 🤩 | 🇷🇺 Russian 😊 | 🇫🇷 French 🤩 | 🇩🇪 German 🤩 | 🇮🇹 Italian 🤩 | 🇪🇸 Spanish 🤩 | 🇯🇵 Japanese 😐 | 🇨🇳 Chinese* 😊
> *Chinese uses a separate punctuation-enhanced whisper model, for now...
**Translation supports all languages, while dubbing language depends on the chosen TTS method.**
## Installation
> **Note:** To use NVIDIA GPU acceleration on Windows, please complete the following steps first:
> 1. Install [CUDA Toolkit 12.6](https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda_12.6.0_560.76_windows.exe)
> 2. Install [CUDNN 9.3.0](https://developer.download.nvidia.com/compute/cudnn/9.3.0/local_installers/cudnn_9.3.0_windows.exe)
> 3. Add `C:\Program Files\NVIDIA\CUDNN\v9.3\bin\12.6` to your system PATH
> 4. Restart your computer> **Note:** FFmpeg is required. Please install it via package managers:
> - Windows: ```choco install ffmpeg``` (via [Chocolatey](https://chocolatey.org/))
> - macOS: ```brew install ffmpeg``` (via [Homebrew](https://brew.sh/))
> - Linux: ```sudo apt install ffmpeg``` (Debian/Ubuntu) or ```sudo dnf install ffmpeg``` (Fedora)1. Clone the repository
```bash
git clone https://github.com/Huanshere/VideoLingo.git
cd VideoLingo
```2. Install dependencies(requires `python=3.10`)
```bash
conda create -n videolingo python=3.10.0 -y
conda activate videolingo
python install.py
```3. Start the application
```bash
streamlit run st.py
```### Docker
Alternatively, you can use Docker (requires CUDA 12.4 and NVIDIA Driver version >550), see [Docker docs](/docs/pages/docs/docker.en-US.md):```bash
docker build -t videolingo .
docker run -d -p 8501:8501 --gpus all videolingo
```## API
VideoLingo supports OpenAI-Like API format and various dubbing interfaces:
- `claude-3-5-sonnet-20240620`, **`gemini-2.0-flash-exp`**, `gpt-4o`, `deepseek-coder`, ... (sorted by performance)
- `azure-tts`, `openai-tts`, `siliconflow-fishtts`, **`fish-tts`**, `GPT-SoVITS`, `edge-tts`, `*custom-tts`(ask gpt to help you define in custom_tts.py)> **Note:** VideoLingo is now integrated with [302.ai](https://gpt302.saaslink.net/C2oHR9), **one API KEY** for both LLM and TTS! Also supports fully local deployment using Ollama for LLM and Edge-TTS for dubbing, no cloud API required!
For detailed installation, API configuration, and batch mode instructions, please refer to the documentation: [English](/docs/pages/docs/start.en-US.md) | [中文](/docs/pages/docs/start.zh-CN.md)
## Current Limitations
1. WhisperX transcription performance may be affected by video background noise, as it uses wav2vac model for alignment. For videos with loud background music, please enable Voice Separation Enhancement. Additionally, subtitles ending with numbers or special characters may be truncated early due to wav2vac's inability to map numeric characters (e.g., "1") to their spoken form ("one").
2. Using weaker models can lead to errors during intermediate processes due to strict JSON format requirements for responses. If this error occurs, please delete the `output` folder and retry with a different LLM, otherwise repeated execution will read the previous erroneous response causing the same error.
3. The dubbing feature may not be 100% perfect due to differences in speech rates and intonation between languages, as well as the impact of the translation step. However, this project has implemented extensive engineering processing for speech rates to ensure the best possible dubbing results.
4. **Multilingual video transcription recognition will only retain the main language**. This is because whisperX uses a specialized model for a single language when forcibly aligning word-level subtitles, and will delete unrecognized languages.
5. **Cannot dub multiple characters separately**, as whisperX's speaker distinction capability is not sufficiently reliable.
## 📄 License
This project is licensed under the Apache 2.0 License. Special thanks to the following open source projects for their contributions:
[whisperX](https://github.com/m-bain/whisperX), [yt-dlp](https://github.com/yt-dlp/yt-dlp), [json_repair](https://github.com/mangiucugna/json_repair), [BELLE](https://github.com/LianjiaTech/BELLE)
## 📬 Contact Us
- Join our Discord: https://discord.gg/9F2G92CWPp
- Submit [Issues](https://github.com/Huanshere/VideoLingo/issues) or [Pull Requests](https://github.com/Huanshere/VideoLingo/pulls) on GitHub
- Follow me on Twitter: [@Huanshere](https://twitter.com/Huanshere)
- Email me at: [email protected]## ⭐ Star History
[![Star History Chart](https://api.star-history.com/svg?repos=Huanshere/VideoLingo&type=Timeline)](https://star-history.com/#Huanshere/VideoLingo&Timeline)
---
If you find VideoLingo helpful, please give us a ⭐️!