increate daily recording max duration

This commit is contained in:
Igor Loskutov
2025-12-18 15:27:51 -05:00
parent 964cd78bb6
commit e5ab76de88
3 changed files with 15 additions and 0 deletions

View File

@@ -91,6 +91,10 @@ class MeetingTokenProperties(BaseModel):
start_cloud_recording: bool = Field(
default=False, description="Automatically start cloud recording on join"
)
start_cloud_recording_opts: dict | None = Field(
default=None,
description="Options for startRecording when start_cloud_recording is true (e.g., maxDuration)",
)
enable_recording_ui: bool = Field(
default=True, description="Show recording controls in UI"
)

View File

@@ -181,11 +181,17 @@ class DailyClient(VideoPlatformClient):
enable_recording_ui: bool,
user_id: NonEmptyString | None = None,
is_owner: bool = False,
max_recording_duration_seconds: int | None = None,
) -> NonEmptyString:
start_cloud_recording_opts = None
if start_cloud_recording and max_recording_duration_seconds:
start_cloud_recording_opts = {"maxDuration": max_recording_duration_seconds}
properties = MeetingTokenProperties(
room_name=room_name,
user_id=user_id,
start_cloud_recording=start_cloud_recording,
start_cloud_recording_opts=start_cloud_recording_opts,
enable_recording_ui=enable_recording_ui,
is_owner=is_owner,
)

View File

@@ -567,12 +567,17 @@ async def rooms_join_meeting(
if meeting.platform == "daily" and user_id is not None:
client = create_platform_client(meeting.platform)
end_date = meeting.end_date
if end_date.tzinfo is None:
end_date = end_date.replace(tzinfo=timezone.utc)
remaining_seconds = int((end_date - current_time).total_seconds())
token = await client.create_meeting_token(
meeting.room_name,
start_cloud_recording=meeting.recording_type == "cloud",
enable_recording_ui=meeting.recording_type == "local",
user_id=user_id,
is_owner=user_id == room.user_id,
max_recording_duration_seconds=remaining_seconds,
)
meeting = meeting.model_copy()
meeting.room_url = add_query_param(meeting.room_url, "t", token)