{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/ai/":{"get":{"summary":"Read Root","operationId":"read_root_ai__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai/health":{"get":{"summary":"Health Check","operationId":"health_check_ai_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/ai/api/v1/chat":{"post":{"summary":"Chat Endpoint","operationId":"chat_endpoint_ai_api_v1_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/playground-draft-gen":{"post":{"summary":"Playground Draft Gen","operationId":"playground_draft_gen_ai_api_v1_playground_draft_gen_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaygroundDraftUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/generate-title":{"post":{"summary":"Generate Title","operationId":"generate_title_ai_api_v1_generate_title_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTitleUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/generate-template":{"post":{"summary":"Generate Template From Draft","operationId":"generate_template_from_draft_ai_api_v1_generate_template_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateTemplateFromDraftInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/apply-template":{"post":{"summary":"Apply Template","operationId":"apply_template_ai_api_v1_apply_template_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyTemplateInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/generate-captions":{"post":{"summary":"Generate Captions","operationId":"generate_captions_ai_api_v1_generate_captions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCaptionsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/get_dynamic_suggestions/":{"post":{"summary":"Generate Dynamic Suggestions","operationId":"generate_dynamic_suggestions_ai_api_v1_get_dynamic_suggestions__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateDynamicSuggestionsInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/generate_reels_b":{"post":{"summary":"Generate Reels B","description":"Generate reels using the graph-based workflow approach.","operationId":"generate_reels_b_ai_api_v1_generate_reels_b_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateReelsBInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/ai_autofill_metadata/":{"post":{"summary":"Ai Autofill Metadata","description":"AI-powered metadata autofill endpoint.\n\nSupports two workflows:\n1. Category-based autofill: When category_instance_ids are provided\n2. Value-specific autofill: When value_instance_ids are provided\n\nFollows SOLID principles:\n- Single Responsibility: Each component handles one aspect of metadata generation\n- Open/Closed: Extensible for new metadata types without modification\n- Dependency Inversion: Depends on abstractions (state) rather than concrete implementations","operationId":"ai_autofill_metadata_ai_api_v1_ai_autofill_metadata__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMetadataInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/remix":{"post":{"summary":"Remix Endpoint","description":"Remix agent endpoint - analyzes video transcripts to identify interesting\nstandalone clips suitable for social media content.\n\nThis endpoint:\n1. Fetches transcript and shot segment data from Django\n2. Analyzes the transcript using AI to identify compelling clips\n3. Returns suggested clips with start/end times, topics, and reasoning","operationId":"remix_endpoint_ai_api_v1_remix_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemixAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/meme":{"post":{"summary":"Meme Endpoint","description":"Meme agent endpoint - analyzes video content to identify meme-worthy moments\nwith captions in source language.\n\nThis endpoint:\n1. Fetches transcript, visual events, and VAD data from Django\n2. Analyzes the video using AI to identify shareable meme moments\n3. Returns meme suggestions with captions, timing, and visual cues","operationId":"meme_endpoint_ai_api_v1_meme_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/mini-episode/v2":{"post":{"summary":"Mini Episode V2 Endpoint","description":"Mini episode v2 agent endpoint - selects main plots first, then trims dialogue.","operationId":"mini_episode_v2_endpoint_ai_api_v1_mini_episode_v2_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniEpisodeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/mini-episode":{"post":{"summary":"Mini Episode Endpoint","description":"Mini episode agent endpoint - analyzes episode transcripts to create a condensed\nversion that preserves the core storyline and best moments.\n\nThis endpoint:\n1. Fetches transcript and VAD data from Django\n2. Analyzes the episode using AI to identify key story segments\n3. Returns selected segments with timing and narrative flow explanation\n\nArgs:\n    request: FastAPI request object\n    payload: MiniEpisodeAgentInput with video_id, user_id, duration, etc.\n    current_user_id: Authenticated user ID from token\n\nReturns:\n    Response containing segments list, duration info, and storyline summary","operationId":"mini_episode_endpoint_ai_api_v1_mini_episode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniEpisodeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/api/v1/news-highlight":{"post":{"summary":"News Highlight Endpoint","description":"News highlight agent endpoint - extracts sentences from news transcripts\nwith timing information and generates highlights for identified stories.\n\nThis endpoint uses the news highlight runner to:\n1. Fetch transcript data from Django service\n2. Extract sentences with timing information\n3. Identify distinct news stories from the transcript\n4. Generate highlights (video cuts) for each story\n\nArgs:\n    request: FastAPI request object\n    payload: NewsHighlightPayload with video_id and processing options\n    current_user_id: Authenticated user ID from token\n\nReturns:\n    Response containing stories with their highlights","operationId":"news_highlight_endpoint_ai_api_v1_news_highlight_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsHighlightPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/ai/internal/health":{"get":{"tags":["internal"],"summary":"Health Check","description":"Internal health check endpoint.","operationId":"health_check_ai_internal_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Check Ai Internal Health Get"}}}},"404":{"description":"Not found"}}}},"/ai/internal/version":{"get":{"tags":["internal"],"summary":"Get Version","description":"Get the current service version.","operationId":"get_version_ai_internal_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Get Version Ai Internal Version Get"}}}},"404":{"description":"Not found"}}}},"/ai/internal/draft":{"post":{"tags":["internal"],"summary":"Draft Endpoint","operationId":"draft_endpoint_ai_internal_draft_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftUserInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/remix":{"post":{"tags":["internal"],"summary":"Remix Endpoint","description":"Internal Remix agent endpoint.","operationId":"remix_endpoint_ai_internal_remix_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemixAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/meme":{"post":{"tags":["internal"],"summary":"Meme Endpoint","description":"Internal Meme agent endpoint.","operationId":"meme_endpoint_ai_internal_meme_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/mini-episode":{"post":{"tags":["internal"],"summary":"Mini Episode Endpoint","description":"Internal Mini episode agent endpoint.","operationId":"mini_episode_endpoint_ai_internal_mini_episode_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniEpisodeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/mini-episode/v2":{"post":{"tags":["internal"],"summary":"Mini Episode V2 Endpoint","description":"Internal Mini episode v2 agent endpoint.","operationId":"mini_episode_v2_endpoint_ai_internal_mini_episode_v2_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MiniEpisodeAgentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/news-highlight":{"post":{"tags":["internal"],"summary":"News Highlight Endpoint","operationId":"news_highlight_endpoint_ai_internal_news_highlight_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsHighlightPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/podcast/generate-clips":{"post":{"tags":["internal"],"summary":"Podcast Generate Clips Endpoint","description":"Internal Podcast Clip Generator endpoint.","operationId":"podcast_generate_clips_endpoint_ai_internal_podcast_generate_clips_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastClipGeneratorInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/internal/podcast/generate-enhancements":{"post":{"tags":["internal"],"summary":"Podcast Generate Enhancements Endpoint","description":"Internal Podcast Enhancement Generator endpoint.","operationId":"podcast_generate_enhancements_endpoint_ai_internal_podcast_generate_enhancements_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PodcastEnhancementGeneratorInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"404":{"description":"Not found"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ApplyTemplateInput":{"properties":{"current_draft_json":{"additionalProperties":true,"type":"object","title":"Current Draft Json","description":"Current draft JSON"},"template_id":{"type":"string","title":"Template Id","description":"Template ID to fetch from Django internal API"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"User ID for internal API authorization header"}},"type":"object","required":["current_draft_json","template_id","user_id"],"title":"ApplyTemplateInput"},"ChatUserInput":{"properties":{"content":{"type":"string","title":"Content","description":"The user's query like 'Summarize the video' or make an edit of Messi's goal in the video"},"workspace_id":{"type":"string","format":"uuid","title":"Workspace Id","description":"The workspace id for the chat"},"video_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Video Ids"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for the user"},"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id","description":"The conversation id of the user"}},"type":"object","required":["content","workspace_id","user_id","conversation_id"],"title":"ChatUserInput"},"DraftUserInput":{"properties":{"content":{"type":"string","title":"Content","description":"The user's query like 'Summarize the video' or make an edit of Messi's goal in the video"},"workspace_id":{"type":"string","format":"uuid","title":"Workspace Id","description":"The workspace id for the draft"},"video_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Video Ids","description":"The video ids for draft generation"},"attachment_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Attachment Ids","description":"The attachment ids for the draft(image, video, audio, etc.)"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id of the user"}},"type":"object","required":["content","workspace_id","video_ids","attachment_ids","user_id"],"title":"DraftUserInput"},"DynamicSuggestion":{"properties":{"prompt":{"type":"string","title":"Prompt"},"video_ids":{"items":{"type":"string"},"type":"array","title":"Video Ids"}},"type":"object","required":["prompt","video_ids"],"title":"DynamicSuggestion"},"GenerateCaptionsInput":{"properties":{"draft_data":{"additionalProperties":true,"type":"object","title":"Draft Data","description":"Complete draft data containing timeline elements with dynamic text and video elements"},"text_element_id":{"type":"string","title":"Text Element Id","description":"ID of the specific text element to generate caption for"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"User ID for authorization"}},"type":"object","required":["draft_data","text_element_id","user_id"],"title":"GenerateCaptionsInput"},"GenerateDynamicSuggestionsInput":{"properties":{"parent_id":{"type":"string","title":"Parent Id","description":"Parent id is the folder id"},"workspace_id":{"type":"string","format":"uuid","title":"Workspace Id","description":"Workspace id is the id of current workspace"},"selected_items":{"items":{"type":"string"},"type":"array","title":"Selected Items","description":"Selected items are the items that are selected by the user"},"previous_suggestions":{"items":{"$ref":"#/components/schemas/DynamicSuggestion"},"type":"array","title":"Previous Suggestions","description":"Previous suggestions are the suggestions that were generated previously"}},"type":"object","required":["parent_id","workspace_id","selected_items","previous_suggestions"],"title":"GenerateDynamicSuggestionsInput"},"GenerateMetadataInput":{"properties":{"value_instance_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Value Instance Ids","description":"List of specific value instance IDs for the metadata generation"},"file_id":{"type":"string","title":"File Id","description":"File ID from library for which metadata should be generated"},"category_instance_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Category Instance Ids","description":"List of category instance IDs for the metadata generation"}},"type":"object","required":["file_id"],"title":"GenerateMetadataInput"},"GenerateReelsBInput":{"properties":{"video_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Video Ids","description":"Video ids is the ids of the videos that are selected by the user"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id","description":"Parent id is the id of the parent that is selected by the user"},"user_query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Query","description":"User query is the query that is selected by the user"},"workspace_id":{"type":"string","title":"Workspace Id","description":"Workspace id is the id of the workspace that is selected by the user"},"aspect_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect Ratio","description":"Viewport aspect ratio is the aspect ratio of the viewport that is selected by the user"}},"type":"object","required":["workspace_id"],"title":"GenerateReelsBInput"},"GenerateTemplateFromDraftInput":{"properties":{"draft_json":{"additionalProperties":true,"type":"object","title":"Draft Json","description":"Draft JSON (DraftOutput or EnhancedDraft) to convert into template instructions"},"existing_instructions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Existing Instructions","description":"Optional list of existing ElementInstruction objects. When provided, these will be preserved for matching elements (by element_id), and new instructions will only be generated for new elements."}},"type":"object","required":["draft_json"],"title":"GenerateTemplateFromDraftInput"},"GenerateTitleUserInput":{"properties":{"conversation_id":{"type":"string","format":"uuid","title":"Conversation Id","description":"The conversation id to generate a title for"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for the request"},"workspace_id":{"type":"string","format":"uuid","title":"Workspace Id","description":"The workspace id for the request"}},"type":"object","required":["conversation_id","user_id","workspace_id"],"title":"GenerateTitleUserInput"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MemeAgentInput":{"properties":{"video_id":{"type":"string","title":"Video Id","description":"ID of the video to analyze for meme suggestions"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for authorization"},"user_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Instructions","description":"Optional user instructions to focus on specific meme types or themes (e.g., 'Focus on funny moments' or 'Find relatable office scenarios')"},"previous_suggestions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Previous Suggestions","description":"Optional list of previously generated memes. Used for 'generate more' requests to avoid duplicates."}},"type":"object","required":["video_id","user_id"],"title":"MemeAgentInput"},"MiniEpisodeAgentInput":{"properties":{"video_id":{"type":"string","title":"Video Id","description":"ID of the episode video to analyze for mini episode generation"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for authorization"},"original_duration":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Original Duration","description":"Duration of the original episode in seconds. If not provided, will be calculated from transcript data."},"target_compression":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Target Compression","description":"Target compression ratio (e.g., 0.25 for 1/4 duration, 0.33 for 1/3 duration). Defaults to 0.25 (1/4 of original).","default":0.25},"user_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Instructions","description":"Optional user instructions for focus areas or specific requirements (e.g., 'Focus on action scenes' or 'Keep character development moments')"},"max_visual_events":{"anyOf":[{"type":"integer","maximum":500.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Max Visual Events","description":"Maximum number of visual events to include (filters to most important). Default: 100","default":100},"min_event_duration":{"anyOf":[{"type":"number","maximum":10.0,"minimum":0.5},{"type":"null"}],"title":"Min Event Duration","description":"Minimum duration (seconds) for visual events to be considered. Default: 2.0s","default":2.0}},"type":"object","required":["video_id","user_id"],"title":"MiniEpisodeAgentInput"},"NewsHighlightPayload":{"properties":{"video_id":{"type":"string","format":"uuid","title":"Video Id","description":"The video id to analyze"},"include_timing":{"type":"boolean","title":"Include Timing","description":"Whether to include timing information for sentences","default":true},"pause_threshold_sec":{"type":"number","title":"Pause Threshold Sec","description":"Threshold in seconds for pause-based sentence splitting","default":1.2},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit","description":"Maximum number of sentences to return"}},"type":"object","required":["video_id"],"title":"NewsHighlightPayload"},"PlaygroundDraftUserInput":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"Full prompt for the draft generation"},"instructions":{"type":"string","title":"Instructions","description":"The instructions for the draft generation"},"user_prompt":{"type":"string","title":"User Prompt","description":"The user's prompt for the draft generation"},"workspace_id":{"type":"string","format":"uuid","title":"Workspace Id","description":"The workspace id for the draft"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for the draft"},"video_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Video Ids","description":"The video ids for the draft generation"},"attachment_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Attachment Ids","description":"The attachment ids for the draft(image, video, audio, etc.)"}},"type":"object","required":["prompt","instructions","user_prompt","workspace_id","user_id","video_ids","attachment_ids"],"title":"PlaygroundDraftUserInput"},"PodcastClipGeneratorInput":{"properties":{"transcript_data":{"additionalProperties":true,"type":"object","title":"Transcript Data","description":"AWS Transcribe transcript data with results.audio_segments"},"duration":{"type":"number","exclusiveMinimum":0.0,"title":"Duration","description":"Total video duration in seconds"},"max_clips":{"type":"integer","maximum":50.0,"minimum":1.0,"title":"Max Clips","description":"Maximum number of clips to generate","default":20},"min_clip_seconds":{"type":"number","maximum":60.0,"minimum":5.0,"title":"Min Clip Seconds","description":"Minimum clip length in seconds","default":15.0},"max_clip_seconds":{"type":"number","maximum":300.0,"minimum":30.0,"title":"Max Clip Seconds","description":"Maximum clip length in seconds","default":120.0}},"type":"object","required":["transcript_data","duration"],"title":"PodcastClipGeneratorInput","description":"Input schema for podcast clip generator endpoint."},"PodcastEnhancementGeneratorInput":{"properties":{"clips":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Clips","description":"List of clips with id, start, end, title"},"transcript_data":{"additionalProperties":true,"type":"object","title":"Transcript Data","description":"AWS Transcribe transcript data with results.audio_segments"},"max_effects_per_clip":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Effects Per Clip","description":"Maximum enhancements per clip","default":5},"effect_catalog":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Effect Catalog","description":"Optional workspace-specific effect catalog (if None, uses default bundled catalog)"}},"type":"object","required":["clips","transcript_data"],"title":"PodcastEnhancementGeneratorInput","description":"Input schema for podcast enhancement generator endpoint."},"RemixAgentInput":{"properties":{"video_id":{"type":"string","title":"Video Id","description":"ID of the video to analyze for clip suggestions"},"user_id":{"type":"string","format":"uuid","title":"User Id","description":"The user id for authorization"},"user_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Instructions","description":"Optional user instructions to focus on specific topics, keywords, or themes (e.g., 'Focus on motivational moments' or 'Find clips about leadership')"},"previous_suggestions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Previous Suggestions","description":"Optional list of previously generated clips. Used for 'generate more' requests to avoid duplicates and find new segments."}},"type":"object","required":["video_id","user_id"],"title":"RemixAgentInput"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}