GitPedia

VideoLingo

Netflix-level subtitle cutting, translation, alignment, and even dubbing - one-click fully automated AI video subtitle team | Netflix级字幕切割、翻译、对齐、甚至加上配音,一键全自动视频搬运AI字幕组

From Huanshere·Updated June 21, 2026·View on GitHub·

[**English**](/README.md)|[**简体中文**](/translations/README.zh.md)|[**繁體中文**](/translations/README.zh-TW.md)|[**日本語**](/translations/README.ja.md)|[**Español**](/translations/README.es.md)|[**Русский**](/translations/README.ru.md)|[**Français**](/translations/README.fr.md) The project is written primarily in Python, distributed under the Apache License 2.0 license, first published in 2024. It has gained significant community traction with 17,545 stars and 1,936 forks on GitHub. Key topics include: ai-translation, dubbing, localization, video-translation, voice-cloning.

Latest release: v3.0.1
February 28, 2026View Changelog →
<div align="center"> <img src="/docs/logo.png" alt="VideoLingo Logo" height="140">

Connect the World, Frame by Frame

<a href="https://trendshift.io/repositories/12200" target="_blank"><img src="https://trendshift.io/api/badge/repositories/12200" alt="Huanshere%2FVideoLingo | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

English简体中文繁體中文日本語EspañolРусскийFrançais

</div>

🌟 Overview (Try VL Now!)

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

  • 🌍 Multi-language support in Streamlit UI

  • 📝 Detailed logging with progress resumption

  • 🔍 Model searchbox with API auto-fetch — search and filter from your provider's full model list

  • ⏯️ Task control — pause, resume, or stop processing at any step

Difference from similar projects: Single-line subtitles only, superior translation quality, seamless dubbing experience

🎥 Demo

<table> <tr> <td width="33%">

Dual Subtitles


https://github.com/user-attachments/assets/a5c3d8d1-2b29-4ba9-b0d0-25896829d951

</td> <td width="33%">

Cosy2 Voice Clone


https://github.com/user-attachments/assets/e065fe4c-3694-477f-b4d6-316917df7c0a

</td> <td width="33%">

GPT-SoVITS with my voice


https://github.com/user-attachments/assets/47d965b2-b4ab-4a0b-9d08-b49a7bf3508c

</td> </tr> </table>

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

Meet any problem? Chat with our free online AI agent here to help you.

Note: For Windows users with NVIDIA GPU, follow these steps before installation:

  1. Install CUDA Toolkit 12.6
  2. Install CUDNN 9.3.0
  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)
  • macOS: brew install ffmpeg (via Homebrew)
  • Linux: sudo apt install ffmpeg (Debian/Ubuntu)

uv automatically downloads Python 3.10 and creates an isolated environment — no need to install Python or Anaconda yourself.

  1. Clone the repository
bash
git clone https://github.com/Huanshere/VideoLingo.git cd VideoLingo
  1. One-command setup (installs uv + Python 3.10 + all dependencies)
bash
python setup_env.py
  1. Start the application
bash
.venv\Scripts\streamlit run st.py # Windows .venv/bin/streamlit run st.py # macOS / Linux

Or double-click OneKeyStart_uv.bat on Windows.

Option B: Using Conda

⚠️ Not recommended. This method will not be maintained going forward. Please use uv (Option A) above.

<details> <summary>Click to expand Conda installation steps</summary>
  1. Clone the repository
bash
git clone https://github.com/Huanshere/VideoLingo.git cd VideoLingo
  1. Install dependencies (requires python=3.10)
bash
conda create -n videolingo python=3.10.0 -y conda activate videolingo python install.py
  1. Start the application
bash
streamlit run st.py
</details>

Docker

Alternatively, you can use Docker (requires CUDA 12.4 and NVIDIA Driver version >550), see Docker docs:

bash
docker build -t videolingo . docker run -d -p 8501:8501 --gpus all videolingo

APIs

VideoLingo supports OpenAI-Like API format and various TTS interfaces:

  • LLM: claude-sonnet-4.6, gpt-5.4, gemini-3.1-pro, deepseek-v3, grok-4.1, ... (sorted by quality; for budget options try gemini-3-flash or gpt-5.4-mini)
  • WhisperX: Run whisperX (large-v3) locally or use 302.ai API
  • TTS: azure-tts, openai-tts, siliconflow-fishtts, fish-tts, GPT-SoVITS, edge-tts, *custom-tts(You can modify your own TTS in custom_tts.py!)

Note: VideoLingo works with 302.ai - one API key for all services (LLM, WhisperX, TTS). Or run locally with Ollama and Edge-TTS for free, no API needed!

For detailed installation, API configuration, and batch mode instructions, please refer to the documentation: English | 中文

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 processes due to strict JSON format requirements for responses (tried my best to prompt llm😊). 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. For now, 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, yt-dlp, json_repair, BELLE

📬 Contact Me

⭐ Star History

Star History Chart


<p align="center">If you find VideoLingo helpful, please give me a ⭐️!</p>

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Huanshere/VideoLingo via the GitHub API.Last fetched: 6/21/2026