Batch Subtitle Synchronization Tool
Project description
Sushi Batch
Batch subtitle synchronization tool based on Sushi.
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
- FFmpeg / FFprobe
- MKVMerge (from MKVToolNix) (Optional)
- Aegisub-CLI (Optional)
- Opusenc (Optional)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b132e218e287610715faf976501a198a0ddbe3cbaece578cfe1101c1e20fa297
|
|
| MD5 |
5c63b7dcc01e5cfd0cc2a50cc4cd1c4d
|
|
| BLAKE2b-256 |
05203d237503feffb663178ee8f7baf12b781b7d8143d00da4acb6711ff81051
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48d8c886ed3a7576785496c33d93dd5429cb006a084cf487e70f7bc194ab5cbc
|
|
| MD5 |
2704af9076f24914131aed55a68c0ec2
|
|
| BLAKE2b-256 |
2d4f90c2b70a6d2709269ae23872629f725ecdc5e1d437e53954652b52d304c0
|