Prevent audio transcoding in Plex by auto-selecting compatible audio tracks
1.6K
Prevent audio transcoding in Plex by auto-selecting compatible audio tracks.
Detects transcoding sessions → finds compatible audio stream → switches track → terminates session to restart without transcoding.
# 1. Pull image
docker pull garglerunways0o/audiochangerr:latest
# 2. Create config
curl -o config.yaml https://raw.githubusercontent.com/gargle-runways-0o/audiochangerr/main/config.yaml.example
nano config.yaml # Edit with your settings
# 3. Run
docker run -d \
--name audiochangerr \
-v $(pwd)/config.yaml:/config/config.yaml:ro \
-v $(pwd)/logs:/logs \
-p 4444:4444 \
--restart unless-stopped \
garglerunways0o/audiochangerr:latest
git clone https://github.com/gargle-runways-0o/audiochangerr.git
cd audiochangerr
npm install
cp config.yaml.example config.yaml
nano config.yaml
npm start
Create config.yaml from the example and configure:
plex_server_url: "http://192.168.1.100:32400"
auth_method: "pin" # "pin", "token", or "env"
owner_username: "your-plex-username"
mode: "polling" # "polling" or "webhook"
dry_run: true # false to apply changes
# See config.yaml.example for all options
Authentication setup: docs/AUTHENTICATION.md
Start with dry run enabled (default in example):
dry_run: true
Start the service:
# Standalone
npm start
# Docker
docker-compose up -d
docker logs -f audiochangerr
Play media that transcodes audio
Check logs for detected transcodes and proposed changes:
[info] Transcode: 12345
[info] Better: AC3 6ch (302)
[info] [DRY] Set audio: part=456 stream=302
Enable changes when ready:
dry_run: false
Webhook mode:
curl http://localhost:4444/health
# Returns: {"status":"ok","service":"audiochangerr-webhook","version":"2.0.0"}
Polling mode: Check startup logs for successful initialization
dry_run: false in config.yamlcurl "http://YOUR_SERVER:32400/status/sessions?X-Plex-Token=YOUR_TOKEN"
curl http://localhost:4444/healthsudo ufw allow 4444/tcpallowed_networks includes Plex/Tautulli IPcheck_interval (try 5 seconds)owner_username matches Plex exactly (case-sensitive)console.level: "debug"Enable detailed logs for troubleshooting:
console:
enabled: true
level: "debug" # error, warn, info, or debug
See docs/CONFIGURATION.md#debug-output-examples for log interpretation.
Contributions welcome! Please:
npm testGNU GPL v3.0 - See LICENSE
Content type
Image
Digest
sha256:488746e3b…
Size
62.5 MB
Last updated
10 months ago
docker pull garglerunways0o/audiochangerr