binhex-trimarr

binhex-trimarr

Application Docker from Binhex's Repository

Vue d'ensemble

Removes (trims) unwanted audio and subtitles from matroska container format video files using mkvmerge. Features recursive scanning, smart skip via SQLite tracking, commentary track safety, multi-language support, auto-managed mkvmerge binary, and space savings reporting. Supports one-shot or cron-scheduled operation.

Exigences

Media directory
You must map at least one media directory (/media or custom path) containing your .mkv files.

Language configuration
The TRIMARR_LANGUAGE variable must be set to one or more ISO 639-2 language codes (comma-separated), e.g. 'eng' for English only or 'eng,fre' for English and French.

First run
On first run, trimarr downloads the mkvmerge binary automatically. Subsequent runs check for updates unless TRIMARR_NO_UPDATE_CHECK is set to 'yes'.

Schedule (optional)
Set TRIMARR_SCHEDULE to a cron expression to run repeatedly (e.g. '0 2 * * *' for daily at 2am). Omit for one-shot mode (container exits after processing).

Arguments d'exécution

Réseau
bridge
Coquille
bash
Privilégié
false
Paramètres supplémentaires
--restart=unless-stopped

Configuration du modèle

Path: /configPathrw

Container path for configuration files, database (trimarr.db), and logs.

Cible
/config
Défaut
/mnt/user/appdata/trimarr
Path: /mediaPathrw

Container path to your media files (e.g. movies, tv). Matches the default TRIMARR_MEDIA_PATH.

Cible
/media
Défaut
/mnt/user
Variable: TRIMARR_LANGUAGEVariable

(Required) ISO 639-2 language code(s) for tracks to keep. Comma-separate multiple codes, e.g. 'eng' or 'eng,fre'. See https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes

Cible
TRIMARR_LANGUAGE
Variable: TRIMARR_MEDIA_PATHVariable

Directories containing media files to process. Use pipe (|) as separator for multiple paths, e.g. /media/Movies|/media/TV

Cible
TRIMARR_MEDIA_PATH
Défaut
/media
Variable: TRIMARR_SCHEDULEVariable

Cron schedule for repeated runs, e.g. '0 2 * * *' (daily at 2am), '@daily', '*/30 * * * *'. Omit for one-shot mode (container exits after processing).

Cible
TRIMARR_SCHEDULE
Variable: TRIMARR_EDIT_METADATA_TITLEVariable

If set to 'yes', each file's title metadata is updated to match its filename.

Cible
TRIMARR_EDIT_METADATA_TITLE
Défaut
no|yes
Variable: TRIMARR_DELETE_METADATA_TITLEVariable

If set to 'yes', title metadata is deleted from files. Mutually exclusive with TRIMARR_EDIT_METADATA_TITLE.

Cible
TRIMARR_DELETE_METADATA_TITLE
Défaut
no|yes
Variable: TRIMARR_KEEP_SUBTITLESVariable

If set to 'yes', all subtitle tracks are kept regardless of language.

Cible
TRIMARR_KEEP_SUBTITLES
Défaut
no|yes
Variable: TRIMARR_KEEP_AUDIOVariable

If set to 'yes', all audio tracks are kept regardless of language.

Cible
TRIMARR_KEEP_AUDIO
Défaut
no|yes
Variable: TRIMARR_KEEP_NATIVE_AUDIOVariable

If set to 'yes', audio tracks matching the film's original language (detected via IMDb/TMDb) are kept even if they don't match TRIMARR_LANGUAGE. Useful for dubbed films.

Cible
TRIMARR_KEEP_NATIVE_AUDIO
Défaut
no|yes
Variable: TRIMARR_NO_BACKUPVariable

If set to 'yes', original files are deleted instead of renamed to .bak after successful processing.

Cible
TRIMARR_NO_BACKUP
Défaut
no|yes
Variable: TRIMARR_DRY_RUNVariable

If set to 'yes', performs a dry run without modifying any files. Defaults to 'yes' for safety — set to 'no' to allow actual processing.

Cible
TRIMARR_DRY_RUN
Défaut
yes|no
Variable: TRIMARR_STRIP_LOWER_CHANNELSVariable

If set to 'yes', audio tracks with channel count below the maximum surviving track are removed (e.g. drops 2ch if 8ch exists).

Cible
TRIMARR_STRIP_LOWER_CHANNELS
Défaut
no|yes
Variable: TRIMARR_STRIP_COMMENTARYVariable

If set to 'yes', audio and subtitle tracks whose name contains 'commentary' (case-insensitive) are removed.

Cible
TRIMARR_STRIP_COMMENTARY
Défaut
no|yes
Variable: TRIMARR_STRIP_SUBTITLE_REGEXVariable

