Skip to main content

animux

animux is a powerful command-line tool for muxing multiple language versions of anime episodes into a single, high-quality MKV file. It intelligently scans your directories, handles mkvmerge via Docker, and can even fetch and synchronize subtitles for a complete viewing experience.

Features

  • Automatic File Discovery: Recursively scans for and groups episode files based on common naming conventions (e.g., ... (German Dub).mp4).
  • Seamless Muxing: Uses mkvtoolnix within a Docker container to ensure a clean and reliable muxing process.
  • Smart Subtitle Handling: If a Japanese audio track is detected, animux will:
    • Search for and download the best-matching subtitles using subliminal.
    • Perfectly synchronize the subtitles to the audio track with ffsubsync.
  • Efficient Cleanup: After muxing, you'll be prompted to delete the original source files and .trickplay folders to save space.
  • Rich Console Output: Provides clear, colored, and informative feedback on the entire process.

Prerequisites

Before you begin, ensure you have the following installed on your system:

  • Python 3.8+
  • Docker: The mkvtoolnix Docker image is used for muxing. The tool will attempt to pull the image if it's not found locally.
  • FFmpeg: Required by ffsubsync for subtitle synchronization.

Installation

You can install animux directly from this repository. For development, it's recommended to use an editable install.

  1. Clone the repository:

    git clone https://github.com/your-username/animux.git
    cd animux
    
  2. Install the package:

    pip install -e .
    

    The -e flag makes the installation editable, so any changes you make to the source code will be immediately effective.

Usage

The primary command for animux is straightforward. Simply point it to the directory containing your episode files.

animux --dir /path/to/your/series

Options

  • --dir: (Required) The target directory to scan for episode files.
  • -y, --yes: (Optional) If this flag is provided, the cleanup prompt will be skipped, and source files will be automatically deleted after muxing.

Example

Suppose you have a directory structure like this:

/media/hdd/series/
  ├── My Awesome Anime - 01 - (German Dub).mp4
  ├── My Awesome Anime - 01 - (German Sub).mp4
  └── My Awesome Anime - 01 - (English Dub).mp4

You would run:

animux --dir /media/hdd/series

The tool will then:

  1. Identify the three files as belonging to "My Awesome Anime - 01".
  2. Mux them into a single My Awesome Anime - 01.mkv.
  3. Since a "Sub" version is present, it will search for and sync German subtitles.
  4. Finally, it will ask if you want to delete the original .mp4 files.

Metadata

Release files for animux 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for animux 1.0.2
File Size Uploaded
animux-1.0.2.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for animux 1.0.2
File Interpreter ABI Platform
animux-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.9 kB

Release files / animux-1.0.2.tar.gz

Download URL animux-1.0.2.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
87d674104990e8d3aabac85c8b844d3f51a9e2b7dd934bf9f337a0a534fd6e9f
BLAKE2b-256 checksum
How to use checksums
391c1dba58c04c53d91a7ec27fef18a72189b82c0465a874f07c9014fee34782
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 29, 2025.

Transparency log

Release files / animux-1.0.2-py3-none-any.whl

Download URL animux-1.0.2-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
958e8fb84b5854a091d70061bf539c21b927f3166abf23880562189db0391bcd
BLAKE2b-256 checksum
How to use checksums
8dc6808f4da2716ae8d5a1a892f6acac16d047ea60a3c244e2f33b7165f06e40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 29, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page