Self-host muxarr
v0.9.13Media track cleaner for audio and subtitle tracks
- Stars
- 184
- Port
- 8183 (Web UI and API)
- Requires
- FFmpeg (ffmpeg, ffprobe), MKVToolNix (mkvmerge, mkvpropedit)
ghcr.io/kirovair/muxarrWhat is muxarr?
Muxarr is a self-hosted application for cleaning up media libraries by dropping audio and subtitle tracks you don't want. It operates on MKV, WebM, MP4, and M4V containers, copying streams instead of re-encoding them, so quality stays identical and a typical 4 GB movie finishes in roughly a minute even on modest hardware such as a Raspberry Pi or a NAS. The software connects to Sonarr and Radarr to learn each title's original language, then uses that information to preserve the correct soundtrack on foreign-language content. New downloads can be processed automatically through webhooks, with a configurable pause so tools like Bazarr can fetch subtitles first. You define profiles per folder — one for movies, another for anime, for example — each with its own language priority list, per-language track limits, and quality preferences. Fallback chains let you keep English subtitles only when German ones are absent, and the engine distinguishes regional dubs such as Quebec French versus France French by reading BCP 47 tags and common release-group markers. Track names are rewritten from templates, and mkvpropedit handles metadata-only edits instantly. Every conversion is validated before the original file is replaced, and the original is kept untouched if anything goes wrong. The web interface includes a setup wizard, a library browser with per-file previews, and a statistics dashboard. Notifications can be sent to many popular services or a generic webhook, and Plex, Emby, or Jellyfin can be triggered to rescan after each job. A small REST API exposes library stats, bulk queueing, and conversion tracking. Deployment options are Docker Compose, a plain docker run command, or a bare-metal systemd service built from source with .NET 10, MKVToolNix, and FFmpeg 8.1+.
Should you self-host muxarr?
muxarr scores 47/100 on selfhost.directory (how scoring works) and ranks #85 of 142 in Media Management. It has 184 GitHub stars.
It shipped 20 stable releases in the past year. The latest, v0.9.13, came out on 26 October 2026.
Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-3.0-licensed and written mostly in C#.
Its closest alternative on selfhost.directory is Sonarr (81/100, 17 472 stars). It scores higher overall, so compare the two before you pick. See muxarr vs Sonarr side by side.
Features
- Automatic processing via webhooks
- Fallback languages
- Language priority and track limits
- Library overview and statistics
- Notifications
- Original language detection
- Per-directory profiles
- Post-processing commands
- Regional language variant detection
- REST API
- Safe by default validation
- Smart metadata fixes
- Strip unwanted audio tracks
- Strip unwanted subtitle tracks
muxarr README
FAQ
I lost my password, how do I reset it?
Start the container once with environment variable MUXARR__AUTH__RESET=true. Muxarr removes the login on that start. Then set a new password under Settings > Security and remove the variable.
What about hardlinks and seeding?
When Sonarr/Radarr import by hardlink, the download and library file share data. Enable 'Skip hardlinked files' in the profile to avoid editing the seeding copy or doubling disk space.
What are .muxtmp and .muxbak files?
.muxtmp is the new file being written; .muxbak is the original during the swap. Both exist only for seconds normally. If Muxarr was killed mid-swap, it cleans up on next start.
Can Muxarr tell regional dubs apart (VFQ, VFF, Latino, Castellano)?
Yes. Muxarr recognizes regional variants from language tags and track names, and lets you list French (Canada), Spanish (Latin America), etc. as languages of their own.
How do I set up fallback languages (e.g., German subs, English if none)?
Put German first, add English below it and click its fallback button. This makes English a fallback for German.
What about tracks with no language tag?
A file with exactly one untagged audio track is treated as the original language (if Sonarr/Radarr connected). With several untagged tracks, Muxarr does not guess. Add 'Undetermined' to the language list to keep them unconditionally.
How do I update Muxarr?
With Docker Compose: docker compose pull followed by docker compose up -d. Database and settings live in the /config volume and are migrated automatically.
Can I run Muxarr on a Raspberry Pi or a small NAS?
Yes. Since nothing is re-encoded, the work is mostly disk I/O. Images are published for amd64 and arm64.
Which files does Muxarr handle?
MKV, WebM, MP4 and M4V. Files stay in their own format; Muxarr does not convert between formats.
How do I get Plex, Emby or Jellyfin to notice the changed file?
Add the server under Settings › Notifications with the Completed trigger. Muxarr then asks it to refresh after each conversion.
Does Muxarr rename or move files?
Not by itself. Renaming is Sonarr's and Radarr's job. Muxarr only changes tracks and metadata inside media files.
Does Muxarr re-encode my files? Is there quality loss?
No. Muxarr copies video and audio unchanged and only removes selected tracks. When an MKV only needs metadata changes, it edits in place without rewriting the file.
More in Video
MyTubeOpen-source and self-hosted: grab videos from yt-dlp's 1000+ sites (YouTube, Bilibili, Twitch included), build collections, watch in-browser, auto-download subscriptions.
nexrenderOpen-source, self-hosted render automation for Adobe After Effects: feed JSON jobs to a CLI node or to a server-and-worker farm to produce data-driven videos.
OmoideSelf-hosted photo and video library that runs offline and uses local AI for face recognition, semantic search, and automatic organization.
OpenBriefFree open-source desktop app for macOS, Windows, Linux that imports video/audio, extracts transcripts locally, generates grounded summaries, and lets you chat.
opencutOpen-source, self-hosted video editor pitched against CapCut: timeline editing in your browser with media kept on-device, Docker Compose stack with Postgres and Redis.
pigeon-podOpen-source, self-hosted podcast converter that syncs YouTube and Bilibili channels into private RSS feeds with content filters, media downloads, and multi-user access.
PinchflatA self-hosted, open-source YouTube media manager: yt-dlp-based rules download channels and playlists for Plex, Jellyfin, Kodi or podcast apps.
sdnextSelf-hosted, open-source Stable Diffusion web UI to generate, caption, upscale and edit images and video, with many GPU backends and model quantization for low VRAM.
ShumaiA self-hosted, open-source Frame.io replacement for creative teams to organize media, give frame-accurate feedback, and work together with optional AI agents.
SubDuetTwo languages. One subtitle. Local-first bilingual subtitles for Plex, Jellyfin, Emby and your media folders.
surselvaSurselva is a self-hosted, open-source web app for LAN users to submit YouTube URLs for async downloading via yt-dlp.
SyncplayThis open-source client/server keeps mpv, VLC and MPC players in sync so groups watch videos together, with a self-hosted server on port 8999, chat and shared playlists.






0 comments