Skip to content

Matroska Batch Flow is a tool for batch processing Matroska files with ease. Quickly modify container properties across multiple files and streamline your workflow.

License

Notifications You must be signed in to change notification settings

TimGels/Matroska-Batch-Flow

Repository files navigation

Matroska Batch Flow Logo
Matroska Batch Flow

A powerful tool for batch editing Matroska file properties.

IntroductionFeaturesScreenshotsDownloadSupport the ProjectDevelopmentContributingCreditsLicense

License: GPL v3 GitHub Release

Introduction

Matroska Batch Flow is a powerful tool for batch processing Matroska (.mkv) files, designed to help you efficiently manage and modify large collections. It features a modern graphical user interface built with WinUI 3 and Uno Platform, and integrates MediaInfo for extracting detailed file information, as well as MKVToolNix's mkvpropedit for fast, direct container property editing.

Whether you're an archivist, home theater enthusiast, or anyone who works with Matroska files, Matroska Batch Flow helps you save time and effort. Quickly perform tasks like fixing language tags, updating track names, or preparing files for media servers such as Jellyfin. The tool is suitable for both small batches and large collections, making repetitive editing tasks efficient and ensuring consistency throughout your library.

Warning

This project is currently under active development with no stable release yet. Expect bugs, incomplete features, and breaking changes with pre-release builds.

Note

Consider supporting the project to help with its continued development.

Features

Feature Description
Batch Editing Modify container properties (track names, languages, and more) for multiple files at once
Modern GUI Intuitive interface built with WinUI 3 and Uno Platform
Drag-and-Drop Add files or folders by dragging them into the application
Flexible Validation Three configurable strictness levels for file validation (see Validation Modes)
Track Availability Indicators Visual indicators showing track coverage across files in your batch
Themes Choose between Light, Dark, or System theme

Validation Modes

  • Strict Mode — Enforces consistent track counts and properties across all files (default)
  • Lenient Mode — Allows files with different track counts, with non-blocking notifications
  • Custom Mode — Configure validation severity per track type and property for maximum control

Screenshots

Note

Screenshots show the WinUI 3 (WinAppSDK) Windows build.

View Screenshots

Input Page
Input Page - Add files for batch processing

Audio Configuration Page
Audio Configuration - Edit audio track properties

Results Page
Results Page - Review processing results

Settings Page
Settings Page - Customize application preferences

Support the Project

Matroska Batch Flow is free, open-source software built and maintained in my spare time. I built it to help me reduce the tedious task of spending hours manually fixing track properties across hundreds of files. If this tool has been helpful to you, consider supporting its continued development.

Donations can be made as a one-time donation or a recurring sponsorship. Your support helps cover development time and motivates continued development.

GitHub Sponsors   Buy Me a Coffee

Download

Pre-release builds are available on the Releases page. Currently, only Windows builds are available. Note that these are early builds and are expected to contain bugs or incomplete features.

Development

Follow these instructions to set up the project locally for development and testing.

Warning

The cross-platform Skia target (net10.0-desktop) is currently experimental and unsupported. Expect bugs, missing features, and platform-specific issues.

Prerequisites

These prerequisites are required to build the project:

Requirement Notes
Windows 11 Required for WinAppSDK target
.NET 10 SDK Required for building and running the application
mkvpropedit Already included in WinAppSDK builds
Recommended Notes
Visual Studio 2022 or later Recommended IDE for development
Uno Platform Extension for Visual Studio Helps with Uno Platform development

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/Matroska-Batch-Flow.git
    cd Matroska-Batch-Flow
  2. Restore dependencies:

    dotnet restore
  3. Build and run (see Development for detailed instructions)

Project Structure

The project is organized as follows:

Matroska-Batch-Flow/
├── src/
│   ├── MatroskaBatchFlow.Core/                 # Core business logic library
│   ├── MatroskaBatchFlow.Console/              # CLI utility (reserved for future use)
│   └── MatroskaBatchFlow.Uno/                  # WinUI 3 / Skia GUI application
└── tests/
    ├── MatroskaBatchFlow.Core.UnitTests/       # Unit tests for core library
    ├── MatroskaBatchFlow.Uno.UnitTests/        # Unit tests for GUI application
    └── MatroskaBatchFlow.Uno.IntegrationTests/ # Integration tests for GUI application
Project Purpose
MatroskaBatchFlow.Core Cross-platform core library containing the main business logic of the application
MatroskaBatchFlow.Console Command-line interface (reserved for future use)
MatroskaBatchFlow.Uno The GUI application powered by Uno Platform. Available targets: WinAppSDK (Windows), Skia Desktop (experimental cross-platform)

Building

To build the application, choose one of the following methods:

Visual Studio (Recommended)

  1. Open MatroskaBatchFlow.sln in Visual Studio
  2. Set MatroskaBatchFlow.Uno as the startup project
  3. Select the net10.0-windows10.0.19041 target framework
  4. Press F5 to build and run with debugging

Command Line

# WinAppSDK (Recommended)
dotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041

# Skia Desktop (Experimental)
dotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-desktop

Running

dotnet run --project src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041

Tip

dotnet run automatically builds the project if needed.

Testing

# Run all tests
dotnet test

# Run a specific test project. In this example, the core project unit tests.
dotnet test tests/MatroskaBatchFlow.Core.UnitTests

Contributing

This is a personal project. If you encounter a bug or have a feature suggestion, you're welcome to open an issue, but please ensure it's detailed and actionable. Low-effort submissions (low quality pull requests, vague reports, duplicate issues, feature requests without context) may be closed without action.

Credits

This project relies on the following tools:

  • MediaInfo — Media file analysis library
  • MKVToolNix — Matroska tools including mkvpropedit
  • Uno Platform — Open-source .NET platform for building cross-platform applications
  • Windows App SDK — Modern Windows development platform

License

This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.

About

Matroska Batch Flow is a tool for batch processing Matroska files with ease. Quickly modify container properties across multiple files and streamline your workflow.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Languages