Skip to content

Update a meeting recording

meeting.update_recording(strrecording_id, MeetingUpdateRecordingParams**kwargs) -> MeetingUpdateRecordingResponse
POST/v1/meetings/{id}/recordings/{recordingId}

A recording is one session of the meeting: its transcript and, when there is one, its audio or video. Recordings come from the Lightfield notetaker, Gong, Granola, or an upload. Only uploaded recordings can be created or given media through the API. Changes only what is sent. isCanonical: true makes the recording the meeting primary, for any provider. mediaFileId adds or replaces the audio or video of an uploaded recording; a replaced file is deleted. Notetaker, Gong and Granola recordings cannot be given media. Only meeting participants and workspace owners may update.

Supports idempotency via the Idempotency-Key header.

Required scope: meetings:update

Rate limit category: Write

ParametersExpand Collapse
id: str

Unique identifier of the meeting.

recording_id: str

Unique identifier of the recording.

is_canonical: Optional[bool]

true pins this as the meeting’s primary recording. Works for every provider, but the recording needs a transcript file (transcript is not null). false is rejected: to move the primary, set it on another recording.

media_file_id: Optional[str]

File ID of a completed upload with purpose meeting_recording. Adds or replaces the media; a replaced file is deleted. Uploaded recordings only.

ReturnsExpand Collapse
class MeetingUpdateRecordingResponse: …
id: str

Unique identifier of the recording.

is_canonical: bool

Whether this is the meeting’s primary recording, the one summaries and $transcript use.

media: Optional[Media]

Playable audio or video. Null when the recording has none, such as a Granola note, a private Gong call, a failed notetaker recording or an upload without media.

mime_type: Optional[str]

MIME type of the media, when known.

url: str

Short-lived download URL for the audio or video. Anyone with the URL can download it until it expires, so fetch it again when needed rather than storing it.

provider: Literal["RECALL", "GONG", "GRANOLA", "UPLOAD"]

Where the recording came from: RECALL (Lightfield notetaker), GONG, GRANOLA, or UPLOAD.

One of the following:
"RECALL"
"GONG"
"GRANOLA"
"UPLOAD"
recorded_at: Optional[str]

When the provider recorded it, in ISO 8601. Null if unknown.

recorded_by: Optional[str]

Display name of who recorded or uploaded it. Not a member reference.

transcript: Optional[Transcript]

The transcript text file. Null for older notetaker recordings.

file_id: str

File ID of the transcript. Read its text through GET /v1/files/{id}/url.

Update a meeting recording

from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
meeting_update_recording_response = client.meeting.update_recording(
    recording_id="recordingId",
    id="id",
)
print(meeting_update_recording_response.id)
{
  "id": "id",
  "isCanonical": true,
  "media": {
    "mimeType": "mimeType",
    "url": "url"
  },
  "provider": "RECALL",
  "recordedAt": "recordedAt",
  "recordedBy": "recordedBy",
  "transcript": {
    "fileId": "fileId"
  }
}
Returns Examples
{
  "id": "id",
  "isCanonical": true,
  "media": {
    "mimeType": "mimeType",
    "url": "url"
  },
  "provider": "RECALL",
  "recordedAt": "recordedAt",
  "recordedBy": "recordedBy",
  "transcript": {
    "fileId": "fileId"
  }
}