# Video

Type: Video

Schema: [Video](https://sourcey-peertube.pages.dev/api-rest-reference/models/video.md)

- `id` (optional)
  Reference: [id](https://sourcey-peertube.pages.dev/api-rest-reference/models/id.md); Type: id
  
  object id for the video

- `uuid` (optional)
  Type: UUIDv4
  
  universal identifier for the video, that can be used across instances
  
  allOf:
    Reference: [UUIDv4](https://sourcey-peertube.pages.dev/api-rest-reference/models/uuidv4.md); Type: UUIDv4, uuid
    
    minLength: 36
    
    maxLength: 36
    
    pattern: "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"
    
    Example:
    
    ```json
    "9c9de5e8-0a1e-484a-b099-e80766180a6d"
    ```

- `shortUUID` (optional)
  Reference: [shortUUID](https://sourcey-peertube.pages.dev/api-rest-reference/models/shortuuid.md); Type: shortUUID

- `isLive` (optional)
  Type: boolean

- `liveSchedules` (optional)
  Type: Array<LiveSchedule>
  
  Items:
    Reference: [LiveSchedule](https://sourcey-peertube.pages.dev/api-rest-reference/models/liveschedule.md); Type: LiveSchedule

- `createdAt` (optional)
  Type: string, date-time
  
  time at which the video object was first drafted
  
  Example:
  
  ```json
  "2017-10-01T10:52:46.396Z"
  ```

- `publishedAt` (optional)
  Type: string, date-time
  
  time at which the video was marked as ready for playback (with restrictions depending on `privacy`). Usually set after a `state` evolution.
  
  Example:
  
  ```json
  "2018-10-01T10:52:46.396Z"
  ```

- `updatedAt` (optional)
  Type: string, date-time
  
  last time the video's metadata was modified
  
  Example:
  
  ```json
  "2021-05-04T08:01:01.502Z"
  ```

- `originallyPublishedAt` (optional)
  Type: string, date-time; nullable
  
  used to represent a date of first publication, prior to the practical publication date of `publishedAt`
  
  Example:
  
  ```json
  "2010-10-01T10:52:46.396Z"
  ```

- `category` (optional)
  Type: VideoConstantNumber-Category
  
  category in which the video is classified
  
  allOf:
    Reference: [VideoConstantNumber-Category](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoconstantnumber-category.md); Type: VideoConstantNumber-Category

- `licence` (optional)
  Type: VideoConstantNumber-Licence
  
  licence under which the video is distributed
  
  allOf:
    Reference: [VideoConstantNumber-Licence](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoconstantnumber-licence.md); Type: VideoConstantNumber-Licence

- `language` (optional)
  Type: VideoConstantString-Language
  
  main language used in the video
  
  allOf:
    Reference: [VideoConstantString-Language](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoconstantstring-language.md); Type: VideoConstantString-Language

- `privacy` (optional)
  Type: VideoPrivacyConstant
  
  privacy policy used to distribute the video
  
  allOf:
    Reference: [VideoPrivacyConstant](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoprivacyconstant.md); Type: VideoPrivacyConstant

- `truncatedDescription` (optional)
  Type: string; nullable
  
  truncated description of the video, written in Markdown.
  
  
  minLength: 3
  
  maxLength: 250
  
  Example:
  
  ```json
  "**[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"
  ```

- `duration` (optional)
  Type: integer, seconds
  
  duration of the video in seconds
  
  Example:
  
  ```json
  1419
  ```

- `aspectRatio` (optional)
  Type: number, float; nullable
  
  **PeerTube >= 6.1** Aspect ratio of the video stream
  
  Example:
  
  ```json
  1.778
  ```

- `isLocal` (optional)
  Type: boolean

- `name` (optional)
  Type: name
  
  title of the video
  
  minLength: 3
  
  maxLength: 120
  
  Example:
  
  ```json
  "What is PeerTube?"
  ```

- `thumbnailPath` (optional)
  Type: string; nullable
  
  Deprecated in PeerTube v8.1, use thumbnails instead. Null if the file is stored in object storage: use the non-deprecated field instead.
  
  deprecated: true

- `previewPath` (optional)
  Type: string; nullable
  
  Deprecated in PeerTube v8.1, use thumbnails instead. Null if the file is stored in object storage: use the non-deprecated field instead.
  
  deprecated: true

- `thumbnails` (optional)
  Type: Array<Thumbnail>
  
  **PeerTube >= 8.1** Array of thumbnails for the video
  
  Items:
    Reference: [Thumbnail](https://sourcey-peertube.pages.dev/api-rest-reference/models/thumbnail.md); Type: Thumbnail

- `embedPath` (optional)
  Type: string
  
  Example:
  
  ```json
  "/videos/embed/a65bc12f-9383-462e-81ae-8207e8b434ee"
  ```

- `views` (optional)
  Type: integer
  
  Example:
  
  ```json
  1337
  ```

- `likes` (optional)
  Type: integer
  
  Example:
  
  ```json
  42
  ```

- `dislikes` (optional)
  Type: integer
  
  Example:
  
  ```json
  7
  ```

- `comments` (optional)
  Type: integer
  
  **PeerTube >= 7.2** Number of comments on the video

- `nsfw` (optional)
  Type: boolean

- `nsfwFlags` (optional)
  Type: NSFWFlag
  
  allOf:
    Reference: [NSFWFlag](https://sourcey-peertube.pages.dev/api-rest-reference/models/nsfwflag.md); Type: NSFWFlag
    
    
    NSFW flags (can be combined using bitwise or operator)
    - `0` NONE
    - `1` VIOLENT
    - `2` EXPLICIT_SEX
    
    
    enum: [0,1,2,4]

- `nsfwSummary` (optional)
  Type: string
  
  **PeerTube >= 7.2** More information about the sensitive content of the video

- `aiUsage` (optional)
  Reference: [VideoAIUsageConstant](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoaiusageconstant.md); Type: VideoAIUsageConstant

- `commercialContent` (optional)
  Reference: [VideoCommercialContentConstant](https://sourcey-peertube.pages.dev/api-rest-reference/models/videocommercialcontentconstant.md); Type: VideoCommercialContentConstant

- `recommendationScope` (optional)
  Reference: [VideoRecommendationScopeConstant](https://sourcey-peertube.pages.dev/api-rest-reference/models/videorecommendationscopeconstant.md); Type: VideoRecommendationScopeConstant

- `waitTranscoding` (optional)
  Type: boolean; nullable

- `state` (optional)
  Type: VideoStateConstant
  
  represents the internal state of the video processing within the PeerTube instance
  
  allOf:
    Reference: [VideoStateConstant](https://sourcey-peertube.pages.dev/api-rest-reference/models/videostateconstant.md); Type: VideoStateConstant

- `scheduledUpdate` (optional)
  Type: VideoScheduledUpdate; nullable
  
  allOf:
    Reference: [VideoScheduledUpdate](https://sourcey-peertube.pages.dev/api-rest-reference/models/videoscheduledupdate.md); Type: VideoScheduledUpdate

- `blacklisted` (optional)
  Type: boolean; nullable

- `blacklistedReason` (optional)
  Type: string; nullable

- `account` (optional)
  Reference: [AccountSummary](https://sourcey-peertube.pages.dev/api-rest-reference/models/accountsummary.md); Type: AccountSummary

- `channel` (optional)
  Reference: [VideoChannelSummary](https://sourcey-peertube.pages.dev/api-rest-reference/models/videochannelsummary.md); Type: VideoChannelSummary

- `userHistory` (optional)
  Type: object; nullable
  
  - `currentTime` (optional)
    Type: integer

- `captionLanguages` (optional)
  Type: Array<string>
  
  **PeerTube >= 9.0** Languages of the video captions. Only returned by video lists
  
  Items:
    Type: string
    
    Example:
    
    ```json
    "fr"
    ```