{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/peertube/main/json-schema/Video.json", "title": "Video", "properties": { "id": { "description": "object id for the video", "allOf": [ { "$ref": "#/components/schemas/id" } ] }, "uuid": { "description": "universal identifier for the video, that can be used across instances", "allOf": [ { "$ref": "#/components/schemas/UUIDv4" } ] }, "shortUUID": { "allOf": [ { "$ref": "#/components/schemas/shortUUID" } ] }, "isLive": { "type": "boolean" }, "liveSchedules": { "type": "array", "items": { "$ref": "#/components/schemas/LiveSchedule" } }, "createdAt": { "type": "string", "format": "date-time", "example": "2017-10-01T10:52:46.396000+00:00", "description": "time at which the video object was first drafted" }, "publishedAt": { "type": "string", "format": "date-time", "example": "2018-10-01T10:52:46.396000+00:00", "description": "time at which the video was marked as ready for playback (with restrictions depending on `privacy`). Usually set after a `state` evolution." }, "updatedAt": { "type": "string", "format": "date-time", "example": "2021-05-04T08:01:01.502000+00:00", "description": "last time the video's metadata was modified" }, "originallyPublishedAt": { "type": "string", "nullable": true, "format": "date-time", "example": "2010-10-01T10:52:46.396000+00:00", "description": "used to represent a date of first publication, prior to the practical publication date of `publishedAt`" }, "category": { "allOf": [ { "$ref": "#/components/schemas/VideoConstantNumber-Category" } ], "description": "category in which the video is classified" }, "licence": { "allOf": [ { "$ref": "#/components/schemas/VideoConstantNumber-Licence" } ], "description": "licence under which the video is distributed" }, "language": { "allOf": [ { "$ref": "#/components/schemas/VideoConstantString-Language" } ], "description": "main language used in the video" }, "privacy": { "allOf": [ { "$ref": "#/components/schemas/VideoPrivacyConstant" } ], "description": "privacy policy used to distribute the video" }, "truncatedDescription": { "type": "string", "nullable": true, "example": "**[Want to help to translate this video?](https://weblate.framasoft.org/projects/what-is-peertube-video/)**\\r\\n\\r\\n\n**Take back the control of your videos! [#JoinPeertube](https://joinpeertube.org)**\\r\\n*A decentralized video hosting network, based on fr...\n", "minLength": 3, "maxLength": 250, "description": "truncated description of the video, written in Markdown.\n" }, "duration": { "type": "integer", "example": 1419, "format": "seconds", "description": "duration of the video in seconds" }, "aspectRatio": { "type": "number", "nullable": true, "format": "float", "example": 1.778, "description": "**PeerTube >= 6.1** Aspect ratio of the video stream" }, "isLocal": { "type": "boolean" }, "name": { "type": "string", "description": "title of the video", "example": "What is PeerTube?", "minLength": 3, "maxLength": 120 }, "thumbnailPath": { "description": "Deprecated in PeerTube v8.1, use thumbnails instead", "deprecated": true, "type": "string" }, "previewPath": { "description": "Deprecated in PeerTube v8.1, use thumbnails instead", "deprecated": true, "type": "string" }, "thumbnails": { "description": "**PeerTube >= 8.1** Array of thumbnails for the video", "type": "array", "items": { "$ref": "#/components/schemas/Thumbnail" } }, "embedPath": { "type": "string", "example": "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee" }, "views": { "type": "integer", "example": 1337 }, "likes": { "type": "integer", "example": 42 }, "dislikes": { "type": "integer", "example": 7 }, "comments": { "description": "**PeerTube >= 7.2** Number of comments on the video", "type": "integer" }, "nsfw": { "type": "boolean" }, "nsfwFlags": { "allOf": [ { "$ref": "#/components/schemas/NSFWFlag" } ] }, "nsfwSummary": { "type": "string", "description": "**PeerTube >= 7.2** More information about the sensitive content of the video" }, "waitTranscoding": { "type": "boolean", "nullable": true }, "state": { "allOf": [ { "$ref": "#/components/schemas/VideoStateConstant" } ], "description": "represents the internal state of the video processing within the PeerTube instance" }, "scheduledUpdate": { "nullable": true, "allOf": [ { "$ref": "#/components/schemas/VideoScheduledUpdate" } ] }, "blacklisted": { "nullable": true, "type": "boolean" }, "blacklistedReason": { "nullable": true, "type": "string" }, "account": { "$ref": "#/components/schemas/AccountSummary" }, "channel": { "$ref": "#/components/schemas/VideoChannelSummary" }, "userHistory": { "nullable": true, "type": "object", "properties": { "currentTime": { "type": "integer" } } } } }