{"id":48983504,"url":"https://github.com/KirovAir/muxarr","last_synced_at":"2026-05-04T15:01:22.324Z","repository":{"id":347720154,"uuid":"1195049700","full_name":"KirovAir/muxarr","owner":"KirovAir","description":"Quick and easy way to strip unwanted audio and subtitle tracks from your media files.","archived":false,"fork":false,"pushed_at":"2026-04-16T07:39:02.000Z","size":5514,"stargazers_count":69,"open_issues_count":7,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-16T09:32:52.205Z","etag":null,"topics":["arr","audio","blazor","docker","dotnet","emby","homelab","jellyfin","media","media-management","media-server","mkv","mkvmerge","mkvtoolnix","plex","radarr","remux","selfhosted","sonarr","subtitles"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KirovAir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-29T06:28:30.000Z","updated_at":"2026-04-16T07:39:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/KirovAir/muxarr","commit_stats":null,"previous_names":["kirovair/muxarr"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/KirovAir/muxarr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KirovAir%2Fmuxarr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KirovAir%2Fmuxarr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KirovAir%2Fmuxarr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KirovAir%2Fmuxarr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KirovAir","download_url":"https://codeload.github.com/KirovAir/muxarr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KirovAir%2Fmuxarr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32612318,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arr","audio","blazor","docker","dotnet","emby","homelab","jellyfin","media","media-management","media-server","mkv","mkvmerge","mkvtoolnix","plex","radarr","remux","selfhosted","sonarr","subtitles"],"created_at":"2026-04-18T12:00:33.096Z","updated_at":"2026-05-04T15:01:22.314Z","avatar_url":"https://github.com/KirovAir.png","language":"C#","funding_links":[],"categories":["Complimenting Apps"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/logo.png\" alt=\"Muxarr\" width=\"120\"/\u003e\u003cbr/\u003e\n  \u003ca href=\"https://github.com/KirovAir/muxarr/actions/workflows/build-and-deploy.yml\"\u003e\u003cimg src=\"https://github.com/KirovAir/muxarr/actions/workflows/build-and-deploy.yml/badge.svg\" alt=\"Build and Deploy\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/KirovAir/muxarr/pkgs/container/muxarr\"\u003e\u003cimg src=\"https://img.shields.io/badge/ghcr.io-kirovair%2Fmuxarr-blue?logo=docker\" alt=\"Docker Image\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/KirovAir/muxarr/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/KirovAir/muxarr?style=flat\" alt=\"GitHub Stars\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.gnu.org/licenses/gpl-3.0\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-GPLv3-blue.svg\" alt=\"License: GPL v3\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# Muxarr\n\n*Ever had your player pick the wrong audio language, or show 20 subtitle options you'll never use? Most media files ship with far more tracks than you need.*\n\nMuxarr cleans them up by removing unwanted audio and subtitle tracks and standardizing track metadata. It uses **mkvmerge** for MKV files and **ffmpeg** with stream copy for other containers, so tracks are remuxed rather than re-encoded and there is zero quality loss. A 4GB file takes about a minute instead of hours, even on low-end hardware like a NAS or Raspberry Pi.\n\n**Hooks into Sonarr \u0026 Radarr** for original language detection and automatic processing - new imports get cleaned up as they arrive.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/demo.gif\" alt=\"Muxarr Demo\" width=\"800\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eA quick demo of a file being optimized (35.9% reduction)\u003c/em\u003e\n\u003c/p\u003e\n\n### Quick Start\n\n```yaml\nservices:\n  muxarr:\n    image: ghcr.io/kirovair/muxarr:latest\n    container_name: muxarr\n    environment:\n      - TZ=Europe/Amsterdam\n      - PUID=1000\n      - PGID=1000\n    volumes:\n      - /path/to/data:/data\n      - /path/to/media:/media\n    ports:\n      - 8183:8183\n    restart: unless-stopped\n```\n\n## Features\n\n- **Strip unwanted tracks** - remove audio (commentary, foreign dubs) and subtitles (SDH, foreign) without re-encoding, so quality is untouched. A typical 4GB file processes in about a minute depending on disk speed, saving up to 10% in file size.\n- **Original language detection** - integrates with your *arr stack so foreign films and shows always keep the correct audio track\n- **Automatic processing** - webhook support to process new imports as they arrive\n- **Per-directory profiles** - different language and track rules for different collections (e.g. anime vs western media)\n- **Language priority \u0026 track limits** - control track ordering per language, limit tracks per language (e.g. keep only the best English audio track), and choose between best quality or smallest size\n- **Smart metadata fixes** - cleans up encoder tags and codec dumps from track names. Uses mkvpropedit for metadata-only changes (instant, no remux needed)\n- **Safe by default** - validates the output file before replacing the original. If anything fails, the original is untouched.\n- **Library overview** - full breakdown of codecs, resolutions, and languages across your library\n\nSupports Matroska (`.mkv`, `.webm`) and MP4-family (`.mp4`, `.m4v`).\n\n\u003cdetails\u003e\n\u003csummary\u003eMore screenshots\u003c/summary\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/before.png\" alt=\"Before\" width=\"600\"/\u003e\u003cbr/\u003e\n  ⬇️\u003cbr/\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/after.png\" alt=\"After\" width=\"600\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eBefore and after metadata cleanup\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/filedetails.png\" alt=\"File Details\" width=\"800\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eFile details with track preview\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/dashboard.png\" alt=\"Dashboard\" width=\"800\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eDashboard\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/settings.png\" alt=\"Profile Settings\" width=\"800\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eProfile settings\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/KirovAir/muxarr/master/docs/screenshots/statistics.png\" alt=\"Statistics\" width=\"800\"/\u003e\u003cbr/\u003e\n  \u003cem\u003eStatistics\u003c/em\u003e\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Installation\n\n### Docker Run\n\n```bash\ndocker run -d \\\n  --name=muxarr \\\n  -e TZ=Europe/Amsterdam \\\n  -e PUID=1000 \\\n  -e PGID=1000 \\\n  -p 8183:8183 \\\n  -v /path/to/data:/data \\\n  -v /path/to/media:/media \\\n  --restart unless-stopped \\\n  ghcr.io/kirovair/muxarr:latest\n```\n\n## Configuration\n\n### Environment Variables\n\n| Variable | Description | Default |\n|---|---|---|\n| `TZ` | Timezone | `UTC` |\n| `PUID` | User ID for file permissions | `1000` |\n| `PGID` | Group ID for file permissions | `1000` |\n\n### Volumes\n\n| Path | Description |\n|---|---|\n| `/data` | Database and configuration |\n| `/media` | Media files (use multiple `-v` mounts as needed) |\n\n### Setup\n\n1. Open `http://your-ip:8183` - the setup wizard will guide you through\n2. Set a username and password (optional)\n3. Connect Sonarr/Radarr for original language detection and webhook automation (optional)\n4. Create a profile with your media directories and language rules\n5. Scan your library, preview the changes, and queue files for processing\n\n### API\n\nMuxarr exposes a stats API at `/api/stats` (authenticated via `X-Api-Key` header). Works with [Homepage](https://gethomepage.dev/widgets/services/customapi/) and other dashboards. See Settings \u003e API for examples.\n\n## Built With\n\n- [.NET 10](https://dotnet.microsoft.com/) / Blazor\n- [MKVToolNix](https://mkvtoolnix.download/) (mkvmerge, mkvpropedit)\n- [FFmpeg](https://ffmpeg.org/) (ffmpeg, ffprobe)\n\n## License\n\nGPL-3.0 - see [LICENSE](LICENSE.md).\n\nMuxarr is not affiliated with Sonarr, Radarr, or any other *arr projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKirovAir%2Fmuxarr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FKirovAir%2Fmuxarr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FKirovAir%2Fmuxarr/lists"}