Skip to content

Repository files navigation

Transcribe

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.


Features

  • 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

Install

  1. Download the latest Transcribe_x.y.z_x64-setup.exe from the Releases page.
  2. Run it. (Windows 10/11 — the required WebView2 runtime is already there.)
  3. On first launch, paste a free Groq API key (below). It's stored on your computer only.

Getting a free Groq API key

  1. Go to console.groq.com and sign up — free, no credit card.
  2. API Keys → Create key, then copy it.
  3. 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.

Using it

  1. 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.
  2. Paste a YouTube link and press Transcribe, or press Choose an audio file.
  3. Wait — the bar animates while it works. Long clips take longer to download, not to transcribe.
  4. 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.)
  5. Copy text or Save as .txt — both use your edited version.

Privacy

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

Updating

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.


Build from source

Windows only (it ships an NSIS installer and bundles Windows binaries).

Prerequisites

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

Fetch the bundled binaries

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

Use an LGPL build. It has everything this app needs (libopus encoder, speechnorm filter) and produces bit-identical audio to the much larger GPL "full" builds, while avoiding the GPL's source-offer obligation when you redistribute installers.

Run and build

npm install
npm run tauri dev     # run in development
npm run tauri build   # produce the installer

For development you can supply a key without going through the UI:

$env:GROQ_API_KEY = "gsk_..."

Tests

cd src-tauri
cargo test

The Groq network test is skipped unless GROQ_API_KEY is set. ffmpeg must be on PATH for the audio test.

Releasing an update

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.

How it works

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.

Credits

  • 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

License

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.

About

Turn a YouTube link or audio file into clean, timestamped text, Thai or English. A small Windows desktop app powered by Groq's Whisper. Bring your own free API key.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages