{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "The schema for a video record in pytube/data",
    "properties": {
        "alias": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "[Deprecated] Legacy path to video on pyvideo.org"
        },
        "category": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "[Deprecated] Category of video. This is duplicated by category files and is thus depriciated in video files."
        },
        "copyright_text": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "Copyright license for video or link to copyright information."
        },
        "description": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "reStructuredText or plain text description of video"
        },
        "duration": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "integer"
                }
            ],
            "description": "Duration of video (in seconds)"
        },
        "id": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "integer"
                }
            ],
            "description": "ID for video. Must be unique amongst all videos if present."
        },
        "language": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "ISO 639-3 language code of spoken language used in video"
        },
        "quality_notes": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "Notes on quality of video"
        },
        "recorded": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "ISO 8601 Date on which video was recorded (YYYY-MM-DD)",
            "_format": "date-time"
        },
        "related_urls": {
            "description": "Array of related resources' URLs.",
            "items": {
                "anyOf": [
                    {
                        "_format": "uri",
                        "type": "string"
                    },
                    {
                        "properties": {
                            "label": {
                                "type": "string"
                            },
                            "url": {
                                "_format": "uri",
                                "type": "string"
                            }
                        },
                        "required": [
                            "label",
                            "url"
                        ],
                        "type": "object"
                    }
                ],
                "description": "URL of resource related to video."
            },
            "type": "array",
            "_uniqueItems": true
        },
        "slug": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "Web-safe slug for video. Must be unique amongst other videos in same category"
        },
        "speakers": {
            "description": "Ordered array of speakers in video.",
            "items": {
                "description": "Speaker name",
                "type": "string"
            },
            "type": "array",
            "_uniqueItems": true
        },
        "summary": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "reStructuredText or plain text description of video"
        },
        "tags": {
            "description": "Array of tags describing video",
            "items": {
                "description": "Tag describing video",
                "type": "string"
            },
            "type": "array",
            "_uniqueItems": true
        },
        "thumbnail_url": {
            "anyOf": [
                {
                    "type": "null"
                },
                {
                    "type": "string"
                }
            ],
            "description": "URL to thumbnail for video",
            "_format": "uri"
        },
        "title": {
            "description": "Title of video",
            "type": "string"
        },
        "videos": {
            "description": "Array of video locations and types",
            "items": {
                "description": "A video location and type",
                "properties": {
                    "length": {
                        "anyOf": [
                            {
                                "type": "null"
                            },
                            {
                                "type": "integer"
                            }
                        ],
                        "description": "[Deprecated] Size of video (in bytes). Please use 'size' instead."
                    },
                    "size": {
                        "anyOf": [
                            {
                                "type": "null"
                            },
                            {
                                "type": "integer"
                            }
                        ],
                        "description": "Size of video (in bytes)"
                    },
                    "type": {
                        "description": "File type of video at associated location",
                        "type": "string"
                    },
                    "url": {
                        "_format": "uri",
                        "description": "URL for video",
                        "type": "string"
                    }
                },
                "required": [
                    "type",
                    "url"
                ],
                "type": "object"
            },
            "minItems": 1,
            "type": "array",
            "_uniqueItems": true
        }
    },
    "required": [
        "description",
        "speakers",
        "recorded",
        "title",
        "videos"
    ],
    "title": "Video",
    "type": "object"
}