Skip to content
A tool to automatically generate in-sync subtitles of different versions of the same base media (such as with edits)
C++ C Java Python Objective-C Objective-C++ Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
docs docs updated Dec 16, 2019
install [UPDATE] .gitignore and Sep 1, 2019
libs Added the complete source code. Sep 1, 2019
license [UPDATE] & Individual licenses of the libraries used Sep 1, 2019
src CLI Header updated Dec 16, 2019
.gitignore [UPDATE] .gitignore and Sep 1, 2019
CMakeLists.txt Update Sep 1, 2019 [UPDATE] & Individual licenses of the libraries used Sep 1, 2019 docs updated Dec 16, 2019


High-speed subtitle synchronization tool

GSoC 2019 | CCExtractor Development

GSoC GPLv3 license

Subtitle-Resync is a high-speed subtitle synchronization tool, capable of automatically generating in-sync subtitles of different versions of the same base audiovisual content (such as, with and without commercials).
It has been developed under GSoC 2019 with CCExtractor development.

See what is it & how does it work


Refer the docs for a detailed guide to install and use Subtitle-Resync.

  1. Clone the repository from Github:
git clone
  1. Navigate to install directory:
cd install
  1. Run
sh ./
  1. Sync!
./resync -o /path/to/original/audio.wav -m /path/to/modified/audio.wav -s /path/to/original/



Refer the docs for installing the dependencies of Subtitle-Resync.

  • CMake

    Minimum version 3.14 is required.

  • Boost Libraries

    Minimum version 1.60 is required.

Argument properly

Refer the documentation for proper usage of the tool.

  • Audio Files

    Make sure the audio is uncompressed raw PCM (16-bit signed int), mono sampled at 16000 Hz (Enough to cover human speech frequency range).

    Using ffmpeg you can run:

    ffmpeg -i /path/to/video.ts -acodec pcm_s16le -ac 1 -ar 16000 output/path/name.wav 
  • Subtitle Files

    The input subtitle file should be a clean and proper SubRip (SRT) file.

Quick Demo

You can find the list of parameters and their brief description by running resync without any arguments.

  • IN:
./resync -o /path/to/original/audio.wav -m /path/to/modified/audio.wav -s /path/to/original/

What will this trigger?

  1. Read the original audio and modified audio.
  2. Extract audio fingerprints from the audio files.
  3. Compare the fingerprints and detect the different segments in the original content.
  4. Adjust the subtitle file and generate an in-sync subtitle file.

See Subtitle-Resync in action here.


GNU General Public License 3.0 (GPL-v3.0)

Check for details on Subtitle-Resync's license.
The individual licenses of the libraries used can be found in license directory.


You may reach CCExtractor community through the slack channel where most CCExtractor developers hang out.

  • CCExtractor Development on Slack

We foster a welcoming and respectful community. 👐


Any contribution to the project would be highly appreciated!

You can’t perform that action at this time.