Pick a show's audio and subtitle languages once in Plex, and every episode follows
10K+
plex-language-sync remembers the audio and subtitle languages you pick for each TV show in Plex and sets them on every other episode, for each user of your server. It chooses between the tracks your files already have and downloads nothing.
plex-language-sync keeps a show on the audio and subtitles you pick once, in four ways:
You can limit it to the current season or to later episodes, and leave out shows or libraries.
plex-language-sync is built for Plex servers where people watch TV shows in more than one language, such as anime in Japanese with English subtitles, or a household with different preferences. It handles TV episodes only, never movies, and has no web page. Without it, you would pick the audio and subtitle track in the player on every episode.
You need a Plex Media Server and its owner's Plex token. To follow shared users, the container also needs internet access to reach plex.tv.
plex-language-sync is free software under the GPL-3.0-or-later license.
docker pull cplieger/plex-language-sync:latest
Also published to ghcr.io/cplieger/plex-language-sync with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.
# Example compose for plex-language-sync. See the README for all configuration options and hardening.
services:
plex-language-sync:
image: ghcr.io/cplieger/plex-language-sync:latest
container_name: plex-language-sync
restart: unless-stopped
stop_grace_period: 20s # time to save what it learned on stop. Docker's 10s default is too short
# Run "sudo mkdir -p /opt/appdata/plex-language-sync && sudo chown 1000:1000 /opt/appdata/plex-language-sync"
# before the first start, or nothing it learns is saved. If .env sets PUID and PGID, use those numbers.
user: "${PUID:-1000}:${PGID:-1000}"
environment:
- PLEX_URL # from .env, the address you open Plex at, such as http://192.0.2.10:32400
- PLEX_TOKEN # from .env, the server owner's Plex token, or set PLEX_TOKEN_FILE to a Docker secret
- "UPDATE_LEVEL=show" # show = whole show, season = current season only
- "UPDATE_STRATEGY=all" # all = every episode, next = only the episodes after the one you played
volumes:
- "/opt/appdata/plex-language-sync:/config" # what it learns, the shared users' tokens and its schedule
GPL-3.0-or-later. See LICENSE. The image carries the license text of
every bundled component under /usr/share/licenses/.
Content type
Image
Digest
sha256:fe8a1a7db…
Size
4.1 MB
Last updated
about 8 hours ago
docker pull cplieger/plex-language-sync