HomeBlog → How to transcribe meeting recordings and get usable notes

How to transcribe meeting recordings and get usable notes

Published 2026-08-05 · 6 min read

A recorded meeting is a folder nobody opens. Everyone remembers a decision was made, nobody remembers which one, and rewatching forty minutes to find it is not going to happen. A transcript turns that recording into something you can search, quote and summarise in seconds.

What a transcript changes

Four things that a recording alone cannot give you:

Where the recording actually is

Before writing any code, find the file. Each platform stores it differently:

PlatformWhere to lookWhat you get
ZoomLocal recording folder, or cloud recordings in the web accountmp4 plus a separate m4a audio track
Microsoft TeamsOneDrive or SharePoint, in the meeting chatmp4
Google MeetThe Meet Recordings folder in Drivemp4

Zoom local recordings are the convenient case: the audio-only file is already there and no conversion is needed.

Step 1. Extract and shrink the audio

An hour of meeting video is gigabytes; the same hour of speech in mp3 is around 25 MB. Meetings are mostly speech, so a mono track at a modest bitrate loses nothing that matters:

ffmpeg -i meeting.mp4 -vn -ac 1 -ar 16000 -b:a 48k meeting.mp3

Mono at 16 kHz is exactly what recognition models expect. The file becomes small enough that a two-hour meeting still fits into a couple of requests.

Step 2. Transcribe with timings

For meetings, ask for verbose_json rather than plain text: the segments carry start and end times, which is what lets you jump back into the recording later.

from openai import OpenAI

client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="your key")

with open("meeting.mp3", "rb") as f:
    r = client.audio.transcriptions.create(
        model="whisper-1", file=f,
        response_format="verbose_json",
        prompt="Weekly product sync: roadmap, Q3 release, Kubernetes migration",
    )

for s in r.segments:
    print(f"[{int(s.start)//60:02d}:{int(s.start)%60:02d}] {s.text.strip()}")

The prompt is where you put the vocabulary of your company: project names, internal acronyms, surnames. Meetings are full of terms no general model has ever seen, and a one-line hint fixes most of them.

Step 3. Turn the transcript into notes

The transcript itself is raw material. The useful artefact is a short summary with decisions and owners, and that is a job for a language model — the transcript goes in, structured notes come out:

notes = llm(f"""Here is a meeting transcript. Return:
1) a summary in five bullet points,
2) decisions made,
3) action items in the form "owner — task — deadline".
Quote only what is in the text; do not invent items.

{transcript}""")

Two rules keep the result trustworthy: ask explicitly for “only what is in the text”, and keep the timings so any claim can be checked against the recording.

Who said what

The honest answer: a single mixed audio track does not come back with speaker labels. Two practical ways around it:

For most meeting notes, exact attribution matters less than the decisions themselves — do not over-engineer this before you know you need it.

Long meetings and cost

Billing is per minute of audio, so the two levers are obvious: do not transcribe what you do not need, and do not send silence.

# split a long meeting into half-hour parts
ffmpeg -i meeting.mp3 -f segment -segment_time 1800 -c copy part%03d.mp3

Recurring status meetings are usually worth transcribing in full; two-hour workshops are often better handled by transcribing the section where the decision was actually made. A rule of thumb that works: transcribe everything for a month, look at what people actually search for, then narrow it down.

Try it on your own recordings. Sign-up takes a minute, and the free minutes are enough to judge the quality.

Get a free API key

Frequently asked questions

Can I send an mp4 file directly?

Extract the audio track first with ffmpeg. Video is dozens of times larger and the picture carries nothing that recognition uses, so you would only be paying for upload time.

How long does an hour-long meeting take?

A few minutes at most: processing runs faster than real time, and splitting a long recording into parts lets you send them in parallel.

Will the transcript identify the speakers?

Not from a single mixed track. Record participants into separate audio files and transcribe them one by one — that gives an exact split by speaker.

How do I make sure internal terms are spelled right?

Pass them through the prompt parameter: project names, acronyms and surnames listed in one line noticeably improve how they are recognised.

Are the recordings stored anywhere?

Recordings and transcripts stay for no longer than 24 hours so you can download the result from the client area, then they are deleted automatically.

Related reading