The Ʌideo Redactor icon

The Ʌideo Redactor

A free bulk metadata editor for MKV and MP4 video files — movies, TV, music videos, and everything else in a mixed library.

Download latest release View source on GitHub
The Ʌideo Redactor's Select Season & Episode dialog open over the main window, matching a TV file against Below Deck season 11's episode list, with a loaded library table of movies and TV episodes visible behind it.
Matching a TV episode via the Season & Episode picker, over the bulk-loaded library.

What it does

Built for people managing a mixed library of movies, TV episodes, music videos, and oddball clips who want mp3tag-style batch editing instead of clicking into files one at a time.

Features

Scripting: info, set, rename, move, check and redact also run from the command line: see the command line guide below.

Redact, and everything since

Everything below is in the current release. Redact is the one-click path; the individual tools above remain available.

Redact steps: check and repair (stamped into the file; a file that a lossless remux fully fixes is repaired, a damaged one is only reported), fill empty tags from the filename, fill empty tags from the folder path, and look up metadata (the local IMDb database first when one is set up, then TMDB, TheTVDB as the TV fallback; empty fields only). Optional, off by default: download a missing subtitle (hash match applied, title match reviewed), convert to MP4/MKV and ingest subtitles (the library rules above; the conversion asks its dry run per run), remux MKV to MP4 (verified, not together with the convert step), rename and move into folders. A guess such as a title-only match is listed under Needs review, not applied. Each changed file is rewritten on a scratch copy, verified (tags read back, same streams and duration) and swapped in.

Design principles

Never write metadata by surprise — in the lookup dialogs, TMDB and subtitle matches always go through a picker. The one exception is Redact, which you start yourself: it applies only matches at or above your confidence threshold (and only to empty fields), lists everything else under Needs review, and sends each original to the Recycle Bin. A file that can't load, save, or match shows a clear error instead of being silently skipped. Metadata reads/writes go through mutagen and mkvpropedit/mkvmerge rather than reimplementing container formats by hand.

Where the metadata comes from

The Ʌideo Redactor works on its own: editing, file checks, remuxing, conversion and duplicate finding need no outside source. Lookups are optional; in the lookup dialogs every match goes through a picker you confirm. Online sources are only asked when you run a lookup. The local database is built from files you download; the app never bundles or downloads them. Redact asks the local IMDb database first when one is set up, then TMDB (TheTVDB as the TV fallback) only for what is still empty, and never overwrites a field that has a value. The hub has all four apps side by side.

Online sources

SourceWhat it providesWhat you needNotes
TMDB Movies and TV: title, release date, synopsis, genre, director, cast and poster art, with a season and episode picker for shows. Your own TMDB API key. You register for it yourself; it is stored in your operating system’s credential store. Metadata > Look Up > TMDB (Movie) or TMDB (TV Show). The poster is saved as a sidecar image next to the video.
TheTVDB TV shows: series name, first air date, overview, poster, and season and episode titles, air dates and overviews. Your own TheTVDB API key, registered for yourself and stored in your credential store. Metadata > Look Up > TheTVDB (TV Show); also Redact’s TV fallback.
OpenSubtitles Subtitle files, saved next to the video. A hash match on the exact file is tried first (guaranteed in sync); a title search is the fallback and is flagged as not guaranteed to be in sync. Your own OpenSubtitles API key, registered for yourself and stored in your credential store. Metadata > Look Up > Subtitles. OpenSubtitles limits downloads; the app reports when the limit is hit. Redact’s subtitle step is off by default.

Local (offline) sources

SourceWhat it providesWhat you needNotes
IMDb datasets Offline and instant: title, release year (a fuller date you already have is kept), genres, and for a show its title plus the episode’s title, season and episode numbers. A film is also found by an alternative title (for example its Italian or German title). No plot, poster or cast; those still come from TMDB. You download IMDb’s free dataset files yourself from datasets.imdbws.com (title.basics.tsv.gz is required; title.ratings, title.episode and title.akas are optional) and build the database in Tools > IMDb Database. Cancel is safe. For personal, non-commercial use only; see Data and licences. Alternative-title regions include West Germany (ticked by default) and East Germany. Roughly 0.6–1 GB for the full files with the default options, 10–25 minutes and about 1 GB of scratch space while building (estimates from the start of IMDb’s files). Metadata > Look Up > IMDb (Local Database).

