{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://dev.twitch.tv/schemas/twitch/video.json", "title": "Twitch Video", "description": "Represents a video on Twitch, including VODs (archives of past streams), highlights, and uploads.", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier for the video" }, "stream_id": { "type": ["string", "null"], "description": "ID of the stream the video was recorded from (null for uploads)" }, "user_id": { "type": "string", "description": "ID of the user who owns the video" }, "user_login": { "type": "string", "description": "Login name of the user who owns the video" }, "user_name": { "type": "string", "description": "Display name of the user who owns the video" }, "title": { "type": "string", "description": "Title of the video" }, "description": { "type": "string", "description": "Description of the video" }, "created_at": { "type": "string", "format": "date-time", "description": "UTC timestamp when the video was created" }, "published_at": { "type": "string", "format": "date-time", "description": "UTC timestamp when the video was published" }, "url": { "type": "string", "format": "uri", "description": "URL to view the video on Twitch" }, "thumbnail_url": { "type": "string", "format": "uri", "description": "URL template for the video thumbnail" }, "viewable": { "type": "string", "enum": ["public", "private"], "description": "Visibility of the video" }, "view_count": { "type": "integer", "minimum": 0, "description": "Number of times the video has been viewed" }, "language": { "type": "string", "description": "Language of the video" }, "type": { "type": "string", "enum": ["upload", "archive", "highlight"], "description": "Type of video" }, "duration": { "type": "string", "description": "Duration of the video in ISO 8601 format (e.g., 3h21m10s)" }, "muted_segments": { "type": ["array", "null"], "items": { "type": "object", "properties": { "duration": { "type": "integer", "description": "Duration of the muted segment in seconds" }, "offset": { "type": "integer", "description": "Offset in the video where the muted segment begins in seconds" } } }, "description": "Segments of the video that are muted" } }, "required": ["id", "user_id", "user_login", "user_name", "title", "created_at", "published_at", "url", "thumbnail_url", "viewable", "view_count", "language", "type", "duration"] }