# Notetaker media formats

Source: https://developer.nylas.com/docs/v3/notetaker/media-formats/

Every meeting Notetaker attends produces up to 5 files: a recording, a thumbnail, a transcript, and, when you enable them, a summary and a list of action items. This page describes the format of each file so you can parse and store them. For how Nylas delivers the files and how long the download URLs last, see [Handling Notetaker media files](/docs/v3/notetaker/media-handling/).

## Video recording format

The default recording is an MP4 at 1280x720 that captures the main meeting interface without browser chrome or the meeting platform's toolbars. The audio track is stereo and includes every participant plus any shared content. Nylas produces it when `recording_type` is `audio_video`, which is the default.

What appears in the video differs slightly by provider:

- **Google Meet**: The participant grid and any shared screen content.
- **Microsoft Teams**: The main meeting area.
- **Zoom**: The full meeting window.

## Audio-only recording format

When `recording_type` is `audio` in your [Notetaker settings](/docs/v3/notetaker/#invite-notetaker-to-a-meeting), Nylas records only the meeting audio and never captures video. The file is an MP3 instead of an MP4, and it's the only recording file the meeting produces. In this mode:

- The MP3 appears as the `recording` entry in the [media response](/docs/reference/api/notetaker/get-notetaker-media/) and in `notetaker.media` webhook notifications.
- Nylas still generates a speaker-labelled transcript from the audio.
- No thumbnail is created, because there's no video to sample.

> **Warn:** 
> **Audio-only recordings can't have video added later.** Nylas doesn't capture video data in this mode, so there's no way to retrieve or reconstruct the video after the meeting ends.

## Thumbnail format

The thumbnail is a PNG that's 1280 pixels wide, with the height scaled to match the recording's aspect ratio. Nylas samples it from roughly the midpoint of the video recording, so it usually shows the meeting in progress rather than an empty room. Audio-only recordings don't produce one.

## Transcript format

The transcript is a JSON file. In its usual form, `type` is `speaker_labelled` and the `transcript` field is an array of segments, one per stretch of speech, each with the speaker's name, `start` and `end` times in milliseconds, and the text. A top-level `language` field carries the [code](/docs/v3/notetaker/transcription-settings/#supported-language-codes) of the language the transcription service detected; if you set `transcription_settings.expected_languages`, it's usually one of the codes you provided.

```json
{
  "object": "transcript",
  "type": "speaker_labelled",
  "language": "en",
  "transcript": [
    {
      "speaker": "Nyla",
      "start": 100,
      "end": 10420,
      "text": "Did you know that a day on Venus is longer than its year? It takes Venus about 243 Earth days to rotate once, but only about 225 Earth days to orbit the Sun."
    },
    {
      "speaker": "Leyah",
      "start": 10500,
      "end": 12500,
      "text": "That's wild. So technically, you could have a birthday before a sunrise there."
    }
  ]
}
```

In rare cases, Nylas returns the transcript as raw text without speaker labels or timestamps. `type` is `raw`, `transcript` is a single string, and `language` is still present.

```json
{
  "object": "transcript",
  "type": "raw",
  "language": "en",
  "transcript": "The Moon is slowly moving away from the Earth at a rate of about 3.8 centimeters per year."
}
```

> **Warn:** 
> **Your project should handle both transcript formats.** Raw transcripts are rare, but they happen. Branch on the `type` field before you read `transcript`.

## Summary and action items formats

When `summary` is `true`, Nylas generates a JSON file whose entire content is one string: a short summary of the meeting, typically a few sentences. When `action_items` is `true`, it generates a JSON file whose entire content is an array of strings, one per action item. Both require `transcription` to be `true`, and both accept `custom_instructions` of up to 3,000 characters to steer the output.

```json
"Participants discussed their project's new Notetaker implementation and what needs to be done to test it."
```

```json [aiOutputs-Action items]
["Test the Notetaker implementation."]
```

## Related topics

- [Handling Notetaker media files](/docs/v3/notetaker/media-handling/) for download URLs, the 60-minute expiry, and storing files.
- [Notetaker transcription settings](/docs/v3/notetaker/transcription-settings/) for language and keyword hints that change what lands in the transcript.
- [Enable summaries and action items](/docs/v3/notetaker/#enable-summaries-and-action-items) for turning on the two AI outputs.