From the file itself

Licences and required acknowledgements for these sources are collected under Data and licences on the hub.

Information courtesy of IMDb (https://www.imdb.com). Used with permission.

This website uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB.

Command line

The Ʌideo Redactor can be driven from a terminal, a batch file or Task Scheduler. It is the same program: there is no second download. videoredactor.exe with a command name as its first argument runs that command and never opens a window; with no arguments, or with a file or folder, it opens the window as before. The commands use the same code as the window, so they give the same results, and not every window function has a command: these are the ones meant for scripting.

CommandWhat it does
infoShow each video's container, resolution, codecs, length, check result and tags.
setSet or clear tags (-s show_title=Dune -s season=1); only the tags are written, the video is not re-encoded, and the save is read back and compared.
renameRename from the tags with a pattern such as %show_title% - S%season_number%E%episode_number% - %title%; poster and subtitle files go with the video.
moveMove or copy into a folder tree under your library root, %show_title%/Season %season_number%/%title%.
checkCheck each file for damage; --repair fixes the ones a lossless remux can, --stamp records the result in the file.
redactRun the same Redact recipe as the window: check and repair, tags from the file name and path, TMDB / TheTVDB / IMDb lookups, subtitles, MKV to MP4, rename, move.
videoredactor info "D:\Series\Dune" --fields title,season,episode
videoredactor set "D:\Series\Dune" -s show_title=Dune -s season=1 -n
videoredactor check "D:\Films" --repair --trash-dir "D:\Trash" --json -o check.json
videoredactor rename "D:\Series\Dune" -p "%show_title% - S%season_number%E%episode_number% - %title%" --zero-pad 2
videoredactor move "D:\Incoming" -p "%show_title%/Season %season_number%/%title%" --root "D:\Library"
videoredactor redact "D:\Incoming" --disable lookup --disable subtitles --trash-dir "D:\Trash"

Every command takes videos, folders (searched recursively; -R for the top level only) or wildcards. Every command that changes videos has -n / --dry-run to preview the result first. --json prints one JSON document instead of text, -o FILE writes the result to a file, and -q silences progress. The exit code says how it went: 0 done, 1 some videos failed, 2 bad arguments, 70 an internal error, 130 interrupted.

check --repair never touches a file that is damaged (a repair would drop its unreadable end); that stays a decision for Media > Check Files in the window. API keys are read from the TMDB_API_KEY, TVDB_API_KEY and OPENSUBTITLES_API_KEY environment variables if set, else from the app's saved ones.

Using it from scripts (Windows)

The Windows program is a windowed one, so an interactive shell does not wait for it. For automation ask for the result in a file, wait for the process, and read the exit code:

videoredactor.exe check "D:\Films" --json --output "%TEMP%\check.json"
if errorlevel 1 echo something failed

start /wait videoredactor.exe redact "D:\Incoming" --quiet

# PowerShell
$p = Start-Process videoredactor.exe -ArgumentList 'redact','D:\Incoming','--json','-o','C:\Temp\redact.json' -Wait -PassThru
$p.ExitCode

In a batch file write %% for each % of a pattern (-p "%%series%% %%title%%"), as cmd expands a single %name% itself. On Linux the program behaves like any command-line tool. The full reference, with every option and JSON field, is in the repository documentation.

Requirements

Two downloads on each release: a standalone .exe for Windows, and videoredactor-linux-x86_64.tar.gz for 64-bit Linux (Ubuntu 22.04+, Debian 12+, Fedora 36+, Mint 21+ and the like — unpack and run; settings live in ~/.config/videoredactor/). No separate Python install needed on either. Remuxing and thumbnail extraction need ffmpeg; MKV metadata read/write needs MKVToolNix — the app warns on first launch if either is missing from PATH. Full details and the changelog are in the GitHub repository.

The rest of the family

The Ʌideo Redactor shares its UI and core editing patterns with three sibling tools, via redactor_common:

The ƆBZ Redactor The ƎPUB Redactor The ɯP3 Redactor

More tools

Dossier Pluteus All the Redactor Tools Kinderkopje