Skip to content

Lingarr is an application that supports both local and SaaS translation services to translate subtitle files into a specified target language. With automated translation options, Lingarr simplifies translating subtitles.

License

Notifications You must be signed in to change notification settings

lingarr-translate/lingarr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Lingarr: Subtitle Translation Made Easy

Version Docker Pulls License Discord

Lingarr is an application that leverages translation technologies to automatically translate subtitle files to your desired target language. With support for multiple translation services including LibreTranslate, DeepL, and various AI providers, Lingarr offers a flexible solution for all your subtitle translation needs.

lingarr.mp4

🌟 Multiple Translation Service Support

Lingarr now offers multiple services for automated translation:

Choose the service that best fits your needs.

Usage

Docker Image Tags

Lingarr provides multi-architecture Docker images that automatically select the correct platform:

Tag Description Architectures
latest Latest stable release amd64 arm64
1.2.3 Specific version amd64 arm64
main ⚠️ Development build from main branch amd64 arm64

Note: As of 1.0.3 all images support both AMD64 (Intel/AMD) and ARM64 (Raspberry Pi, Apple Silicon) architectures. Docker will automatically pull the correct architecture for your system.

Setting up Lingarr

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

Setting up Lingarr using Docker CLI

Follow the following steps to set up Lingarr and LibreTranslate via docker CLI

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

Lingarr environment variables

These variables can be used

Environment Variable Description
ASPNETCORE_URLS=http://+:9876 The internal port that Lingarr will listen on inside the container.
MAX_CONCURRENT_JOBS=1 Sets the amount of jobs that can run concurrently, defaults to 1.
DB_CONNECTION=mysql Specifies the database connection type. Options are mysql or sqlite.
DB_HOST=Lingarr.Mysql The hostname for the MySQL database (required when using mysql).
DB_PORT=3306 The port for the MySQL database (required when using mysql).
DB_DATABASE=LingarrMysql The name of the database (required when using mysql).
DB_USERNAME=LingarrMysql The username for the database (required when using mysql).
DB_PASSWORD=LingarrMysql The password for the database (required when using mysql).
DB_HANGFIRE_SQLITE_PATH=/app/config/Hangfire.db The path of the sqlite database file for Hangfire, when sqlite connection is used

Additional settings can be found here that can be set as environment variables to persist settings for each reinstall

Setting up LibreTranslate

This step is optional if you are using a translation service other than LibreTranslate.

  LibreTranslate:
    container_name: LibreTranslate
    image: libretranslate/libretranslate:latest
    restart: unless-stopped
    environment:
      - LT_LOAD_ONLY=en,nl  # Important, replace with your preferred languages
    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"]

Setting up LibreTranslate using Docker CLI

Create necessary directories and set permissions:

mkdir -p /apps/libretranslate/{local,db}
chmod -R 777 /apps/libretranslate

Run LibreTranslate Docker container:

docker run -d \
  --name LibreTranslate \
  -p 5000:5000 \
  -v /path/to/libretranslate/db:/app/db \[Settings.MD](Settings.MD)
  -v /path/to/libretranslate/local:/home/libretranslate/.local \
  libretranslate/libretranslate \
  --disable-web-ui \
  --load-only=en,nl     # Important, replace with your preferred languages

LibreTranslate environment variables

Parameter Function
LT_LOAD_ONLY Allows you to add source languages by their iso code
LT_DISABLE_WEB_UI Enables or disables a Google translate like web ui

Running Lingarr as non-root

When running Docker containers, you can optionally specify which user should run the container process using the user flag. This is useful for:

  • Security: Running containers as non-root users
  • Permissions: Ensuring files created by the container have the correct ownership on your host system

Docker Compose syntax:

user: "1000:1000"  # UID:GID

Docker CLI syntax:

--user 1000:1000  # UID:GID

API Integration

Lingarr provides a RESTful API that allows you to integrate subtitle translation capabilities into your applications. You can find the complete API documentation, including a Swagger definition of all available endpoints at the Lingarr API Documentation

🀝 Contributing:

We welcome contributions to Lingarr! Whether it's bug reports, feature requests, or code contributions, please feel free to help out.

Please read our Contributing Guidelines for development setup, coding standards, and requirements for submit pull requests.

πŸ™ Credits:

Icons: Lucide
Subtitle Parsing: AlexPoint
Translation Services: libretranslate
GTranslate: GTranslate

πŸ™ Special thanks:

For supporting open source:
selfh.st by Ethan
r/selfhosted
FrankieBBBB

About

Lingarr is an application that supports both local and SaaS translation services to translate subtitle files into a specified target language. With automated translation options, Lingarr simplifies translating subtitles.

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published