MCPcopy Index your code
hub / github.com/extremq/gptsubtitler

github.com/extremq/gptsubtitler @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
13 symbols 43 edges 6 files 3 documented · 23%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Subtitler

Automatically subtitle any video spoken in any language to a language of your choice using AI.

Models used: - OpenAI whisper C++ port - for audio-to-text - Facebook M2M10 - for translation

Tools used: - ffmpeg

Please don't forget to star the repository if you find it useful or educational!

Before:

https://github.com/extremq/subtitler/assets/45830561/49f6ecce-cfdc-4f1c-97eb-07a36ac841c9

After (in Romanian - model_type=medium, language_model_type=base):

https://github.com/extremq/subtitler/assets/45830561/20bc5169-0ce3-47cd-adb7-15d75daf27f4

Quick guide

Example usage for adding subtitles and translating them in Romanian:

Command line:

gptsubtitler soldier.mp4 --source_language en --target_language ro --captioning_model_type medium --language_model_type base

Or in Python

from gptsubtitler import Transcriber

# I strongly recommend using the "medium" model_type.
Transcriber.transcribe("soldier.mp4", source_language="en", target_language="ro", captioning_model_type="medium", language_model_type="base")

You can also use the Translator class from translator.py if you just want to translate some text.

Example usage for translating from English to Romanian:

from gptsubtitler import Translator

print(Translator.translate("Hi!", target_language="ro", source_language="en"))

If you have generated a .srt file and just want to add subtitles:

from gptsubtitler import create_video_with_subtitles
create_video_with_subtitles("video.mp4", "output.srt", "video_subtitled.mp4")

Options

Args:
    video_file (str): Path to video file.

    output_video_file (str, optional): Path to output video file. Defaults to video_file_subtitled.

    output_subtitle_file (str, optional): Path to output SRT file. Defaults to "output.srt".

    source_language (str, optional): Source language for translation. Defaults to en.

    target_language (str, optional): Target language for translation. Defaults to None.

    captioning_model_type (str, optional): Model type. Defaults to "base".

    language_model_type (str, optional): Language model type. Defaults to "base".

    model_dir (str, optional): Path to model directory. Defaults to None.

Available options for captioning_model_type (the audio to text model): - tiny - base - default - small - medium - large

Available options for language_model_type (the language translator model): - base - default - large

Core symbols most depended-on inside this repo

generate_srt_file
called by 2
gptsubtitler/transcriber.py
format_seconds_to_srt_timestamp
called by 2
gptsubtitler/transcriber.py
get_video
called by 2
gptsubtitler/video_utils.py
readme
called by 1
setup.py
create_model_and_tokenizer
called by 1
gptsubtitler/translator.py
translate
called by 1
gptsubtitler/translator.py
create_model
called by 1
gptsubtitler/transcriber.py
transcribe
called by 1
gptsubtitler/transcriber.py

Shape

Method 6
Function 5
Class 2

Languages

Python100%

Modules by API surface

gptsubtitler/transcriber.py5 symbols
gptsubtitler/video_utils.py3 symbols
gptsubtitler/translator.py3 symbols
setup.py1 symbols
gptsubtitler/cli.py1 symbols

For agents

$ claude mcp add gptsubtitler \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact