Generate an attributed transcript

Generate a speaker-labeled transcript from a processed media recording, with per-segment speaker attribution, timestamps, and optional word-level timing.

The Attributed Transcript API turns a processed media recording into a speaker-labeled transcript. It returns timestamped segments, each attributed to the speaker who said it, with optional word-level timing and confidence scores.

Notes Agent produces speaker-attributed transcripts automatically for every meeting it records. Use this API when you want the same transcript for a media asset you have already uploaded, such as a webinar, interview, or a recording captured outside Notes Agent.

Just want to try it? You can generate an attributed transcript in the dashboard with no setup. See Generate an attributed transcript from the dashboard.


Before you begin

To generate an attributed transcript with the API, make sure that you have the following:

  • An access token and secret key from the FastPix dashboard. See Activate your account to generate them.
  • A media asset that has finished processing, so you have its mediaId. See Upload videos from a URL.
  • A webhook endpoint configured to receive the video.media.ai.attributed_transcript.ready event. See Set up webhooks.

Both endpoints use HTTP Basic authentication. Pass your access token as the username and your secret key as the password.


How attributed transcripts work

Generating an attributed transcript is asynchronous:

  1. Send a POST request to trigger generation. FastPix returns a job ID right away.
  2. FastPix processes the media and sends the video.media.ai.attributed_transcript.ready webhook event when the transcript is ready.
  3. Send a GET request to retrieve the result.

Wait for the webhook event before you call the GET endpoint. Do not poll.


Generate an attributed transcript

Send a POST request to /ai/{mediaId}/attributed-transcript, replacing {mediaId} with the ID of your media.

$curl -X POST https://api.fastpix.com/v1/ai/{mediaId}/attributed-transcript \
> -u "$ACCESS_TOKEN:$SECRET_KEY"

FastPix accepts the request and returns the job ID. Generation starts immediately.

1{
2 "success": true,
3 "data": {
4 "id": "c695988b-ff84-42ae-bb21-10f284fedb0e"
5 }
6}
FieldTypeDescription
successbooleanWhether the request was accepted.
data.idstring (UUID)Identifier for the triggered job.

Retrieve the attributed transcript

After you receive the video.media.ai.attributed_transcript.ready event, send a GET request to the same path.

$curl -X GET https://api.fastpix.com/v1/ai/{mediaId}/attributed-transcript \
> -u "$ACCESS_TOKEN:$SECRET_KEY"
1{
2 "success": true,
3 "data": {
4 "status": "COMPLETED",
5 "result": [
6 {
7 "speaker": "speaker_1",
8 "startSec": 0.0,
9 "endSec": 5.42,
10 "text": "Good morning everyone, let's get started with the agenda.",
11 "words": [
12 {
13 "word": "Good",
14 "startSec": 0.0,
15 "endSec": 0.32,
16 "confidence": 0.98,
17 "speaker": "speaker_1"
18 },
19 {
20 "word": "morning",
21 "startSec": 0.32,
22 "endSec": 0.71,
23 "confidence": 0.97,
24 "speaker": "speaker_1"
25 }
26 ]
27 },
28 {
29 "speaker": "speaker_2",
30 "startSec": 5.80,
31 "endSec": 10.15,
32 "text": "Sounds good. I have a few updates on the project timeline.",
33 "words": null
34 }
35 ]
36 }
37}
FieldTypeDescription
successbooleanWhether the request was successful.
data.statusstringJob status, for example COMPLETED.
data.resultarraySpeaker-attributed transcript segments. See the sections below.

Understand the result

The result is an array of transcript segments. Each segment is a continuous block of speech from a single speaker.

Segment fields

FieldTypeDescription
speakerstringSpeaker label, for example speaker_1 or speaker_2.
startSecnumberSegment start time in seconds.
endSecnumberSegment end time in seconds.
textstringTranscribed text for this segment.
wordsarray or nullOptional per-word timing. See the next section.

Word-level timing

When available, a segment’s words array gives timing and confidence for each individual word. The words field can be null when word-level timing is not available for a segment.

FieldTypeDescription
wordstringThe transcribed word.
startSecnumberWord start time in seconds.
endSecnumberWord end time in seconds.
confidencenumberTranscription confidence score, from 0 to 1.
speakerstringSpeaker label for this word.

Generate an attributed transcript from the dashboard

If you prefer a no-code option, you can generate an attributed transcript for any media from the FastPix dashboard. No access token, webhook, or API call is required.

  1. In the FastPix dashboard, go to Video > Media.
  2. Click the media you want to transcribe to open its detail page.
  3. In the left sidebar, under In-Video AI, click Transcript.
  4. Click Generate Transcript.
  5. Wait while FastPix processes the media. The transcript shows a Processing state until it is ready.
  6. Review the transcript. Every line is labeled by speaker and time-coded, and you can search for a phrase and seek the player to any moment.

Limits and considerations

  • All timestamps are in seconds from the start of the recording, so you can use them for playback navigation and captions.
  • The words array is optional and can be null for a segment.
  • Speaker labels depend on how the transcript is generated. When you call the API directly, speakers are labeled generically, such as speaker_1 and speaker_2. When the media was recorded by Notes Agent, calling the GET attributed transcript endpoint returns the real participant names of the people who spoke in the meeting.

What’s next