{"id":31891972,"url":"https://github.com/timgels/matroska-batch-flow","last_synced_at":"2026-02-01T00:27:47.114Z","repository":{"id":315949467,"uuid":"975634135","full_name":"TimGels/Matroska-Batch-Flow","owner":"TimGels","description":"Matroska Batch Flow is a tool for batch processing Matroska files with ease. Quickly modify container properties across multiple files and streamline your workflow.","archived":false,"fork":false,"pushed_at":"2025-09-21T19:27:48.000Z","size":15835,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-21T20:45:18.882Z","etag":null,"topics":["batch-processing","cross-platform","csharp","dotnet","matroska-files","mkv","uno-platform"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimGels.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"timgels","github":"TimGels"}},"created_at":"2025-04-30T16:29:18.000Z","updated_at":"2025-09-21T19:27:51.000Z","dependencies_parsed_at":"2025-09-21T20:55:36.755Z","dependency_job_id":null,"html_url":"https://github.com/TimGels/Matroska-Batch-Flow","commit_stats":null,"previous_names":["timgels/matroska-batch-flow"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/TimGels/Matroska-Batch-Flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimGels%2FMatroska-Batch-Flow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimGels%2FMatroska-Batch-Flow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimGels%2FMatroska-Batch-Flow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimGels%2FMatroska-Batch-Flow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimGels","download_url":"https://codeload.github.com/TimGels/Matroska-Batch-Flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimGels%2FMatroska-Batch-Flow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279014302,"owners_count":26085491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["batch-processing","cross-platform","csharp","dotnet","matroska-files","mkv","uno-platform"],"created_at":"2025-10-13T08:22:25.549Z","updated_at":"2026-02-01T00:27:47.101Z","avatar_url":"https://github.com/TimGels.png","language":"C#","funding_links":["https://buymeacoffee.com/timgels","https://github.com/sponsors/TimGels"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://github.com/TimGels/Matroska-Batch-Flow\"\u003e\n    \u003cimg src=\"Assets/Logo-Medium.png\" width=\"200\" alt=\"Matroska Batch Flow Logo\"\u003e\n  \u003c/a\u003e\n  \u003cbr\u003e\n  Matroska Batch Flow\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003eA powerful tool for batch editing Matroska file properties.\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#what-is-matroska-batch-flow\"\u003eIntroduction\u003c/a\u003e •\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#screenshots\"\u003eScreenshots\u003c/a\u003e •\n  \u003ca href=\"#download\"\u003eDownload\u003c/a\u003e •\n  \u003ca href=\"#support-the-project\"\u003eSupport the Project\u003c/a\u003e •\n  \u003ca href=\"#development\"\u003eDevelopment\u003c/a\u003e •\n  \u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e •\n  \u003ca href=\"#credits\"\u003eCredits\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![GitHub Release](https://img.shields.io/github/v/release/TimGels/Matroska-Batch-Flow?logo=github\u0026sort=semver)](https://github.com/TimGels/Matroska-Batch-Flow/releases)\n\n\u003c/div\u003e\n\n## Introduction\n\n**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](https://mediaarea.net/en/MediaInfo) for extracting detailed file information, as well as [MKVToolNix's](https://mkvtoolnix.org) mkvpropedit for fast, direct container property editing.\n\nWhether 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.\n\n\u003e [!WARNING]\n\u003e This project is currently under active development with no stable release yet. Expect bugs, incomplete features, and breaking changes with pre-release builds.\n\n\u003e [!NOTE]\n\u003e Consider [supporting the project](#support-the-project) to help with its continued development.\n\n## Features\n\n| Feature | Description |\n| --------- | ------------- |\n| **Batch Editing** | Modify container properties (track names, languages, and more) for multiple files at once |\n| **Modern GUI** | Intuitive interface built with WinUI 3 and Uno Platform |\n| **Drag-and-Drop** | Add files or folders by dragging them into the application |\n| **Flexible Validation** | Three configurable strictness levels for file validation (see [Validation Modes](#validation-modes)) |\n| **Track Availability Indicators** | Visual indicators showing track coverage across files in your batch |\n| **Themes** | Choose between Light, Dark, or System theme |\n\n### Validation Modes\n\n- **Strict Mode** — Enforces consistent track counts and properties across all files *(default)*\n- **Lenient Mode** — Allows files with different track counts, with non-blocking notifications\n- **Custom Mode** — Configure validation severity per track type and property for maximum control\n\n## Screenshots\n\n\u003e [!NOTE]\n\u003e Screenshots show the WinUI 3 (WinAppSDK) Windows build.\n\n\u003cdetails\u003e\n\n\u003csummary\u003eView Screenshots\u003c/summary\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Assets/Screenshots/Input-Page.jpg\" alt=\"Input Page\" width=\"800\"\u003e\n  \u003cbr\u003e\u003cem\u003eInput Page - Add files for batch processing\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Assets/Screenshots/Audio-Config-Page.jpg\" alt=\"Audio Configuration Page\" width=\"800\"\u003e\n  \u003cbr\u003e\u003cem\u003eAudio Configuration - Edit audio track properties\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Assets/Screenshots/Results-Page.jpg\" alt=\"Results Page\" width=\"800\"\u003e\n  \u003cbr\u003e\u003cem\u003eResults Page - Review processing results\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Assets/Screenshots/Settings-Page.jpg\" alt=\"Settings Page\" width=\"800\"\u003e\n  \u003cbr\u003e\u003cem\u003eSettings Page - Customize application preferences\u003c/em\u003e\n\u003c/p\u003e\n\n\u003c/details\u003e\n\n## Support the Project\n\nMatroska 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.\n\nDonations can be made as a one-time donation or a recurring sponsorship. Your support helps cover development time and motivates continued development.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/sponsors/TimGels\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_on_GitHub-ea4aaa?style=for-the-badge\u0026logo=github\" alt=\"GitHub Sponsors\"\u003e\u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://buymeacoffee.com/timgels\"\u003e\u003cimg src=\"https://img.shields.io/badge/Buy_Me_a_Coffee-ffdd00?style=for-the-badge\u0026logo=buymeacoffee\u0026logoColor=black\" alt=\"Buy Me a Coffee\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Download\n\nPre-release builds are available on the [Releases page](../../releases). Currently, only Windows builds are available. Note that these are early builds and are expected to contain bugs or incomplete features.\n\n## Development\n\nFollow these instructions to set up the project locally for development and testing.\n\n\u003e [!WARNING]\n\u003e The cross-platform Skia target (`net10.0-desktop`) is currently experimental and unsupported. Expect bugs, missing features, and platform-specific issues.\n\n### Prerequisites\n\nThese prerequisites are required to build the project:\n\n| Requirement | Notes |\n| ------------- | ------- |\n| **Windows 11** | Required for WinAppSDK target |\n| **[.NET 10 SDK](https://dotnet.microsoft.com/download)** | Required for building and running the application |\n| **[mkvpropedit](https://mkvtoolnix.download/)** | Already included in WinAppSDK builds |\n\n| Recommended | Notes |\n| ------------- | ------- |\n| **[Visual Studio 2022 or later](https://visualstudio.microsoft.com/)** | Recommended IDE for development |\n| **[Uno Platform Extension for Visual Studio](https://platform.uno/docs/articles/getting-started/installation.html)** | Helps with Uno Platform development |\n\n### Installation\n\n1. Clone the repository:\n\n   ```bash\n   git clone https://github.com/TimGels/Matroska-Batch-Flow.git\n   cd Matroska-Batch-Flow\n   ```\n\n2. Restore dependencies:\n\n   ```bash\n   dotnet restore\n   ```\n\n3. Build and run (see [Development](#development) for detailed instructions)\n\n### Project Structure\n\nThe project is organized as follows:\n\n```bash\nMatroska-Batch-Flow/\n├── src/\n│   ├── MatroskaBatchFlow.Core/                 # Core business logic library\n│   ├── MatroskaBatchFlow.Console/              # CLI utility (reserved for future use)\n│   └── MatroskaBatchFlow.Uno/                  # WinUI 3 / Skia GUI application\n└── tests/\n    ├── MatroskaBatchFlow.Core.UnitTests/       # Unit tests for core library\n    ├── MatroskaBatchFlow.Uno.UnitTests/        # Unit tests for GUI application\n    └── MatroskaBatchFlow.Uno.IntegrationTests/ # Integration tests for GUI application\n```\n\n| Project | Purpose |\n| --------- | --------- |\n| **MatroskaBatchFlow.Core** | Cross-platform core library containing the main business logic of the application |\n| **MatroskaBatchFlow.Console** | Command-line interface (reserved for future use) |\n| **MatroskaBatchFlow.Uno** | The GUI application powered by Uno Platform. Available targets: WinAppSDK (Windows), Skia Desktop (experimental cross-platform) |\n\n### Building\n\nTo build the application, choose one of the following methods:\n\n#### Visual Studio (Recommended)\n\n1. Open `MatroskaBatchFlow.sln` in Visual Studio\n2. Set `MatroskaBatchFlow.Uno` as the startup project\n3. Select the `net10.0-windows10.0.19041` target framework\n4. Press \u003ckbd\u003eF5\u003c/kbd\u003e to build and run with debugging\n\n#### Command Line\n\n```powershell\n# WinAppSDK (Recommended)\ndotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041\n\n# Skia Desktop (Experimental)\ndotnet build src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-desktop\n```\n\n### Running\n\n```powershell\ndotnet run --project src/MatroskaBatchFlow.Uno/MatroskaBatchFlow.Uno.csproj -f net10.0-windows10.0.19041\n```\n\n\u003e [!TIP]\n\u003e `dotnet run` automatically builds the project if needed.\n\n### Testing\n\n```powershell\n# Run all tests\ndotnet test\n\n# Run a specific test project. In this example, the core project unit tests.\ndotnet test tests/MatroskaBatchFlow.Core.UnitTests\n```\n\n## Contributing\n\nThis is a personal project. If you encounter a bug or have a feature suggestion, you're welcome to [open an issue](../../issues), 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.\n\n## Credits\n\nThis project relies on the following tools:\n\n- **[MediaInfo](https://mediaarea.net/en/MediaInfo)** — Media file analysis library\n- **[MKVToolNix](https://mkvtoolnix.download/)** — Matroska tools including `mkvpropedit`\n- **[Uno Platform](https://platform.uno/)** — Open-source .NET platform for building cross-platform applications\n- **[Windows App SDK](https://learn.microsoft.com/windows/apps/windows-app-sdk/)** — Modern Windows development platform\n\n## License\n\nThis project is licensed under the **GNU General Public License v3.0** — see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimgels%2Fmatroska-batch-flow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimgels%2Fmatroska-batch-flow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimgels%2Fmatroska-batch-flow/lists"}