Create professional MKV remuxes with TMDB metadata, artwork, chapters, language handling, and MKVToolNix automation — without manually building mkvmerge commands.
G-TMCE is a cross-platform GUI application for creating, extracting, and managing MKV files on Linux and Windows.
It combines MKVToolNix, FFmpeg, and TMDB into a single workflow and automatically handles tasks that are normally performed manually:
- 🎬 MKV remuxing and extraction
- 🏷️ Automatic TMDB metadata (
tags.xml) generation - 🖼️ Automatic poster, backdrop, and logo downloads
- 🌐 Audio and subtitle language management
- 📖 Automatic chapter generation
- 🎯 Forced and SDH subtitle detection
- 🔊 Audio synchronization between different frame rates (23.976 ↔ 24 ↔ 25 FPS)
- 📦 Consistent MKV structure and output naming
Perfect for media archivists, remux creators, home media server users, and anyone who regularly works with MKVToolNix.
▶ Click the image above to watch the demo
Creating a properly tagged MKV often requires multiple tools and many manual steps:
- Search TMDB
- Download artwork
- Create
tags.xml - Configure tracks
- Set default audio/subtitle flags
- Handle forced or SDH subtitles
- Create chapters
- Build the final
mkvmergecommand
G-TMCE automates the entire process and keeps every MKV organized using predictable naming rules and metadata handling.
- Automatic MKVToolNix config generation
- TMDB metadata and artwork integration
- Automatic
tags.xmlgeneration - Automatic output naming from TMDB titles
- Automatic chapter generation
- Language-aware audio and subtitle ordering
- Default audio/subtitle selection rules
- Forced and SDH subtitle detection
- Audio and video append support
- Automatic FPS detection
- Generated
.generated.mtxcfgaudit file for every mux
- Video, audio, subtitle, attachment, chapter, and tag extraction
- Automatic track naming
- Forced/SDH subtitle naming
- FPS-aware video extraction
- Extraction output ready for re-muxing
- Delay adjustment
- Audio trimming/cutting
- Codec conversion
- Bitrate and sample-rate conversion
- Channel-layout conversion
- Volume boost
- PAL speedup presets
- NTSC ↔ PAL audio synchronization
- 23.976 ↔ 24 ↔ 25 FPS conversion workflows
- Audio speed correction for remux projects
Runtime:
- Linux
- Python 3.10+
- Tkinter
- Pillow
Supported Architectures:
| Component | Supported |
|---|---|
| MKVToolNix AppImage | Linux x86_64 |
| FFmpeg | Linux x86_64, Linux aarch64 |
| Windows EXE | Windows x86_64 |
G-TMCE is available on the Arch User Repository as g-tmce.
# Using yay
yay -S g-tmce
# Using paru
paru -S g-tmce
# Manual
git clone https://aur.archlinux.org/g-tmce.git
cd g-tmce
makepkg -siThe AUR package installs the g-tmce launcher command, desktop menu entry, application icon, and Dolphin/KDE service menu integration.
Optional native file dialog helpers:
sudo pacman -S --needed kdialog zenitygit clone https://github.com/G-grbz/G-TMCE.git
cd G-TMCEchmod +x install.sh && sudo ./install.shThe installer automatically installs required system dependencies, desktop launcher entries, application icons, Dolphin context menu integration, and creates the g-tmce launcher command.
Supported distributions: Debian / Ubuntu, Fedora, Arch Linux, openSUSE
Pre-built executables and AppImages are available on the Releases page.
Windows support has been added. A pre-built
.exeis available for download on the Releases page.VirusTotal Note: A few antivirus engines may occasionally flag G-TMCE as suspicious. The application uses FFmpeg and MKVToolNix, works directly with media files, and launches external processes as part of its normal operation. Because of this, some machine learning–based antivirus solutions may generate false positives.
At the time of writing, the latest release is detected by 5 out of 71 security vendors on VirusTotal, while major vendors such as BitDefender, Kaspersky, ESET, Malwarebytes, Sophos, and Trend Micro report the file as clean.
Windows EXE:
py -3 -m pip install --upgrade pillow tkinterdnd2 pyinstaller
py -3 build_windows_exe.pyOutput: dist\G-TMCE.exe
On first launch, the EXE registers a per-user Explorer context menu entry for supported media containers. The menu item is named Open with G-TMCE Extract. No admin permission is required as registry entries are written under HKEY_CURRENT_USER. If you move the portable EXE, launch it once from the new location to refresh the context menu command path.
dist\G-TMCE.exe --install-context-menu
dist\G-TMCE.exe --uninstall-context-menuAppImage:
chmod +x build_appimage.sh
./build_appimage.shOutput: G-TMCE-x86_64.AppImage
# As a command
g-tmce
# Directly
python3 mkv_creator_ui.pyG-TMCE does not depend on system-installed MKVToolNix or FFmpeg binaries. On first use, the application automatically creates the 3rdParty/ directory and downloads:
- MKVToolNix AppImage →
mkvmerge,mkvextract - FFmpeg build →
ffmpeg,ffprobe
Automatic Updates: Latest versions are checked once per session. New versions are downloaded before old versions are removed; old versions are cleaned automatically after successful installation.
If there is no internet connection, existing installed tools continue to work. Operations fail only if no previous installation exists.
Persistent files:
3rdParty/bin/
3rdParty/installed.json
- Select the track folder
- Enter your TMDB API key
- Select media type (
movieortv), artwork language, and tag language - Press
Find ID - Optionally enter video FPS, default audio languages, and default subtitle languages
- Press
Download Artwork/Tags - Press
Create MKV
- Select the source MKV
- Track scan opens automatically
- Optionally refresh with
Scan MKV - Toggle off unwanted items
- Press
Extract Selected
The extraction folder is automatically set as the current track folder.
The selected track folder should contain one media track per file. Files extracted with G-TMCE are already named in the expected format.
Media track files must be placed directly inside the selected track folder. Font attachments can be inside subfolders.
Recommended naming style:
<language>[.<flag>...][.<fps>].<extension>
Examples:
und.23.976.h265
en.eac3
tr.ac3
forced.en.srt
sdh.tr.srt
tr.ass
| Type | Extensions |
|---|---|
| Video | .h264 .h265 .hevc .avc .m1v .m2v .ivf |
| Audio | .aac .ac3 .eac3 .ec3 .dts .dtshd .flac .m4a .mp2 .mp3 .ogg .opus .thd .truehd .wav |
| Subtitle | .srt .ass .ssa .vtt .sup .sub |
G-TMCE reads the language from filename tokens separated by dots, underscores, hyphens, or spaces. Use a clear two-letter language code whenever possible:
en.eac3 tr.srt ja.ass
Common aliases are also accepted:
| Alias | Language |
|---|---|
eng |
en |
tur |
tr |
jpn |
ja |
deu / ger |
de |
fre / fra |
fr |
spa |
es |
If the filename contains und, the track is treated as unknown and inherits the selected tag language during muxing.
Video FPS can be detected from the video filename when it appears as its own token:
und.23.976.h265
und.24.h264
und.24000/1001.h265
If the Video FPS field in the UI is filled, that value overrides the filename-detected FPS.
Forced subtitles are detected from these tokens: forced, force, forc
forced.en.srt en.forced.ass
- Track name becomes
Forced - Forced display flag is enabled
SDH / hearing-impaired subtitles are detected from these tokens: sdh, hi, cc, hearing
sdh.en.srt tr.cc.ass
- Track name becomes
SDH - Hearing-impaired flag is enabled
If both tokens are present, the track name becomes Forced SDH.
Split audio files can be appended automatically. The main file and numbered parts must share the same base name and extension:
en.eac3
en.1.eac3
en.2.eac3
.1must exist for append detection to start.2,.3, etc. are appended in numeric order- Append parts are not added as separate tracks
- Audio and video append is supported; subtitle append is not
In the Add Tracks window, audio rows have a + control to append one or more audio files to the selected track without manually placing numbered files in the folder.
The following artwork files are attached automatically when present in the selected track folder:
cover.jpg small_cover.jpg
cover_land.jpg small_cover_land.jpg
logo.png
Cover artwork is normalized to Matroska cover-art sizes:
cover.jpgandcover_land.jpg: 600 px on the smallest sidesmall_cover.jpgandsmall_cover_land.jpg: 120 px on the smallest side
Font files are attached automatically and may be placed directly in the track folder or inside subfolders.
Supported font extensions: .ttf .otf .ttc .otc .woff .woff2
Font attachment notes:
- Keep the original font files used by
.ass/.ssasubtitles - Avoid duplicate font filenames that differ only by letter case
- Attachment names are written using the file name
Movie.Name.2025_tracks/
und.23.976.h265
en.eac3
tr.ac3
forced.en.srt
tr.ass
cover.jpg
small_cover.jpg
cover_land.jpg
small_cover_land.jpg
logo.png
fonts/
Arial.ttf
SomeSubtitleFont.otf
Key points:
- Use clear language tokens such as
en,tr,ja, orund - Put metadata words like
forcedandsdhin separate filename tokens - Keep media track files at the top level of the track folder
- Keep append parts beside the main file
- Use extracted single-track files for predictable muxing
G-TMCE can automatically download:
cover.jpg small_cover.jpg cover_land.jpg small_cover_land.jpg logo.png
It can also automatically generate tags.xml.
If tags.xml already exists it is not overwritten, but missing G-TMCE app tags are added. Existing artwork files are also kept and skipped by the TMDB download step. During muxing, --global-tags is automatically applied.
The final MKV filename is generated from the TMDB title using the selected artwork language.
Example:
Artwork language: tr
TMDB title: Interstellar
Output: Yıldızlararası.mkv
Find ID also attempts to detect title and year from folder names:
Project.Hail.Mary.2026.1080p... → Project Hail Mary (2026)
Tracks without a detectable language (und.*) automatically inherit the selected tag language during muxing.
Language priority can be entered as:
en,tr,jp
- The first matching language becomes default
- Video tracks stay first
- Audio tracks are grouped together after video tracks
- Matching audio languages are moved to the top of the audio group
If subtitle priority is empty, no subtitle track becomes default.
Subtitle tracks are grouped after audio tracks. When subtitle priority is set, matching languages are moved to the top of the subtitle group. Forced subtitles only become default if explicitly selected by language priority.
Template config is optional. If no config is provided, G-TMCE automatically generates a mux template using known track extensions such as:
*.h264 *.h265 *.ac3 *.eac3 *.srt
If chapters.txt does not exist and automatic chapters are enabled, G-TMCE generates chapters using: chapter name, interval, start number, and end minute. When intro-end detection is enabled, the first automatic chapter is aligned to the detected intro end when the signal is reliable; otherwise the normal interval-based start is used.
Example output:
CHAPTER03=00:30:00.000
CHAPTER03NAME=ggrbz 3
Durations over 60 minutes are automatically written as:
01:00:00.000
Second extracted tracks with the same language are numbered with parentheses so they stay separate from append parts:
eng.(2).srt
tur.(2).srt
Append parts still use plain numeric suffixes, such as eng.1.eac3 and eng.2.eac3, and are appended to eng.eac3.
Extracted video tracks include the detected FPS:
und.23.976.h264
If mkvmerge exits with code 1, the operation is still considered successful because MKVToolNix uses exit code 1 for warnings.
The following settings are saved automatically:
- TMDB API key
- Media type
- Artwork language
- Tag language
- Video FPS
- Chapter settings
Location: ~/.config/g-tmce/settings.json
- Missing optional tracks are skipped automatically
- Missing TMDB artwork does not stop muxing
- Existing artwork files are reused if already present
- Every mux operation writes a
*.generated.mtxcfgfile beside the output MKV for auditing and debugging
