🎬 Lingarr: A Smarter Way to Translate Subtitles Automatically

In today’s world of global video content—from YouTube channels to international streaming platforms—subtitles play a vital role in connecting creators and audiences across different languages. Yet for anyone who has tried to translate subtitles manually, the process often feels tedious, inconsistent, and time-consuming.

If you’ve ever asked yourself:

“Why is subtitle translation still so complicated?”

Then Lingarr might be exactly the tool you’ve been looking for. Designed with simplicity, automation, and flexibility in mind, Lingarr is an open-source application that lets you translate subtitles into multiple languages effortlessly, using your choice of powerful translation engines.

Whether you’re a self-hosted media enthusiast, a localization team, or an independent content creator, Lingarr brings professional-grade subtitle translation to your fingertips.


1. What Is Lingarr?

Lingarr is an open-source subtitle translation system built on top of modern translation technologies. It automatically converts subtitle files from one language to another using a wide range of translation services such as LibreTranslate, DeepL, OpenAI, Anthropic, Gemini, DeepSeek, Google, Bing, Yandex, and Azure.

In simple terms, Lingarr acts as a centralized translation hub for your media library.
Once installed, it can automatically detect, translate, and save subtitles in your preferred target language—without requiring constant manual work.

It’s built to serve everyone—from small personal media servers to large content automation pipelines.


2. Why Lingarr Matters

In a world flooded with multilingual video content, the ability to generate accurate, natural subtitles is essential. Lingarr stands out because it offers:

🌍 Multiple Translation Engine Support

Lingarr doesn’t lock you into one service. Instead, it lets you choose from a range of translation APIs, depending on your accuracy needs, privacy preferences, or cost considerations:

Translation Service Key Feature
LibreTranslate Fully open-source, privacy-friendly, can be hosted locally
LocalAI Runs local large language models compatible with OpenAI API format
DeepL Commercial-grade accuracy and fluency (except for pt-BR)
Anthropic (Claude) Advanced natural-language translation powered by contextual understanding
OpenAI (GPT Models) Ideal for nuanced, context-aware translations
DeepSeek High-performance model optimized for Chinese and multilingual accuracy
Gemini (Google) Multimodal intelligence for cross-language adaptation
Google Translate / Bing / Yandex / Azure Traditional translation services with broad language coverage

Such flexibility makes Lingarr highly adaptable to different workflows—whether you value cost efficiency, offline operation, or AI-enhanced translation quality.


3. How to Deploy Lingarr

Lingarr can be deployed in two primary ways: via Docker Compose or using Docker CLI.
Both methods are simple and allow quick integration into your existing server setup.

3.1 Deploying with Docker Compose

If you’re already using Docker Compose, setting up Lingarr takes only a few lines of configuration.
Add this section to your docker-compose.yml file:

services:
  lingarr:
    image: lingarr/lingarr:latest
    container_name: lingarr
    restart: unless-stopped
    environment:
      - ASPNETCORE_URLS=http://+:9876
    ports:
      - "9876:9876"
    volumes:
      - /path/to/media/movies:/movies
      - /path/to/media/tv:/tv
      - /path/to/config:/app/config
    networks:
      - lingarr

networks:
  lingarr:
    external: true

Then run:

docker compose up -d

Lingarr will start automatically on port 9876.

💡 Tip:
If your media directory has deeply nested subfolders, check the official Wiki for mapping recommendations to ensure Lingarr can scan all files correctly.


3.2 Deploying with Docker CLI

Prefer using command-line tools directly? The setup is just as easy:

docker run -d \
  --name lingarr \
  --restart unless-stopped \
  -p 9876:9876 \
  -e ASPNETCORE_URLS=http://+:9876 \
  -v /path/to/media/movies:/movies \
  -v /path/to/media/tv:/tv \
  -v /path/to/config:/app/config \
  --network lingarr \
  lingarr/lingarr:latest

Once running, you can access Lingarr’s interface at http://your-server-ip:9876.


4. Essential Environment Variables

Lingarr’s behavior is controlled entirely through environment variables, allowing you to customize ports, databases, concurrency, and integration options.

Variable Description
ASPNETCORE_URLS Internal listening address inside the container (default http://+:9876)
MAX_CONCURRENT_JOBS Number of simultaneous translation jobs (default 1)
DB_CONNECTION Database type: mysql or sqlite
DB_HOST MySQL database hostname
DB_PORT MySQL port (default 3306)
DB_DATABASE Name of the Lingarr database
DB_USERNAME / DB_PASSWORD Credentials for database authentication
DB_HANGFIRE_SQLITE_PATH Path for Hangfire task database (when using SQLite)

You can define these variables directly in your Docker Compose file or through .env files for persistent configuration.


5. Integration with Radarr and Sonarr

Lingarr can be seamlessly integrated with Radarr and Sonarr, the popular automation tools for managing movie and TV libraries.
When connected, Lingarr automatically detects new video content and starts translating subtitles immediately.

Radarr Integration

Variable Description
RADARR_URL Base API URL for Radarr (e.g., http://localhost:7878)
RADARR_API_KEY API key from your Radarr instance

Sonarr Integration

Variable Description
SONARR_URL Base API URL for Sonarr (e.g., http://localhost:8989)
SONARR_API_KEY API key from your Sonarr instance

This integration ensures your subtitle translations stay synchronized automatically whenever new media is added or updated.


6. Configuring Translation Services

Lingarr’s most powerful feature is its support for multiple translation engines.
You can switch between them by setting a single variable — SERVICE_TYPE.

6.1 General Translation Settings

Variable Description
SERVICE_TYPE The translation service type (e.g., libretranslate, openai, deepl, etc.)
SOURCE_LANGUAGES JSON array of source languages
TARGET_LANGUAGES JSON array of target languages

Example format:

[{"name":"English","code":"en"},{"name":"Dutch","code":"nl"}]

This structure allows flexible multilingual translation pipelines.


6.2 Supported Translation Engines and Variables

Service Key Variables Example
LibreTranslate LIBRE_TRANSLATE_URL, LIBRE_TRANSLATE_API_KEY https://libretranslate.com
OpenAI OPENAI_MODEL, OPENAI_API_KEY, AI_PROMPT gpt-4, sk-xxxx
Anthropic (Claude) ANTHROPIC_MODEL, ANTHROPIC_API_KEY, ANTHROPIC_VERSION claude-2
Gemini GEMINI_MODEL, GEMINI_API_KEY gemini-2.0-flash
DeepSeek DEEPSEEK_MODEL, DEEPSEEK_API_KEY deepseek-chat
LocalAI LOCAL_AI_MODEL, LOCAL_AI_API_KEY, LOCAL_AI_ENDPOINT http://localhost:8080
DeepL DEEPL_API_KEY private API key required

With this modular setup, Lingarr can adapt to virtually any translation infrastructure—from cloud-based AI models to completely offline deployments.


7. Optional: Running LibreTranslate Locally

If you prefer using an open-source, self-hosted translation engine, LibreTranslate can be deployed easily alongside Lingarr.

Docker Compose Example

LibreTranslate:
  container_name: LibreTranslate
  image: libretranslate/libretranslate:latest
  restart: unless-stopped
  environment:
    - LT_LOAD_ONLY=en,nl  # Replace with your preferred language codes
  ports:
    - 5000:5000
  volumes:
    - /path/to/config:/home/libretranslate/.local/share/argos-translate
  networks:
    - lingarr
  healthcheck:
    test: ["CMD-SHELL", "./venv/bin/python scripts/healthcheck.py"]

Docker CLI Example

docker run -d \
  --name LibreTranslate \
  -p 5000:5000 \
  -v /path/to/libretranslate/db:/app/db \
  -v /path/to/libretranslate/local:/home/libretranslate/.local \
  libretranslate/libretranslate \
  --disable-web-ui \
  --load-only=en,nl

This approach ensures full control over your translation pipeline and eliminates external API dependencies.


8. API Access for Developers

Lingarr also exposes a RESTful API, enabling deeper automation and system integration.
Through the API, developers can:

  • Trigger subtitle translation tasks
  • Query translation status and progress
  • Manage translation queues and logs

You can find full endpoint documentation, including a Swagger definition, at:
👉 https://lingarr.com/docs/api

This makes Lingarr ideal for use in custom content pipelines, CI/CD environments, or automated localization workflows.


9. Frequently Asked Questions (FAQ)

❓ 1. Can Lingarr run locally?

Yes. Lingarr is fully containerized and runs anywhere Docker is supported—on a NAS, a local workstation, or a cloud VPS.


❓ 2. What subtitle formats are supported?

Lingarr supports standard formats such as .srt, .ass, and .vtt, ensuring compatibility with most media players and streaming platforms.


❓ 3. Can I use multiple translation engines at once?

You can configure multiple services, but it’s recommended to enable only one SERVICE_TYPE per instance to maintain stability and predictable output.


❓ 4. How can I speed up translation?

Increase the MAX_CONCURRENT_JOBS variable to allow parallel translation tasks.
However, make sure to respect your API rate limits to avoid throttling.


❓ 5. Do I need a database?

Lingarr works out of the box with SQLite.
For multi-server or high-availability setups, you can switch to MySQL by updating the DB_CONNECTION and related credentials.


10. How to Contribute

Lingarr is a community-driven open-source project, and contributions of all kinds are welcome—bug reports, feature ideas, documentation improvements, or direct code submissions.

Special thanks to the open-source ecosystem and contributors such as AlexPoint, Lucide, and the selfh.st and r/selfhosted communities for their ongoing support.


11. Final Thoughts

Lingarr isn’t just another subtitle converter—it represents a new generation of automation tools that blend AI precision with open-source flexibility.

For content creators, it saves hours of manual translation work.
For developers, it provides a programmable API that integrates into any workflow.
For viewers, it breaks down language barriers, making global content more accessible than ever.

If you’ve ever wanted a system that “just understands your subtitle workflow,”
Lingarr might be the missing piece in your automation stack.