Skip to content

v3.1.0

Choose a tag to compare

@svdC1 svdC1 released this 21 Jun 22:12
· 1 commit to main since this release

This release moves every long-running media operation into a background job system,
adds batch processing so one operation can run over many files at once, and makes the
GPU Docker images much smaller. As a v3.x release (see the v0.1.0 note above) it
includes a few breaking changes, listed first

Breaking Changes

  • REST API → the old one-shot endpoints for transcription, subtitle
    generation, conversion, and subtitle cleanup were removed. These operations now run
    through the background job system instead

  • REST API → word breakdowns and sentence explanations are now sent as a live
    stream while they are generated, rather than as a single response at the end

  • CLI → the mirumoji server command moved into a new development-only group
    and is now mirumoji dev server

  • Database → the database format changed and is not upgraded automatically
    from 3.0.0. Reset it when upgrading by running mirumoji down -v (this clears
    local data, in keeping with the pre-1.0 note above)

Added

  • Server → long operations (transcription, subtitle generation, conversion,
    and LLM subtitle cleanup) now run in the background. A file is uploaded once, and
    any number of operations can then run on it without uploading it again

  • Server → batch processing runs one operation across many files at once and
    tracks each file on its own. On the Modal backend the files are processed in
    parallel

  • Frontend → a task tray keeps your running and finished jobs visible as you
    move around the app, and loads each result back in when it is done

  • Frontend → new Files and Tasks sections on the dashboard let you upload
    files or a whole folder, select several and run them as a batch, browse the full
    job history, and open each result

  • Frontend → when setting up an LLM, you can now pick the model from a
    searchable list of your provider's models instead of typing its exact name

  • Frontend → video conversion now has a quality preset (Performance,
    Balanced, or Quality) alongside the resolution and bitrate options, so you can
    trade encode speed for output quality

  • CLImirumoji dev up builds and runs the app from a local source
    checkout, for testing the Docker setup during development

Changed

  • Frontend → running an operation in the player no longer freezes the toolbar.
    It is handed to the task tray, which loads the result back in when it finishes. The
    video player was also reworked into a shared component that clip previews reuse

  • Frontend → a phone held sideways now uses the mobile layout, since the
    desktop layout only starts at tablet width

  • Launcher → the launcher's logs and the Docker download progress are tidier
    and easier to follow, in both the CLI and the desktop app

  • Docker Images → the GPU images are smaller. PyTorch was removed because
    transcription does not need it, and the speech model now downloads on first use into a
    persistent cache instead of being baked into the local GPU images

  • Server → video conversion is faster and leaner. On the GPU the whole decode,
    scale, and encode pipeline now stays on the GPU instead of copying frames back and
    forth, and the GPU and Modal images ship a newer FFmpeg build to support it.
    Conversion also picks the encoder from what the GPU can actually do, so machines whose
    GPU cannot encode (and CPU-only setups) go straight to a fast CPU encode. Converted
    videos keep their original aspect ratio now rather than being padded with black bars

Fixed

  • Frontend → the player now handles video formats your browser cannot play
    (such as .mkv on iOS) by offering to convert them to MP4 instead of showing a
    broken player. Loading a different video also resets the saved position so it never
    starts past the end of a shorter one

  • Frontend → the navigation menu scrolls on short screens (such as a phone
    held sideways) so every item stays reachable, and long entries on the Home page
    no longer stretch the layout out of shape

  • Server → saving a clip no longer fails for clips with long Japanese text,
    and saved clips now use a server-generated filename that closes a security issue
    where a crafted upload name could write outside its folder

  • Server → deleting a file also removes the jobs that used it (and is blocked
    while one of those jobs is still running), cancelling or deleting a running job no
    longer leaves the job list in a broken state, and a failed job now shows a clear
    reason

  • Server → converting a video on a cloud GPU that has no video encoder (such as
    an A100, H100, or B200) no longer wastes time on a failed hardware-encode
    attempt before falling back, which had made GPU conversion slower than plain CPU

  • CLImirumoji logs -f no longer crashes when you press Ctrl+C, and
    re-running mirumoji up no longer contacts Docker Hub when the images are already
    downloaded