Scroll.ai shut down June 12, 2026. Simple Transcriber is a free, open-source desktop alternative — paste a YouTube link, a podcast URL, or upload a local audio/video file and get back a speaker-labeled, audio-synced HTML transcript you can read, edit, and quote from.
You get a transcript with:
- Per-paragraph play buttons synced to the audio
- Word-level highlighting that follows playback
- Editable speaker labels and title
- Inline text editing for fixing mis-transcribed names
- Paragraph bookmarks collected at the top as "Saved quotes"
- A browsable, full-text-searchable library of every transcript you've made
- Light and dark mode (follows your OS setting)
Uses Groq's whisper-large-v3 for transcription and
AssemblyAI for speaker diarization.
If you're looking for a more robust but still easy-to-install version and/or a Docker setup, try Easy Transcriber from ReadTedium.
- Download
SimpleTranscriber-Setup.exefrom the Releases page. - Run it. The installer handles WebView2 (if not already on your system), creates a Start menu and desktop shortcut, and launches the app.
- On first launch, paste your two API keys (see below). They're saved locally
to
config.jsonnext to the app — nothing leaves your machine except the audio you submit for transcription.
That's it. After setup, paste a URL and click Transcribe, or click Upload file to transcribe a local audio or video file.
Both are free, take under a minute, and have generous free tiers.
| Service | Sign up | Notes |
|---|---|---|
| Groq | https://console.groq.com → API Keys | Used for transcription. ~$0.11/hr of audio. |
| AssemblyAI | https://www.assemblyai.com → Dashboard | Used for speaker diarization. $50 free credit covers months of casual use. |
A typical 45-minute interview costs well under $0.50 total.
- Per-paragraph playback — click ▶ next to any paragraph to jump there
- Word-level highlighting — the active word lights up as audio plays
- Auto-scroll with "Jump to now" pill — follows playback; pauses scrolling when you scroll up to re-read, with a one-click way back to the live position
- Editable speakers — click a label to open a picker with every speaker in the transcript ("Speaker A" → "Jane Smith"), plus "New speaker…" and "Rename everywhere…"
- Editable text and title — click any paragraph or the title to fix typos;
edits autosave, and a
.bakof the previous version is kept alongside - Split paragraphs — right-click a word (or press Ctrl+Enter while editing, or shift+click) to break a paragraph at that word, useful when the diarizer fuses two speakers into one block; assign the new half a speaker in one click
- Readable paragraphs — long speaker turns are broken at pauses and sentence boundaries instead of rendering as one giant block
- Bookmarks — star paragraphs worth quoting; they appear in a "Saved quotes" section at the top with jump links
- Progress bar — real download/encode/transcribe/diarize progress while a job runs; estimated portions pulse and show "~" instead of pretending
- Hints field — paste proper nouns ("John Doe, ACME Co., NASA") before transcribing to help Whisper spell them correctly
- URL queue — paste multiple URLs (one per line) to process in sequence. Press Shift+Enter to start a new line.
- Local file upload — drop in any audio or video file (MP3, M4A, WAV, MP4, MOV, MKV, etc.) instead of a URL; ffmpeg extracts and transcodes audio automatically
- Library page — every transcript, searchable by title, date, or transcript content, with duration shown and sortable by date, title, or length; rename any transcript with the pencil button. Use Ctrl+F inside a transcript to jump through matches — the exact word or phrase is highlighted.
- Light and dark mode — follows your OS preference automatically
- Copy and export — copy a single quote (pre-formatted with attribution and
timestamp), copy the full transcript, or export as
.txt/.md/.srt/.vtt(subtitles use the real word timings) - Find and replace — Ctrl+H to fix a recurring misheard name in one pass; replacements never touch word timings
- Merge paragraphs — right-click → "Merge with paragraph above", the inverse of splitting
- Speaker count field — tell the diarizer how many voices to expect for noticeably better speaker labels (leave blank to auto-detect)
- Update old transcripts — the ⟳ button in the Library re-renders any existing
transcript with the latest features, preserving all your edits (a
.bakis kept)
| Key | Action |
|---|---|
Space |
Play / pause |
← |
Seek back 10 seconds |
→ |
Seek forward 10 seconds |
Ctrl+F |
Find in transcript |
Ctrl+H |
Find and replace |
Ctrl+Enter |
While editing: split the paragraph at the caret |
Playback shortcuts are disabled while editing text so they don't interfere with typing.
- Transcripts:
Desktop\Transcripts\<title>\— each gets its own folder with the HTML transcript, MP3 audio, and a small.meta.jsonsidecar - Library index:
Desktop\Transcripts\index.html— regenerated after every run - Config:
config.jsonnext to the installed.exe— your API keys and window geometry
You can move the Transcripts folder if you want — the app reads/writes to
%USERPROFILE%\Desktop\Transcripts.
Audio you transcribe is uploaded to Groq (transcription) and AssemblyAI (diarization). Both have published privacy policies; neither is used for training by default. Everything else — your API keys, the transcripts themselves, the library — stays on your machine.
The packaged app also contacts PyPI on launch to check
whether a newer yt-dlp is available (YouTube changes often, and the bundled
copy would otherwise go stale). This sends no personal data — it's a version
check and, if an update exists, a download of the public yt-dlp package,
staged for the next launch. It runs only in the installed build, silently and
in the background; a failure just falls back to the bundled copy.
- Groq free tier caps uploads at 25MB. The app encodes audio as mono MP3 at 32kbps (~14MB/hour), so typical interviews up to ~90 min fit comfortably. Longer files are auto-chunked and stitched back together.
- Transcription quality is high (Whisper large-v3, ~95–98% on clear audio). Speaker labels are good but not perfect — expect occasional misattributions at speaker transitions, especially with more than two speakers. Suitable as a readable working transcript, not a substitute for human review before publication.
If you'd rather run the Python directly:
git clone https://github.com/jcddc83/simple-transcriber.git
cd simple-transcriber
pip install -r requirements.txt
python transcribe.pyRequires Python 3.11+ and FFmpeg on your PATH (or ffmpeg.exe next to the
script). On Windows, the easiest FFmpeg install is via
gyan.dev — download "release essentials",
unzip, and drop ffmpeg.exe next to transcribe.py.
YouTube transcription also needs a JavaScript runtime, which yt-dlp uses to
extract the video. Install Deno (winget install DenoLand.Deno, or irm https://deno.land/install.ps1 | iex) and reopen your
terminal — yt-dlp finds it on PATH automatically. Without it, YouTube URLs fail
with "The page needs to be reloaded". Podcast/RSS URLs don't need it. (The
packaged installer bundles Deno, so this only applies when running from source.)
build.bat
iscc installer.issbuild.bat downloads FFmpeg, the Deno JS runtime, and the WebView2
bootstrapper automatically if they aren't already present, then packages
everything into dist\SimpleTranscriber.exe via PyInstaller. iscc installer.iss (from
Inno Setup) wraps it into
Output\SimpleTranscriber-Setup.exe.
A build.sh script exists for producing a Mac .app bundle, but it hasn't
been tested end-to-end yet. The Python code itself is cross-platform; pywebview
uses WKWebView on macOS (built in, no extra dependency).
- "AssemblyAI error" on every transcript (v1.1.0 or earlier) — builds before v1.2.0 requested a speech model that AssemblyAI retired on September 2, 2026. Download the latest release; no config change or new API key is needed.
- "Windows protected your PC" on first launch — because the app isn't code-signed, Windows SmartScreen shows an "unrecognized app" warning the first time you run the installer. Click More info → Run anyway. This is expected for independent apps without a commercial code-signing certificate.
- Antivirus false positive — PyInstaller-packaged apps occasionally trigger
Windows Defender or other AV scanners (the unpack-then-run pattern looks
suspicious to heuristic scanners). If your AV quarantines the installer, add
an exception for
SimpleTranscriber-Setup.exe, or run from source instead. - "ffmpeg not found" (running from source) — make sure
ffmpeg.exeis in thetranscriber/folder or on your system PATH. - "The page needs to be reloaded" on YouTube URLs (running from source) —
yt-dlp needs a JavaScript runtime to extract YouTube videos. Install
Deno (
winget install DenoLand.Deno) and reopen your terminal. The packaged installer bundles Deno, so this only affects source runs. - YouTube rate-limited / HTTP 403 —
yt-dlpoccasionally gets throttled or blocked by YouTube. Keeping yt-dlp current usually fixes it (pip install -U yt-dlp); otherwise wait a while and retry, or run with browser cookies (advanced). - Audio >25MB after encoding — automatic chunking handles it, but very long files (3+ hours) may need manual splitting.
- Window opens but stays blank — make sure WebView2 Runtime is installed. The installer handles this; if you're running from source, download it from Microsoft.
- Transcription: Groq (whisper-large-v3)
- Diarization: AssemblyAI
- Audio download: yt-dlp (with the Deno JS runtime for YouTube extraction)
- Desktop window: pywebview
- App icon: Transcription icons created by Freepik — Flaticon
Personal use, MIT-licensed. See LICENSE if present.
