Skip to main content

Batch Subtitle Synchronization Tool

Project description

Sushi Batch

Batch subtitle synchronization tool based on Sushi.

Job Queue preview

Overview

This tool allows you to sync subtitle timing between different releases of the same media (e.g., WEB-DL to Blu-Ray) without manual adjustments. It is ideal for anime fansub releases and translations from different sources, but can be used for any media with existing subtitles.

Main Features

  • Batch processing of subtitle synchronization tasks using Sushi.
  • Merge the synced subtitle back into the target video after syncing (requires MKVMerge). More info
  • Re-encode lossless audio tracks (e.g., FLAC, WAV) in the video before merging.
    • Supports AAC, EAC-3 and Opus.
    • A recommended bitrate is selected based on the number of audio channels (can be customized in Encode Settings).
  • Resample subtitle resolution to match the target video before merging (requires Aegisub-CLI).

How does Sushi work?

Sushi works by finding the closest similar pattern between a provided source and sync target audio track. The obtained shift value is applied to the output subtitle, which will be synced to the sync target track.

Audio-based Sync

You must provide:

  • A subtitle file (ASS, SRT, SSA).
  • The original audio track for that subtitle.
  • A sync target audio track to sync the subtitle to.

Video-based Sync

You only need to provide:

  • A source video file that contains subtitle and audio tracks.
  • A sync target video file.

You must select the reference subtitle and audio track from the source file, and the target audio track for the sync. FFmpeg will take care of extracting these tracks for later processing.

The newly synced subtitle file can be found in the same directory as the target file, with the .sushi suffix.

Installation

pip install sushi-batch

Required apps

Windows

Add the required binaries to PATH or install them via a package manager like Chocolatey. You can also copy the executables to the directory from which you run this app (not recommended).

Linux

Most distros link installed packages to PATH automatically, so just make sure to install the required apps via your distribution's package manager.

macOS

brew install ffmpeg mkvtoolnix

Folder Structure for Directory Select Modes

Audio-Sync

  
    📂Source Folder
     ┣ 🔊Fullmetal Alchemist - 01 (DVD).flac
     ┣ 📜Fullmetal Alchemist - 01 (DVD).ass
     ┣ 🔊Fullmetal Alchemist - 02 (DVD).flac
     ┣ 📜Fullmetal Alchemist - 02 (DVD).ass
     ┣ 🔊Fullmetal Alchemist - 03 (DVD).flac
     ┗ 📜Fullmetal Alchemist - 03 (DVD).ass
    📂Sync Target Folder
     ┣ 🔊Fullmetal Alchemist - 01 (BD).flac
     ┣ 🔊Fullmetal Alchemist - 02 (BD).flac
     ┗ 🔊Fullmetal Alchemist - 03 (BD).flac
  

Video-Sync

  
    📂Source Folder
     ┣ 📺Fullmetal Alchemist - 01 (DVD).mkv
     ┣ 📺Fullmetal Alchemist - 02 (DVD).mkv
     ┗ 📺Fullmetal Alchemist - 03 (DVD).mkv
    📂Sync Target Folder
     ┣ 📺Fullmetal Alchemist - 01 (BD).flac
     ┣ 📺Fullmetal Alchemist - 02 (BD).mkv
     ┗ 📺Fullmetal Alchemist - 03 (BD).mkv
  

Important

Data and logs for all enabled operations are stored in the SushiBatchTool directory inside your Documents folder:

  • Windows: C:\Users\<your-user>\Documents\SushiBatchTool
  • Linux: /home/<your-user>/Documents/SushiBatchTool
  • macOS: /Users/<your-user>/Documents/SushiBatchTool

Merge synced subs with video

If mkvmerge is installed, synced subtitles can be merged into the selected sync target video file.

Video merging supports two workflows:

  • Automatic merge after sync completion.
  • Manual merge from the Job Queue menu.

The following behavior can be adjusted in the App Settings menu:

  • Merge automatically on sync completion.
  • Re-encode lossless audio before merge.
  • Target lossy codec for encoding.
  • Bitrates
  • Resample synced subtitles before merge (Aegisub-CLI required).
  • Delete generated subtitle files after successful merge.
  • Choose which tracks/metadata are copied from source and sync target files.
  • Set default/forced flags and a custom track name for the merged subtitle.
  • Save MKVMerge logs to the app data folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sushi_batch-1.1.0.tar.gz (360.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sushi_batch-1.1.0-py3-none-any.whl (70.9 kB view details)

Uploaded Python 3

File details

Details for the file sushi_batch-1.1.0.tar.gz.

File metadata

  • Download URL: sushi_batch-1.1.0.tar.gz
  • Upload date:
  • Size: 360.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sushi_batch-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b132e218e287610715faf976501a198a0ddbe3cbaece578cfe1101c1e20fa297
MD5 5c63b7dcc01e5cfd0cc2a50cc4cd1c4d
BLAKE2b-256 05203d237503feffb663178ee8f7baf12b781b7d8143d00da4acb6711ff81051

See more details on using hashes here.

File details

Details for the file sushi_batch-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: sushi_batch-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 70.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sushi_batch-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 48d8c886ed3a7576785496c33d93dd5429cb006a084cf487e70f7bc194ab5cbc
MD5 2704af9076f24914131aed55a68c0ec2
BLAKE2b-256 2d4f90c2b70a6d2709269ae23872629f725ecdc5e1d437e53954652b52d304c0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page