---
allOf:
  - $ref: core-event-schema/room_event.yaml
description: This message represents a single video clip.
properties:
  content:
    properties:
      body:
        description: "A description of the video e.g. 'Gangnam style', or some kind of content description for accessibility e.g. 'video attachment'."
        type: string
      info:
        description: Metadata about the video clip referred to in ``url``.
        properties:
          duration:
            description: The duration of the video in milliseconds.
            type: integer
          h:
            description: The height of the video in pixels.
            type: integer
          w:
            description: The width of the video in pixels.
            type: integer
          mimetype:
            description: The mimetype of the video e.g. ``video/mp4``.
            type: string
          size:
            description: The size of the video in bytes.
            type: integer
          thumbnail_url:
            description: |-
              The URL (typically `MXC URI`_) to an image thumbnail of
              the video clip. Only present if the thumbnail is unencrypted.
            type: string
          thumbnail_file:
            description: |-
              Information on the encrypted thumbnail file, as specified in
              |encrypted_files|_. Only present if the thumbnail is encrypted.
            title: EncryptedFile
            type: object
          thumbnail_info:
            allOf:
              - $ref: core-event-schema/msgtype_infos/thumbnail_info.yaml
            description: Metadata about the image referred to in ``thumbnail_url``.
        title: VideoInfo
        type: object
      msgtype:
        enum:
          - m.video
        type: string
      url:
        description: |-
          Required if the file is unencrypted. The URL (typically `MXC URI`_)
          to the video clip.
        type: string
      file:
        description: |-
          Required if the file is encrypted. Information on the encrypted
          file, as specified in |encrypted_files|_.
        title: EncryptedFile
        type: object
    required:
      - msgtype
      - body
    type: object
  type:
    enum:
      - m.room.message
    type: string
title: VideoMessage
type: object
