Part 2 of 7 · Meeting notetaker series ~4 min read

How a meeting recording comes in

The notetaker only works on recordings it actually receives. So the first job is making it easy to hand it a file, no matter where that file starts out. There are three ways a recording gets in: somebody drops it in a Drive folder, somebody uploads it through a private link, or somebody forwards the email their conferencing tool sent with the recording attached. The first one is obvious. The other two exist because in real life the recording is often already in an inbox or on a laptop, and asking people to move it into Drive first is a step they’ll skip.

Key takeaways

  • Three intake lanes feed one S3 bucket: the Drive folder, a direct upload link, and an email-forwarding lane.
  • Audio and video both work — Amazon Transcribe pulls the audio out of video files on its own.
  • A small sidecar file names the meeting and lists attendees; if it’s missing, the organizer fills it in later.
  • The forwarding lane catches the recording your conferencing tool emails after the call.
  • S3 stays the one place the pipeline reads from. The lanes are just three doors into it.

Three lanes into one bucket

Three intake lanes funnel into one S3 bucket A diagram with three vertical lane columns at the top and a single unified row at the bottom. Lane one, Drive folder: somebody drops a meeting recording into the Google Drive folder; the drive-sync Lambda mirrors new files to S3 every few minutes, and the pipeline reads from there. Lane two, Upload link: somebody opens a private upload page and selects the file; the page requests a pre-signed S3 URL from a small Lambda and the browser uploads the file straight to S3 without it passing through any server. Lane three, Email forward: somebody forwards the email their conferencing tool sent with the recording attached to a dedicated address; SES writes the raw message to S3, and a small parser Lambda pulls the attached audio or video file out and writes it to the recordings bucket. All three lanes converge on the same recordings bucket, which an S3 event triggers to start an Amazon Transcribe job. A note at the bottom: S3 stays the one place the pipeline reads from — the three lanes are just doors into it. Lane 1 · drop file Drive folder • Drop a recording in the folder • drive-sync mirrors to S3 every few min • Pipeline reads from S3 • Audio or video both work Lane 2 · pre-signed URL Upload link • Open the private upload page • Lambda hands back a pre-signed URL • Browser uploads straight to S3 • No server in the file path Lane 3 · SES inbound Email forward • Forward the tool’s recording email • SES writes MIME to S3 • Parser pulls the attached file out • Writes it to the recordings bucket Recordings bucket in S3 (one place to read) meeting file · optional sidecar · title · attendees · organizer · date an S3 event on the new file starts an Amazon Transcribe job to the notes engine S3 stays the one place the pipeline reads from — the three lanes are just doors into it.
Fig 2. Three lanes converge on one S3 bucket. The bucket is the one place the pipeline reads from; the upload link and the email lane are conveniences. A new file in the bucket starts an Amazon Transcribe job, and the pipeline takes it from there.

Lane 1: the Drive folder itself

The simplest lane. Open the recordings folder in Drive, drop in an audio or video file, done. A small Lambda — drive-sync — runs every few minutes, lists new files via the Drive API, and copies anything it hasn’t seen to s3://mn-recordings/. The pipeline reads from S3, not Drive directly. That keeps Drive API calls predictable and gives you S3 versioning for free, so an accidental overwrite can be rolled back in one click.

Next to the file you can drop a small sidecar text file with the same name — monday-planning.txt next to monday-planning.mp4 — holding the meeting title, the date, the organizer’s email, and who was in the room. If you skip the sidecar, the notetaker still runs; it just asks the organizer to fill in the attendee list when it shows them the draft. The sidecar is a convenience, not a requirement.

Sometimes the recording is just sitting on somebody’s machine and Drive isn’t open. For that there’s a private upload page — a single web page behind a login that lets a team member pick a file and a few details (title, organizer, attendees). When they hit upload, the page asks a small Lambda for a pre-signed URL — a one-time, time-limited web address that lets the browser write directly to S3. The file goes straight from the laptop to the bucket; it never passes through a server we run, which keeps things cheap and avoids any file-size limits a server would impose.

The same page writes the title and attendees into the sidecar file alongside the recording, so the notes engine has what it needs from the start. This is the lane most useful for one-off meetings and for anyone who finds dragging a file into a web page easier than syncing Drive.

Lane 3: email forward

Most conferencing tools email you a link or an attachment after a call ends. Lane 3 catches that. Set up a dedicated inbound address — something like notes@your-company.com — via Amazon SES. Forward the tool’s recording email to that address and the notetaker takes it from there. SES writes the raw message to s3://mn-raw-mime/. The S3 write triggers a small parser Lambda that walks the message, finds the audio or video attachment, and copies it to the recordings bucket. If the email contains a download link instead of an attachment, the parser follows the link and pulls the file down.

The forwarding lane is the most hands-off of the three: no app to open, no folder to sync. For teams whose tool already emails them the recording, forwarding is one tap, and the notetaker handles the rest.

Why S3 stays the one place the pipeline reads

Three lanes in, but only one place the pipeline actually looks. That’s a deliberate constraint. If each lane handed files to the notes engine in its own way, every “why didn’t this meeting get notes?” question would mean checking three different paths. Funneling everything through one S3 bucket means there is exactly one trigger — a new file lands, a Transcribe job starts — no matter how the file arrived. The convenience lanes are first-class for getting recordings in, but they all pass through the same door.

Next post: how the transcript gets made, and how Bedrock turns it into a short summary and a clean list of decisions and action items.

All posts