Python regex pattern. Any subtitle track whose name matches is removed after language filtering, regardless of language. Uses Python re syntax. Example: '(?i)songs.*signs'

Cible
TRIMARR_STRIP_SUBTITLE_REGEX
Variable: TRIMARR_RUN_ON_STARTVariable

If set to 'yes', fires one run immediately on startup before the first scheduled cron fire. Requires TRIMARR_SCHEDULE to be set.

Cible
TRIMARR_RUN_ON_START
Défaut
no|yes
Variable: TRIMARR_TMDB_API_KEYVariable

Optional TMDb API key. Used as a fallback when IMDb identification fails. Get a free key at https://www.themoviedb.org/settings/api

Cible
TRIMARR_TMDB_API_KEY
Variable: TRIMARR_LOG_LEVELVariable

Logging level. Dropdown shows valid choices; INFO is default.

Cible
TRIMARR_LOG_LEVEL
Défaut
INFO|DEBUG|SUCCESS|WARNING|ERROR
Variable: TRIMARR_DATABASE_PATHVariable

Path to SQLite database for tracking processed files.

Cible
TRIMARR_DATABASE_PATH
Défaut
/config/trimarr/db/trimarr.db
Variable: TRIMARR_LOG_PATHVariable

Path to log file for tracking application events.

Cible
TRIMARR_LOG_PATH
Défaut
/config/trimarr/logs/trimarr.log
Variable: TRIMARR_MKVMERGE_PATHVariable

Path to mkvmerge executable. When omitted, trimarr manages its own binary (auto-downloaded and updated).

Cible
TRIMARR_MKVMERGE_PATH
Variable: TRIMARR_PRE_PROCESSVariable

Shell command to run before processing a directory. Use {leaf} for basename, {dir} for full path. Example: 'no_ransom.sh --unlock yes {leaf}'

Cible
TRIMARR_PRE_PROCESS
Variable: TRIMARR_POST_PROCESSVariable

Shell command to run after processing a directory. Use {leaf} for basename, {dir} for full path. Example: 'no_ransom.sh --unlock no {leaf}'

Cible
TRIMARR_POST_PROCESS
Variable: TRIMARR_COMMAND_TIMEOUT_MINSVariable

Timeout in minutes for each pre/post process command. Set to 0 to disable timeout.

Cible
TRIMARR_COMMAND_TIMEOUT_MINS
Défaut
5
Variable: TRIMARR_NO_UPDATE_CHECKVariable

If set to 'yes', skips the automatic check for a newer mkvmerge version.

Cible
TRIMARR_NO_UPDATE_CHECK
Défaut
no|yes
Variable: TRIMARR_SKIP_SIZE_CHECKVariable

If set to 'yes', bypasses the 50% output size guard. Use when legitimate remuxes produce significantly smaller files.

Cible
TRIMARR_SKIP_SIZE_CHECK
Défaut
no|yes
Variable: ENABLE_STARTUP_SCRIPTSVariable

Specify whether to run startup scripts to install and/or configure additional applications.

Cible
ENABLE_STARTUP_SCRIPTS
Défaut
no|yes
Variable: ENABLE_HEALTHCHECKVariable

Enable or disable healthchecks.

Cible
ENABLE_HEALTHCHECK
Défaut
yes|no
Variable: HEALTHCHECK_COMMANDVariable

The command or script to execute, if not specified then the script healthcheck.sh will be used (process, dns and https checking).

Cible
HEALTHCHECK_COMMAND
Variable: HEALTHCHECK_ACTIONVariable

The action to execute if the healthcheck command returns a non zero exit code, if not specified the action will be 'exit 1', if you want the container to exit on failure then set the action to 'kill 1'.

Cible
HEALTHCHECK_ACTION
Variable: HEALTHCHECK_HOSTNAMEVariable

The hostname used when performing HTTPS and DNS healthchecking.

Cible
HEALTHCHECK_HOSTNAME
Défaut
google.com
Variable: PUIDVariable

User ID for the running container

Cible
PUID
Défaut
99
Variable: PGIDVariable

Group ID for the running container

Cible
PGID
Défaut
100
Variable: UMASKVariable

UMASK for the running container

Cible
UMASK
Défaut
000

Détails

Référentiel
ghcr.io/binhex/arch-trimarr
Dernière mise à jour2026-05-31
Première vue2026-05-21

Exécutez binhex-trimarr sur Unraid.

binhex-trimarr est listé dans Community Apps pour Unraid OS. Explorez Unraid pour créer un serveur domestique flexible, un NAS ou un laboratoire domestique.