https://github.com/tmoroney/auto-subs
Generate Subtitles & Diarize Speakers in Davinci Resolve using AI.
https://github.com/tmoroney/auto-subs
ai davinci davinci-19 davinci-resolve diarize openai pyannote resolve speaker speech-to-text subtitles subtitles-generator transcribe whisper
Last synced: 2 months ago
JSON representation
Generate Subtitles & Diarize Speakers in Davinci Resolve using AI.
- Host: GitHub
- URL: https://github.com/tmoroney/auto-subs
- Owner: tmoroney
- License: mit
- Created: 2023-03-15T01:51:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-21T16:03:26.000Z (over 1 year ago)
- Last Synced: 2025-04-06T21:03:55.495Z (about 1 year ago)
- Topics: ai, davinci, davinci-19, davinci-resolve, diarize, openai, pyannote, resolve, speaker, speech-to-text, subtitles, subtitles-generator, transcribe, whisper
- Language: TypeScript
- Homepage: https://tom-moroney.com/auto-subs/
- Size: 80.7 MB
- Stars: 1,022
- Watchers: 26
- Forks: 52
- Open Issues: 134
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-ChatGPT-repositories - auto-subs - Generate Subtitles & Diarize Speakers in Davinci Resolve using AI. (Openai)
- awesome-video - Auto-Subs - A tool designed to automatically transcribe editing timelines using OpenAI Whisper and Stable-TS for extreme accuracy. It generates subtitles in a custom style, is completely free, and runs locally within DaVinci Resolve. It works on Mac, Linux, and Windows, supporting both Free and Studio versions of Resolve. Users can jump to positions on the timeline using the Subtitle Navigator and translate from any language to English. The tool provides a user-friendly interface for creating and customizing subtitles for video content. (Media Tools / Independent & Hobbyist Projects)
- awesome - tmoroney/auto-subs - On-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects. (TypeScript)
- Awesome-Whisper-Apps - auto-subs - subs?style=flat-square) - Automatic subtitle generation (By Use Case / Subtitles & Captioning)
README
# AutoSubs β Subtitles Made Simple
Create highβquality subtitles with **one click**. AutoSubs delivers **fast, accurate, and fully customisable** subtitles in a sleek, intuitive interface β works standalone or integrated with DaVinci Resolve.
[](https://tom-moroney.com/release-tracker/)
[](https://tom-moroney.com/release-tracker/)
[](https://deepwiki.com/tmoroney/auto-subs)
### π₯ OneβClick Installer: [Windows](https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-windows-x86_64.exe) β¨ [macOS (Apple Silicon)](https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-Mac-ARM.pkg) β¨ [macOS (Intel)](https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-Mac-Intel.pkg)
### π§ [Linux (.deb): see install commands below](#quick-start)
---
## What AutoSubs Does
AutoSubs runs **AI transcription models locally** on your machine β no cloud, no subscription. Drop in any audio or video file, and it produces accurate, timestamped subtitles with speaker labels.
**Core capabilities:**
- Fast, accurate transcription in many languages
- Speaker diarization with automatic labeling and colors
- Translation to English (more languages coming)
- Export to SRT, plain text, or directly into DaVinci Resolve
- Per-speaker subtitle styling (color, outline, border) when using Resolve
Generate Subtitles & Label Speakers | Advanced Settings
:-------------------------:|:-------------------------:
| 
---
## Architecture Overview
AutoSubs is a [Tauri](https://tauri.app) desktop app β a **React + TypeScript** frontend backed by a **Rust** engine, packaged as a native app for Windows, macOS, and Linux.
```mermaid
graph TB
subgraph Frontend ["Frontend (React + TypeScript)"]
UI[UI Components]
CTX[State Contexts\nTranscript Β· Models Β· Progress Β· Settings]
UI <--> CTX
end
subgraph Tauri ["Tauri Bridge"]
IPC[IPC Commands + Events]
end
subgraph Backend ["Rust Backend"]
API[Command Handlers]
AP[Audio Preprocessor]
API --> AP
end
subgraph Engine ["Transcription Engine"]
EM[Engine Manager]
EM --> W[Whisper]
EM --> P[Parakeet / Moonshine]
EM --> D[Pyannote Diarization]
EM --> FMT[Formatter\nline breaking Β· timing Β· CPS]
EM --> TR[Translator]
end
subgraph External ["External"]
FF[FFmpeg Sidecar]
HF[HuggingFace Hub\nmodel downloads]
end
subgraph Resolve ["DaVinci Resolve (Optional)"]
LUA[AutoSubs.lua Script]
end
Frontend <--> Tauri
Tauri <--> Backend
Backend --> Engine
AP --> FF
Engine --> HF
LUA <-.->|IPC| Tauri
```
**How a transcription works end-to-end:**
1. User selects a file and clicks Transcribe
2. Rust backend preprocesses audio via FFmpeg (normalization, format conversion)
3. Transcription engine runs the chosen AI model (Whisper / Parakeet / Moonshine) locally
4. Optionally runs Pyannote for speaker diarization and Google Translate for translation
5. Formatter applies line-breaking, timing constraints, and language-specific rules
6. Results stream back to the UI in real time; user edits and exports
---
## Quick Start
### 1) Download & Install
**πͺ Windows + π macOS:**
Download the installer for your platform from the links above and follow the prompts.
**π§ Linux (.deb):**
```bash
wget https://github.com/tmoroney/auto-subs/releases/latest/download/AutoSubs-linux-x86_64.deb
sudo apt install ./AutoSubs-linux-x86_64.deb
# If you see dependency errors, run:
sudo dpkg -i AutoSubs-linux-x86_64.deb && sudo apt -f install
```
### 2) Choose a Workflow
#### Standalone Mode
1. Launch AutoSubs and select an audio/video file.
2. Pick your model and language/translation options.
3. Click **Transcribe**. Edit speakers/subtitles as needed.
4. Export as SRT, text, or copy to clipboard.
#### DaVinci Resolve Mode
1. Open DaVinci Resolve β **Workspace β Scripts β AutoSubs**.
2. Select your timeline/audio source and settings.
3. Click **Transcribe**. Edit speakers/subtitles as needed.
4. Send styled subtitles back to Resolve.
> [!WARNING]
> AutoSubs will not work with the Mac App Store version of DaVinci Resolve. Re-install from the [official website](https://www.blackmagicdesign.com/products/davinciresolve/) if needed.
---
## What's New in V3
- **New, cleaner UI** β easier to use and more consistent
- **Faster + lighter** β ~3Γ lower idle memory on a new Rust backend
- **Smarter models** β more choices, easy delete, and clear status badges
- **Better timing** β accurate with variable frame rates and drop-frame
- **Standalone mode** β transcribe any file, no Resolve required
- **Powerful editors** β modern subtitle editor and advanced per-speaker styling
---
## Contributing
PRs are welcome! For a full breakdown of the codebase before diving in, see the **[AutoSubs DeepWiki](https://deepwiki.com/tmoroney/auto-subs)**.
### Dev Setup
1. Clone the repo.
2. Install prerequisites: Node.js + Rust toolchain β see [tauri.app](https://tauri.app).
3. Start the app in dev mode:
```bash
cd AutoSubs-App
npm install
npm run tauri dev
```
4. For Resolve integration during development, copy `AutoSubs-App/src-tauri/resources/Testing-AutoSubs.lua` into your Resolve scripts folder:
- **Windows:** `%appdata%/Blackmagic Design/DaVinci Resolve/Support/Fusion/Scripts/Utility`
- **macOS:** `/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts/Utility`
Then change the path in `Testing-AutoSubs.lua` to point to your local AutoSubs installation and open it from Resolve via **Workspace β Scripts β Testing-AutoSubs**.
Backend code lives under `AutoSubs-App/src-tauri/`.
---
## Deep Dive
For detailed architecture docs, component breakdowns, and agentic Q&A on any part of the codebase, visit **[AutoSubs on DeepWiki](https://deepwiki.com/tmoroney/auto-subs)**.
