Transcriptions

Transcriptions

How this was built

Upload a recording and get the transcript back as a text file in your Google Drive, with the speakers named by you.

The problem

I take long voice memos on my phone, and then I want the text. Before iOS 18 the iPhone couldn’t do that at all, so a 40 minute memo just sat there as audio. I built the piece I was missing: hand it a recording, get a transcript back.

What it does

Upload the recording, say how many people are talking, and confirm the cost. AssemblyAI turns the audio into text and separates the speakers. The transcript lands in my Google Drive as a .txt file, named with the date and whatever I called it, and the audio is deleted. Then I name each speaker once and the file updates with the names.

A quick example

A long voice memo I recorded while driving, or a call I want to search later. My phone leaves me with audio I have to listen to again. This leaves me with text I can read, in Drive where I can find it.

Features

  • Connect Google Drive once. The app only ever sees files it creates there, never your existing ones.
  • Upload up to 10 audio recordings at a time, up to 100 MB each, in m4a, mp3, wav, aac, webm, or audio-only mp4. Video files are turned away before they upload.
  • AssemblyAI’s Universal-2 speech model turns each recording into text and separates who’s speaking, labeling each voice generically until you name them by hand.
  • See the estimated cost before anything runs, based on each file’s length, and confirm before it starts.
  • Once a transcript’s back, read each speaker’s first full sentences from early in the call, then search one shared list of people, sorted into groups, to name them.
  • Say who was there when you upload and the app suggests names from lines like “I’m Mark”. That’s plain text matching, not AI, and you confirm every name.
  • Every transcript saves as a .txt in your own Drive, named with the date, time, and title you gave it, with a short header saying who was there. Rename it later and the Drive file renames too, or download it straight from the Library.

What it's built with

What I usedWhat it does here
Next.jsThe whole app, App Router, rendered and deployed on Vercel.
AssemblyAITurns each recording into text and separates speakers, pinned to its Universal-2 model so the price stays predictable.
Google Drive APISaves each finished transcript to your own Drive, through a one-time connection that only sees files this app creates.
Vercel BlobHolds each audio file privately for the few minutes between upload and transcription, then deletes it.
Supabase PostgresHolds transcript text for up to 7 days, in its own schema kept off the public API.
pg_cronRuns the sweep that checks on jobs, delivers finished transcripts, and clears out anything past 7 days.
Plain CSSNo framework. Design tokens are CSS custom properties.
Open Transcriptions