Skip to content

About

Windows app to prepare TV episodes & anime for Plex/Jellyfin: frame-exact intro/credits detection & cutting (with or without templates), Skip-Intro chapters, HandBrake-style converter, loudness tools, mpv player. 19 languages.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MediaPrep Toolkit

A Windows app for getting TV episodes and anime ready for Plex / Jellyfin: find and remove intros and credits (or mark them with Skip Intro chapters), export theme songs, even out loudness across a season, and check that nothing was lost or broken along the way. Built on FFmpeg.

Successor of the original single-file Intro & Credits Toolkit. Version 2.0 is a near-complete rewrite: frame-exact detection (with or without templates, by sound and picture), a review-before-encoding workflow, a HandBrake-style converter, Plex-ready presets, audio tools, an mpv-based player, a job queue, a modern Fluent UI with 13 themes and 19 languages.

Download from Releases:

  • MediaPrep-Toolkit-Portable-2.0.1.exe - single file, run it anywhere; your data goes into a mediaprep-data folder next to it. The first start unpacks the app once (a few seconds), later starts take under a second.
  • MediaPrep Toolkit v2.0.1.zip - unzip anywhere and run MediaPrep Toolkit.exe (fastest start).

FFmpeg and mpv are included - nothing else to install.

Features

Detection (all modes)

  • Finds intros, credits, pre-intros and after-credits by sound, picture or both, then places every edge frame-exact using the picture (sound can't tell where a silent gap belongs). Edges that can only be approximate (fades, no picture cut) are marked ⚠.
  • Template matching follows the template's own first/last frame; template- free scans add a 1-frame safety margin (0-5) so no single intro frame flashes at the join. Works across releases (720p, shifted, 25 fps PAL).
  • tools/accuracy_test.py - reusable accuracy test suite.

Templates

  • Cut template - frame-accurate preview player (with sound), Set the current frame as a boundary, Snap it to the nearest silence / black frame, cut pre-intro / intro / credits / after-credits template clips.
  • Auto-detect - point it at a season (2+ episodes): it finds the intro and credits without any template by spotting audio that recurs across episodes. Shows with several openings/endings (anime!) get one row per variant. Audition a row across episodes before cutting it.
  • Templates manager - list, play, rename, import, reveal or trash templates.

Cut / Edit

  • Auto-detect batch - match every episode in Media\videos against all template variants and process the whole folder.
  • Review first (detect only) - dry run: every episode lands in the Multi cut list with its detected times, weak matches flagged ⚠, so you can fix them before hours of encoding.
  • Manual cut with Auto-detect: fills the boxes from the best template match, a ▾ list offers the other candidates (other OP/ED variants), then nudge to the exact frame with Set / Snap / arrow keys.
  • Multi cut - many files, each with its own times; Up/Down flicks between episodes at the same timestamp.
  • Run modes: Cut, Inject keyframes, or Add chapter markers (stream copy - no re-encode - Plex/Jellyfin offer Skip Intro).
  • Codecs: Plex-ready HEVC / H.264 (near-lossless, bitrate capped below the source so files never grow, Plex-friendly audio, MKV), H.264, H.265, AV1, NVIDIA NVENC (automatic CPU fallback without an NVIDIA GPU), or Auto.
  • Seamless joins: audio is built in one pass over all kept pieces, so there is no dropout at the cut points and sound stays in sync.
  • Every audio track kept (5.1 stays 5.1, DTS → E-AC3), subtitles kept with their forced/default flags (optional language filter), a [VERIFY] check after each file, finished sources moved to videos\done.
  • Per-show presets and Add to queue for overnight runs.

Convert (HandBrake replacement)

  • Queue of files/folders, built-in and own presets (Plex-ready HEVC/H.264, high quality, small file, AV1, archive, fast GPU).
  • H.264 / HEVC / AV1 (CPU or NVENC), CRF/CQ or bitrate, never-bigger cap, resize, auto crop, deinterlace, denoise, deblock, HDR→SDR.
  • Per-track audio (copy/AAC/AC3/E-AC3/Opus/FLAC, downmix) and subtitles (keep, default, forced, burn-in), MKV or MP4.
  • Preview: encode a 10 s sample, compare it A/B, see the estimated size and time first.

Audio

  • Theme Audio - export the intro as theme.mp3 for Plex, with fades, optional -16 LUFS normalisation and a preview.
  • Audio Gain - gain by dB, two-pass LUFS (per track, true-peak ceiling) or peak, for one file or a whole season with a LUFS / peak / gain table, per-language track picker and "only fix outliers".

Inspect

  • Dual Player - original vs cleaned side by side, linked seeking.
  • Compare - tracks (dropped tracks/languages, flags, attachments) and picture quality (SSIM, PSNR, VMAF) with auto-alignment.
  • Check - quick or full-decode check of files/folders for corruption.

App

  • Video player powered by mpv (GPU decoding, instant frame stepping, 16:9 preview); falls back to OpenCV if mpv is missing.
  • Fluent design: sidebar navigation, info icons instead of walls of text, fixed pages that scroll instead of reflowing, progress always visible.
  • "Limit CPU use" (on by default): low priority + thread cap for all encodes.
  • Job queue with status bar, Windows notifications when long jobs finish, update check (GitHub releases), per-tab ? help.
  • 13 themes incl. Follow Windows, Plex, Gold on Dark, Nord, Dracula, Solarized; all pass WCAG 4.5:1 text contrast.
  • 19 languages: English, Svenska, Español, Deutsch, Français, Português (BR), Italiano, Русский, 日本語, 简体中文, Norsk bokmål, Dansk, Suomi, Polski, Nederlands, Türkçe, 한국어, हिन्दी, Bahasa Indonesia.
  • Nothing is ever deleted outright - "delete" means Data\temp\trash.

Folders

Created next to the app on first start:

Folder Contents
Media\videos episodes to process (done\ = finished sources)
Media\output cleaned episodes
Media\templates\{intro,credits,preintro,aftercredits} template clips
Media\Audio Gain\{input,output} Audio Gain batch
Data\ settings.json, presets\, logs\, temp\ (+ trash\), backups\

Upgrading from 1.x: the old folders are moved into Media\ / Data\ automatically on first start (nothing is deleted).

Running from source

Requires Windows, Python 3.10+ and FFmpeg on PATH.

Install Requirements.bat
Start Toolkit.bat

tools\Start Toolkit (debug console).bat shows Python errors in a console. Build the exe with python tools\build_exe.py (PyInstaller).

Project layout

intro_credits_toolkit.py   launcher
app/
  app.py  config.py  i18n.py  migrate.py  jobs.py  notify.py  updater.py
  presets.py  helpdocs.py  applog.py  selftest.py
  engine/   ffmpeg/ffprobe work, no UI: probe, process, files, encode,
            detect, recurring, cut, chapters, subs, loudness, snap
  ui/       widgets, player, playback, dual player, dialogs, themes, cleanup
  tabs/     templates*, cut_*, theme_audio, audio_gain*, compare, check, log
  locales/  one JSON catalog per language (tools/i18n_extract.py --check)
  assets/   icon
tools/      build script, PyInstaller spec, i18n extractor, debug launcher

Translations

UI strings are English keys wrapped in tr(). Run python tools\i18n_extract.py --check to see missing keys per language; corrections to app/locales/<lang>.json are welcome.

License

MediaPrep Toolkit is free software under the GNU General Public License v3.0 or later - see LICENSE.

The release builds bundle FFmpeg (gyan.dev full build, GPLv3) and mpv (GPLv2+) - see _internal fmpeg\README-ffmpeg.txt and _internal\mpv\README-mpv.txt for their licenses and source links.

About

Windows app to prepare TV episodes & anime for Plex/Jellyfin: frame-exact intro/credits detection & cutting (with or without templates), Skip-Intro chapters, HandBrake-style converter, loudness tools, mpv player. 19 languages.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages