explaingit

cliptate/pycut

5PythonAudience · developerComplexity · 3/5ActiveSetup · moderate

TLDR

Apple Silicon CLI that transcribes videos with MLX speech models, optionally asks an LLM to pick highlights, and exports SRT, ASS, FCPXML, or burned-in subtitled clips.

Mindmap

mindmap
  root((pycut))
    Inputs
      Video files
      Audio files
      Folder or glob
      Optional API key
    Outputs
      SRT subtitles
      ASS styled subs
      FCPXML timeline
      Burned video
      JSON transcript
    Use Cases
      Cut highlights from podcasts
      Generate bilingual subtitles
      Batch subtitle a folder
      Prep FCP timelines
    Tech Stack
      Python
      MLX
      Whisper
      Parakeet
      ffmpeg

Things people build with this

USE CASE 1

Auto-extract highlight clips from a long podcast or lecture

USE CASE 2

Generate bilingual styled subtitles for short-form video

USE CASE 3

Batch transcribe a folder of recordings into SRT files

USE CASE 4

Export a Final Cut Pro timeline with caption clips ready to edit

Tech stack

PythonMLXWhisperParakeetffmpeg

Getting it running

Difficulty · moderate Time to first run · 30min

Apple Silicon Mac only, plus ffmpeg via brew and Python 3.12; LLM features need an OpenAI-compatible API key.

In plain English

pycut is a command line tool for Apple Silicon Macs that turns long videos or audio recordings into shorter, subtitled clips. You point it at a file, a folder, or a glob of files, and it transcribes the speech, optionally asks an AI to pick the most interesting moments, and then exports the result in whatever format you ask for, such as standard SRT subtitles, styled ASS subtitles, a Final Cut Pro timeline, a plain text transcript, a JSON transcript, or a finished video with the subtitles burned in. The transcription step runs locally using MLX backed speech recognition models. The default model is picked based on the source language, with Parakeet for English, Qwen3 for Chinese, and Whisper Large v3 Turbo for everything else. There is a separate forced alignment model that lines up the recognized words with their exact timestamps in the audio. Long files are broken into chunks for processing and models are unloaded between pipeline stages to keep memory use under control. For the highlight extraction, translation, and transcript correction features, you need to provide an API key for an OpenAI compatible service. The README shows examples of pointing the tool at Gemini or DeepSeek by setting a base URL and model name. Without a key the tool still works, you just get subtitles for the full timeline instead of automatically chosen highlights. The command line interface has a long list of options grouped into input and output, speech recognition, AI analysis, subtitle styling, and rendering. You can translate subtitles into a second language and stack them in a bilingual layout with different colors for the original, the translation, and highlighted keywords. You can switch the output between landscape and portrait orientation, set a frame rate for FCPXML exports, and pass an existing transcript JSON back in to skip the recognition step on a rerun. Installation is one command, uv tool install pointed at the GitHub URL, after a normal brew install ffmpeg. Requirements are macOS on Apple Silicon, Python 3.12 or newer, and ffmpeg on your PATH. The README is upfront that the tool refuses to run on Intel Macs or anything other than macOS. The rest of the document is mostly worked examples: extracting highlights with a rendered video, generating subtitles only, making bilingual subtitles, batch processing a folder, and using the LLM to correct speech recognition mistakes before exporting.

Copy-paste prompts

Prompt 1
Wrap pycut in a watch-folder daemon that runs highlight extraction on every new mp4 dropped into a directory
Prompt 2
Add a Linux fallback to pycut that swaps the MLX backend for faster-whisper when not on Apple Silicon
Prompt 3
Write a config preset for pycut that produces 9:16 portrait clips with burned bilingual EN/ZH subtitles
Prompt 4
Build a small SwiftUI front-end that drives the pycut CLI for non-developer video editors
Prompt 5
Add a step to pycut that uploads finished clips to YouTube Shorts via the YouTube Data API
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.