Participants & Speaker Timeline

Who was in the meeting, and who spoke when
View as Markdown

Two endpoints turn a recording into attributable data: get_participants (who was there) and get_speaker_timeline (who spoke when, down to byte ranges of the audio file).

List participants

$curl "https://api.meetstream.ai/api/v1/bots/<BOT_ID>/get_participants" \
> -H "Authorization: Token <YOUR_API_KEY>"

Each participant entry carries:

FieldWhat it is
deviceIdThe platform’s stable identifier for this participant in this meeting (e.g. spaces/.../devices/185 on Meet) — your key for joining data across endpoints
displayName / fullNameNames as shown in the meeting
profilePictureAvatar URL when the platform exposes one
status / humanized_statusCurrent state (e.g. in_meeting, not_in_meeting)
streamIdsThe participant’s media stream IDs — matches per-participant stream artifacts

Identify participants uniquely

Display names collide (“John” twice) and change mid-meeting. Use the IDs instead:

  • deviceId is unique per participant per meeting and consistent across get_participants, the speaker timeline (speakerId), and live audio frames (speaker_id).
  • streamIds link a participant to their per-participant audio/video files.
  • Speaker labels in transcripts carry per-word speaker attribution you can map back by name.

The speaker timeline

$curl "https://api.meetstream.ai/api/v1/bots/<BOT_ID>/get_speaker_timeline" \
> -H "Authorization: Token <YOUR_API_KEY>"

The response is a list of chunks, each mapping a slice of the recorded audio to a speaker:

1{
2 "chunks": [
3 { "chunkIndex": 0, "timestamp": "115360815932", "sampleRate": 48000,
4 "speakerId": "spaces/iWI9CBO8PnYB/devices/242", "speakerName": "Maddy Singh",
5 "startByte": 0, "endByte": 98300 }
6 ],
7 "lastUpdated": "2026-03-20T04:54:51.493Z"
8}

Because chunks reference byte ranges of the audio file at a known sample rate, you can compute exact timestamps (seconds = startByte / 2 / sampleRate for PCM16 mono), cut per-speaker clips, or build talk-time analytics without running diarization yourself.

Use cases this unlocks

  • Talk-time ratios for sales coaching (rep vs prospect seconds, straight from chunk math)
  • Speaker-accurate clip extraction (“play me everything the customer said”)
  • Cross-referencing: join timeline speakers to transcript words to per-participant files via the shared IDs

CLI: meetstream bot participants <id> and meetstream bot timeline <id>.