Turn a YouTube link or an audio file into clean, timestamped text — in Thai or English.
A small Windows desktop app for people who don't want to touch a terminal. Double-click, paste a link, get a transcript you can edit, copy, and save.
- YouTube links or local audio/video files (mp3, m4a, wav, mp4, mkv, webm, ogg, flac)
- Thai & English — pick the spoken language for noticeably better accuracy
- Readable paragraphs with a timestamp every pause or ~60s, not one per phrase
- Boosts quiet / off-mic speakers before transcribing, so interviewers get picked up
- Edit the transcript in place, then Copy or Save as
.txt - Interface in English or ไทย
- One-click auto-update
- Bring your own free API key — no key is bundled in the app
- Download the latest
Transcribe_x.y.z_x64-setup.exefrom the Releases page. - Run it. (Windows 10/11 — the required WebView2 runtime is already there.)
- On first launch, paste a free Groq API key (below). It's stored on your computer only.
- Go to console.groq.com and sign up — free, no credit card.
- API Keys → Create key, then copy it.
- Paste it into the app, press Test (it should say ● API ready), then Save.
Groq's free tier is far beyond casual use: ~20 requests/min, 2,000/day, and roughly 2 hours of audio per hour. A 1-hour clip is a single request and comes back in seconds.
- Pick the spoken language — Thai, English, or Auto. Choosing the right one matters: on Auto, Whisper sometimes drifts mid-sentence and inserts characters from other languages.
- Paste a YouTube link and press Transcribe, or press Choose an audio file.
- Wait — the bar animates while it works. Long clips take longer to download, not to transcribe.
- Fix any mistakes: press ✏ Edit, correct the text, press ✓ Done. (The box is read-only until you do, so you can't type in it by accident.)
- Copy text or Save as .txt — both use your edited version.
- Your audio is uploaded to Groq to be transcribed. Don't use this for anything you wouldn't hand to a cloud service.
- Your API key stays local, at
%APPDATA%\com.transcribe.app\groq.key. It is never bundled into the app and never committed to this repo. - Temporary audio is deleted from your temp folder after each transcription.
The app checks GitHub Releases on launch. When a newer signed version exists, an Update available banner appears — one click downloads, verifies, installs, and restarts it. You can also check manually in ⚙ Settings.
Windows only (it ships an NSIS installer and bundles Windows binaries).
- Rust (MSVC toolchain) — install via rustup
- Visual Studio Build Tools with the Desktop development with C++ workload (for the MSVC linker)
- Node.js 18+
- WebView2 runtime — already present on Windows 10/11
CMake and LLVM are not needed. (Earlier versions transcribed locally with whisper.cpp; that's gone.)
These are git-ignored (~260MB) and the build fails without them, since Tauri bundles them as resources:
mkdir src-tauri\resources\bin
# yt-dlp
curl.exe -L -o src-tauri\resources\bin\yt-dlp.exe `
https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp.exe
# ffmpeg — use the LGPL build (smaller, and simpler to redistribute than a GPL one)
curl.exe -L -o "$env:TEMP\ff.zip" `
https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-lgpl.zip
Expand-Archive "$env:TEMP\ff.zip" -DestinationPath "$env:TEMP\ff" -Force
copy (Get-ChildItem "$env:TEMP\ff" -Recurse -Filter ffmpeg.exe)[0].FullName `
src-tauri\resources\bin\ffmpeg.exeUse an LGPL build. It has everything this app needs (
libopusencoder,speechnormfilter) and produces bit-identical audio to the much larger GPL "full" builds, while avoiding the GPL's source-offer obligation when you redistribute installers.
npm install
npm run tauri dev # run in development
npm run tauri build # produce the installerFor development you can supply a key without going through the UI:
$env:GROQ_API_KEY = "gsk_..."cd src-tauri
cargo testThe Groq network test is skipped unless GROQ_API_KEY is set. ffmpeg must be on PATH for the
audio test.
See RELEASING.md — bump the version, run scripts/release.ps1 (builds and
signs), then upload the installer + latest.json to a GitHub Release.
The updater's private signing key (
src-tauri/updater.key) is git-ignored and exists only on the maintainer's machine. Back it up. Lose it and existing installs can never accept updates.
YouTube link ──yt-dlp──┐
├──ffmpeg──► 16 kHz mono Opus ──► Groq (Whisper large-v3) ──► paragraphs + timestamps
audio file ────────────┘ (speech-normalized,
~15 MB per hour)
The Rust backend does the work and returns finished text; the frontend just displays it.
- Transcription — Groq running OpenAI's Whisper large-v3
- YouTube downloads — yt-dlp
- Audio conversion — FFmpeg
- UI — a neumorphism design system (MIT), vendored in
src/nm.css - App shell — Tauri v2
MIT © 2026 Kanatan
This license covers this project's own code. ffmpeg.exe and yt-dlp.exe are not in this
repo, but they are redistributed inside the installer and remain under their own licenses:
FFmpeg (LGPL v2.1+ — the build fetched above) and
yt-dlp (Unlicense). Both are invoked as separate processes,
not linked into this app.