Skip to main content
Glama
schema.py2 kB
# chuk-motion/src/chuk_motion/components/overlays/EndScreen/schema.py """EndScreen component schema and Pydantic models.""" from typing import Literal from pydantic import BaseModel, Field from ...base import ComponentMetadata class EndScreenProps(BaseModel): """Properties for EndScreen component.""" cta_text: str = Field(description="Call-to-action text") thumbnail_url: str | None = Field(None, description="Video thumbnail URL") variant: Literal["standard", "split", "carousel", "minimal"] = Field( "standard", description="Layout variant" ) duration_seconds: float = Field(10.0, description="Duration (seconds)", gt=0.0) class Config: extra = "forbid" # Component metadata METADATA = ComponentMetadata( name="EndScreen", description="YouTube end screen with CTAs and video suggestions", category="scene", ) # MCP schema (for backward compatibility with MCP tools list) MCP_SCHEMA = { "description": "YouTube end screen with CTAs and video suggestions", "category": "scene", "variants": { "standard": "Simple layout with video thumbnail and subscribe", "split": "Split screen with multiple CTAs", "carousel": "Sliding carousel of videos", "minimal": "Clean single CTA", }, "schema": { "cta_text": {"type": "string", "required": True, "description": "Call-to-action text"}, "thumbnail_url": {"type": "string", "default": None, "description": "Video thumbnail URL"}, "variant": { "type": "enum", "default": "standard", "values": ["standard", "split", "carousel", "minimal"], "description": "Layout variant", }, "duration_seconds": {"type": "float", "default": 10.0, "description": "Duration (seconds)"}, }, "example": { "cta_text": "Watch Next", "thumbnail_url": "https://example.com/thumb.jpg", "variant": "split", "duration_seconds": 10.0, }, }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/chuk-mcp-remotion'

If you have feedback or need assistance with the MCP directory API, please join our Discord server