VideoLingo README

The project's README from github.com/Huanshere/VideoLingo. As one markdown file: README.md.

VideoLingo Logo

Connect the World, Frame by Frame

Huanshere%2FVideoLingo | Trendshift

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

🌟 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:

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

🎥 Demo

Dual Subtitles


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

Cosy2 Voice Clone


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

GPT-SoVITS with my voice


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

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

Or double-click OneKeyStart.bat on Windows.

Option B: Using Conda

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

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

Docker

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

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

APIs

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

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


If you find VideoLingo helpful, please give me a ⭐️!

VideoLingo (Huanshere/VideoLingo)

Searching Database…

What is this?VideoLingo is an all-in-one AI tool for video translation, localization, and dubbing. It generates Netflix-quality single-line subtitles and can add high-quality dubbing, fully automated in one click.
Is it a hosted service, or something I run on my own machine?Something you run locally: it launches a Streamlit interface in your browser and drives the whole pipeline from there, with a Docker option as an alternative.
How do I get it running?Install FFmpeg with your system's package manager, clone the repo, and run the one-command uv setup — it installs Python 3.10 and all dependencies for you. On Windows you can also double-click OneKeyStart.bat.
Do I need API keys for the AI parts, or can it run for free?Normally you configure an OpenAI-compatible LLM (default DeepSeek V4 Flash via OpenRouter), WhisperX, and a TTS service — 302.ai covers all three with a single key. For a free setup, run Ollama locally and use Edge-TTS with no API key at all.
Where does it still fall short?Background noise degrades transcription, subtitles ending in numbers can get truncated, and weaker LLMs may fail the strict JSON steps — then you delete the output folder and retry with another model. Dubbing is not 100% perfect, multilingual audio keeps only the main language, and per-character voices are not supported.
Which systems does it run on?Windows, macOS, and Linux are all supported with per-OS install steps, plus a Docker route that requires an NVIDIA setup. The interface itself is a local Streamlit web app.
How is it licensed — anything restrictive?Apache 2.0, a permissive license — you can use and modify it freely, including commercially.
Do I need an NVIDIA GPU for this?Local WhisperX transcription is where a GPU helps, and the Docker route needs CUDA 12.4 with an NVIDIA driver above 550; Windows NVIDIA users should install CUDA Toolkit 12.6 and CUDNN 9.3.0 first. You can offload transcription to the 302.ai API instead of running it locally.
What actually happens to a video once I hand it over?It downloads the video via yt-dlp, transcribes word-level subtitles with WhisperX, splits them into natural segments with NLP and AI, translates using a custom or AI-generated terminology bank plus a 3-step Translate-Reflect-Adaptation pass, and exports Netflix-standard single-line subtitles — with optional dubbing on top.
Which languages can it work with?Input: English, Russian, French, German, Italian, Spanish, Japanese, and Chinese, with more planned. Translation supports all languages, while dubbing depends on the TTS method you pick.
How does the dubbing work — can it clone my own voice?Dubbing runs through GPT-SoVITS, Azure, OpenAI, fish-tts, siliconflow, or edge-tts, and customtts.py lets you plug in your own TTS. The demos show voice cloning with Cosy2 and GPT-SoVITS using the author's voice.
Why pick it over other subtitle tools?The author positions it against similar projects on three points: Netflix-standard single-line subtitles only (no multi-line), superior translation quality, and a more seamless dubbing experience.
Creator
Huanshere
Size
15.9 MB
Stars
18.8K
Age
2y
Commits · 90 Days