Design & media

Video to SRT

Try it

Generate timecoded SRT subtitles from local video or audio files. Use when a user wants a local low-cost subtitle workflow, asks to transcribe local media in...

What it does

Generate timecoded SRT subtitles from local video or audio files. Use when a user wants a local low-cost subtitle workflow, asks to transcribe local media in...

The skill document

Video to SRT

Workflow

  1. Create a new top-level task folder for the request in the workspace.
  2. Locate the user's local media file and confirm the language choice only if it is unclear.
  3. Run scripts/run_local_subtitles.sh from this skill folder.
  4. Default to --language zh and --model small. Switch to --language auto for mixed language audio. Switch to --model medium only when the user wants better accuracy and accepts slower runtime.
  5. Inspect the generated .srt file by checking the first and last few cues before handing it off.
  6. Return the subtitle path and mention that editors which accept SRT, including Jianying desktop, can import it.

Stable Defaults

  • Keep dependency installation inside a local virtual environment created by scripts/run_local_subtitles.sh.
  • Keep caches local to the skill folder. This avoids macOS cache permission issues.
  • Keep HF_HUB_DISABLE_XET=1 enabled. This avoids a common Hugging Face Xet download failure.
  • Prefer SRT. It is the simplest subtitle format for broad editor compatibility.
  • Override VENV_DIR, HF_HOME, or XDG_CACHE_HOME only when reusing an existing environment or model cache is helpful.

Commands

Use the wrapper script for the normal path:

scripts/run_local_subtitles.sh "/absolute/path/to/video.mp4" --output-dir "/absolute/path/to/task/output" --copy-next-to-input

Use these common variants:

scripts/run_local_subtitles.sh "/absolute/path/to/video.mp4" --language auto --output-dir "/absolute/path/to/task/output" --copy-next-to-input
scripts/run_local_subtitles.sh "/absolute/path/to/video.mp4" --model medium --output-dir "/absolute/path/to/task/output" --copy-next-to-input

Validation

  • If the wrapper needs to install packages or download a model, request permission when required by the environment.
  • Confirm that the final .srt exists.
  • Preview the first and last cues with sed -n '1,24p' and tail -n 24.
  • If the user wants a faster import workflow, keep a copy beside the source media with --copy-next-to-input.

Resources

  • scripts/run_local_subtitles.sh: create or reuse a local virtual environment, install dependencies, configure stable cache paths, and run transcription.
  • scripts/transcribe_to_srt.py: transcribe media and write timecoded SRT output.
  • scripts/requirements.txt: minimal dependency list for the workflow.

Related skills

Generate or align SRT subtitles from audio using this repository. Use when the user asks for subtitle generation, transcript-to-audio alignment, timing clean...

16 installs1 stars

Transcribe audio and video with the transcribe.so CLI. Turns YouTube videos, podcasts (Apple Podcasts, Spotify, SoundCloud, Vimeo, Twitch, Loom), direct media URLs, and local audio or video files into speaker-labelled transcripts with timestamped segments, chapters, sections, cited Q&A, and subtitle files (SRT, VTT, karaoke VTT). Use when the user wants a transcript, show notes, chapters, subtitles, quotes, or answers grounded in a recording. 52 languages and dialects.

For transcript or subtitle requests involving podcast URLs, public audio URLs/files, or raw transcript cleanup. Generates audio + SRT + TXT artifacts and can...

by dairui127 installs

Download a foreign-language movie/video (or take a local file), transcribe and translate it to English with WhisperX, and recreate the video with English subtitles. Use on requests like "get English subs for this", "translate this movie", "subtitle this YouTube film". Fully local: yt-dlp → WhisperX → ffmpeg.

Transcribe audio and video with the DaDaScribe AI service (YouTube URLs, direct links, or local files). Supports 100+ languages, speaker diarization with named speakers, translation to up to 5 languages, and returns .txt transcripts plus .srt subtitles. Use whenever the user asks to transcribe, capt