Skip to content

Repository files navigation

Simple Transcriber for Podcasts & Videos

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.

Transcript view

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.


Install (Windows)

  1. Download SimpleTranscriber-Setup.exe from the Releases page.
  2. Run it. The installer handles WebView2 (if not already on your system), creates a Start menu and desktop shortcut, and launches the app.
  3. On first launch, paste your two API keys (see below). They're saved locally to config.json next 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.

Getting API keys

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.


Features

  • 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 .bak of 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 .bak is kept)

Keyboard shortcuts (in a transcript)

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.


Where files live

  • Transcripts: Desktop\Transcripts\<title>\ — each gets its own folder with the HTML transcript, MP3 audio, and a small .meta.json sidecar
  • Library index: Desktop\Transcripts\index.html — regenerated after every run
  • Config: config.json next 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.


Privacy

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.

Limits

  • 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.

Install from source (instead of the installer)

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.py

Requires 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.)

Building the installer

build.bat
iscc installer.iss

build.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.

macOS

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).


Troubleshooting

  • "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.exe is in the transcriber/ 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 403yt-dlp occasionally 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.

Credits

  • 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

License

Personal use, MIT-licensed. See LICENSE if present.

About

Free Windows desktop transcriber for podcasts & videos. Paste a YouTube/podcast URL or upload a local audio/video file; get a speaker-labeled, audio-synced HTML transcript you can edit, bookmark, and quote.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages