Gptsubtitler
Automatically subtitle any video spoken in any language to a language of your choice using AI.
Install / Use
/learn @extremq/GptsubtitlerREADME
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
Related Skills
docs-writer
99.6k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
342.0kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
arscontexta
2.9kClaude Code plugin that generates individualized knowledge systems from conversation. You describe how you think and work, have a conversation and get a complete second brain as markdown files you own.
cursor-agent-tracking
134A repository that provides a structured system for maintaining context and tracking changes in Cursor's AGENT mode conversations through template files, enabling better continuity and organization of AI interactions.
