Cvent Video API

Videos can be added to Cvent events with renditions at various resolutions, audio files, reactions tracks, and text tracks. Attendee viewership is tracked to get insight into durations, devices used and venue where the video is watched. Use these APIs to view and manage videos, related text tracks, and audio files. Use these APIs also to get insight into video viewership.

Operations 7

GET /videos List Videos #
GET /videos/views List Video Views #
GET /videos/{videoId}/audio-tracks List Audio Tracks #
GET /videos/{videoId}/renditions List Video Renditions #
POST /videos/{videoId}/text-tracks Create Text Track #
GET /videos/{videoId}/text-tracks List Text Tracks #
PUT /videos/{videoId}/text-tracks/{textTrackId} Update Text Track #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cvent-video-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cvent-video-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Cvent REST APIs — Video
  version: ea
  description: Videos can be added to Cvent events with renditions at various resolutions, audio files, reactions tracks,
    and text tracks. Attendee viewership is tracked to get insight into durations, devices used and venue where the video
    is watched. Use these APIs to view and manage videos, related text tracks, and audio files. Use these APIs also to get
    insight into video viewership.
  contact:
    name: Cvent Development Platform
    url: https://developers.cvent.com/
externalDocs:
  description: Cvent REST API documentation
  url: https://developers.cvent.com/documentation
servers:
- url: https://api-platform.cvent.com/ea
- url: https://api-platform-eur.cvent.com/ea
tags:
- name: Video
  description: Videos can be added to Cvent events with renditions at various resolutions, audio files, reactions tracks,
    and text tracks. Attendee viewership is tracked to get insight into durations, devices used and venue where the video
    is watched. Use these APIs to view and manage videos, related text tracks, and audio files. Use these APIs also to get
    insight into video viewership.
paths:
  /videos:
    get:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:read
      - OAuth2.clientCredentials:
        - event/videos:read
      summary: List Videos
      description: Gets a paginated list of videos associated with your account or event.
      operationId: listVideos
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - name: filter
        in: query
        required: false
        description: 'Use filter query parameters to limit results

          to data that matches your criteria. See

          [Filters](/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field        | Operators  | Notes                            |

          |--------------|------------|----------------------------------|

          | id           | `eq`, `ne` |                                  |

          | events       | `eq`, `ne` |                                  |

          | sessions     | `eq`, `ne` |                                  |

          | exhibitors   | `eq`, `ne` |                                  |

          | speakers     | `eq`, `ne` |                                  |

          | source.id    | `eq`, `ne` |                                  |

          | status       | `eq`, `ne` |                                  |

          | tags         | `eq`, `ne` |                                  |

          | recording.id | `eq`, `ne` |                                  |

          | event.id     | `eq`, `ne` | deprecated, use `events` instead |


          The following logical operators are supported for combining filters:

          * and

          * or

          '
        schema:
          type: string
          example: events eq '04ca6ae2-0dc3-487b-953e-86d6abbdf7d3' and source.id ne 'sampleWebcastSystemId'
      - name: deleted
        in: query
        required: false
        description: True means only videos marked as deleted will be queried. False means only non-deleted videos will be
          queried.
        schema:
          type: boolean
          default: false
          example: true
      responses:
        '200':
          description: Successfully retrieved a paginated list of videos.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/videos-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
  /videos/views:
    get:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/video-views:read
      - OAuth2.clientCredentials:
        - event/video-views:read
      summary: List Video Views
      description: Gets a paginated list of video views
      operationId: getVideoViews
      parameters:
      - $ref: '#/components/parameters/after'
      - $ref: '#/components/parameters/before'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/token'
      - name: filter
        in: query
        required: false
        description: 'Use filter query parameters to limit results

          to data that matches your criteria. See

          [Filters](/docs/rest-api/reference/filters) for details.


          Supported fields and operators are listed below:


          | Field                  | Operators | Notes      |

          |------------------------|-----------|------------|

          | contact.id             | `eq`      |            |

          | solution               | `eq`      |            |

          | device.type            | `eq`      | deprecated |

          | device.operatingSystem | `eq`      | deprecated |

          | video.id               | `eq`      |            |

          | type                   | `eq`      |            |


          The filter query supports maximum three fields in a filter expression.


          The following logical operators are supported for combining filters:

          * and

          '
        schema:
          type: string
          example: contact.id eq '123e4567-e89b-12d3-a456-426614174000' and solution eq 'EVENTS_PLUS'
      responses:
        '200':
          description: Successfully retrieved paginated list of videos watched.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video-views-paginated-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
      externalDocs:
        description: More about OAuth2 authorization code support for administrators
        url: '#oauth2-auth-code-planner-admin'
  /videos/{videoId}/audio-tracks:
    parameters:
    - $ref: '#/components/parameters/videoId1'
    get:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:read
      - OAuth2.clientCredentials:
        - event/videos:read
      summary: List Audio Tracks
      description: Gets a list of audio tracks for a specific video ID.
      operationId: listAudioTracks
      responses:
        '200':
          description: Successfully retrieved a list of audio tracks.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/audio-tracks-response'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
  /videos/{videoId}/renditions:
    parameters:
    - $ref: '#/components/parameters/videoId1'
    get:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:read
      - OAuth2.clientCredentials:
        - event/videos:read
      summary: List Video Renditions
      description: Gets a list of video renditions for a specific video ID.
      operationId: listVideoRenditions
      responses:
        '200':
          description: Successfully retrieved a list of renditions.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video-renditions-response'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
  /videos/{videoId}/text-tracks:
    parameters:
    - $ref: '#/components/parameters/videoId1'
    post:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:write
      - OAuth2.clientCredentials:
        - event/videos:write
      operationId: createTextTrack
      summary: Create Text Track
      description: Creates a new text track (VTT) object for a specific video. This endpoint does not directly handle the
        upload of VTT files but instead returns a location URL that you use to perform the upload.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/video-text-track'
        required: true
      responses:
        '201':
          description: Text track was successfully created for the video.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-video-text-track'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
    get:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:read
      - OAuth2.clientCredentials:
        - event/videos:read
      summary: List Text Tracks
      description: Gets a list of video text tracks for a specific video ID.
      operationId: listVideoTextTracks
      responses:
        '200':
          description: Successfully retrieved a list of text tracks.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/video-text-tracks-response'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
  /videos/{videoId}/text-tracks/{textTrackId}:
    parameters:
    - $ref: '#/components/parameters/videoId1'
    - $ref: '#/components/parameters/textTrackId'
    put:
      tags:
      - Video
      security:
      - OAuth2.authorizationCode:
        - event/videos:write
      - OAuth2.clientCredentials:
        - event/videos:write
      summary: Update Text Track
      description: 'Updates a specific video text track by ID. This is done by setting the status to Updating within the body
        of this call,

        which will prompt the service to return a signed upload link in the returned entity.

        '
      operationId: updateTextTrack
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/existing-video-text-track'
        required: true
      responses:
        '200':
          description: Successfully updated a video text track.
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/existing-video-text-track'
        '400':
          $ref: '#/components/responses/BadRequest1'
        '401':
          $ref: '#/components/responses/Unauthorized1'
        '403':
          $ref: '#/components/responses/Forbidden1'
        '404':
          $ref: '#/components/responses/NotFound1'
        '429':
          $ref: '#/components/responses/TooManyRequests1'
      deprecated: false
components:
  schemas:
    Link:
      title: Link
      required:
      - href
      type: object
      description: Represents a link to a related resource.
      properties:
        href:
          type: string
          description: A url provided that can be followed for linking
          example: ?token=90c5f062-76ad-4ea4-aa53-00eb698d9262
    AssetLocation:
      title: Asset Location
      description: A URL associated with the asset.
      required:
      - href
      type: object
      properties:
        href:
          type: string
          description: A pre-signed URL with an expiration of 2 hours to the asset's location.
          example: https://ap-southeast-2.example.com/sign2-bucket-hchq3nwuo8ns/sign-demo.json?X-Exa-Date=20170125T044127Z&X-Exa-Expires=60&X-Exa-Signature=24db05
          readOnly: true
    audio-tracks-response:
      title: AudioTracksResponse
      description: The response from a request to get the list of audio tracks.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/existing-audio-track'
          description: Collection of audio tracks.
    VideoWarnings:
      title: VideoWarnings
      description: This is used to denote the warnings for a video entity.
      type: array
      readOnly: true
      minItems: 0
      maxItems: 100
      items:
        $ref: '#/components/schemas/VideoWarning'
    VideoErrors:
      title: VideoErrors
      description: This is used to denote the errors for a video entity.
      type: array
      readOnly: true
      minItems: 0
      maxItems: 100
      items:
        $ref: '#/components/schemas/VideoError'
    VideoAssetID:
      title: Video Asset ID
      required:
      - id
      type: object
      properties:
        id:
          description: The identifier of a video.
          type: string
          format: uuid
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
      description: Video that this asset was created with.
    Contact3:
      title: Contact
      type: object
      description: The contact details who watched a video
      properties:
        id:
          type: string
          format: uuid
          description: The unique ID of the contact who watched a video.
          example: 123e4567-e89b-12d3-a456-426614174000
    VideoWarningCode:
      title: VideoWarningCode
      description: This is used to denote the warning codes for a video entity.
      enum:
      - 700
      type: integer
      example: 700
    VideoClip:
      title: VideoClip
      description: Video clip details.
      type: object
      properties:
        start:
          type: string
          description: The timecode to start the clip in HH:MM:SS:FF format
          example: 00:01:01:00
          pattern: ^([01][0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9][:;][0-9]{2}$
        end:
          type: string
          description: The timecode to end the clip in HH:MM:SS:FF format.
          example: 00:05:00:00
          pattern: ^([01][0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9][:;][0-9]{2}$
    video-thumbnail:
      title: VideoThumbnail
      description: Video thumbnail
      type: object
      properties:
        url:
          $ref: '#/components/schemas/Link'
        size:
          type: integer
          description: File size in bytes for the thumbnail
          example: 4098675830
        height:
          type: integer
          description: frame height in pixels
          example: 400
        width:
          type: integer
          description: frame width in pixels
          example: 300
        type:
          $ref: '#/components/schemas/ThumbnailType'
        status:
          $ref: '#/components/schemas/ThumbnailStatus'
    ViewType1:
      title: ViewType
      description: The view type of the video. Videos can be viewed live or as a recording.
      type: string
      enum:
      - LIVE
      - RECORDING
    existing-video-response:
      title: ExistingVideoResponse
      description: Response schema for GET/List endpoints, extending ExistingVideo and adding errors/warnings.
      type: object
      allOf:
      - $ref: '#/components/schemas/existing-video'
      properties:
        errors:
          $ref: '#/components/schemas/VideoErrors'
        warnings:
          $ref: '#/components/schemas/VideoWarnings'
    VideoRenditionType:
      title: VideoRenditionType
      enum:
      - Hls
      - HlsMaster
      - Mp4
      - Poster
      - Mp4Preview
      - Mp3
      - Audio
      type: string
      description: Denotes the type of rendition.
      example: Hls
    VideoErrorCode:
      title: VideoErrorCode
      description: This is used to denote the error codes for a video entity.
      enum:
      - 600
      - 601
      - 602
      - 603
      - 604
      - 605
      - 606
      - 607
      - 608
      type: integer
      example: 601
    HlsInputWithClips:
      title: HlsInputWithClips
      description: HTTP Live Streaming input and clips.
      type: object
      properties:
        hlsInput:
          type: string
          description: Location for HTTP Live Streaming (HLS) recording.
          example: s3://bucket/path/to/recording/video.m3u8
        clips:
          description: Clips for the HLS recording.
          type: array
          items:
            $ref: '#/components/schemas/VideoClip'
    ErrorResponseBase1:
      title: ErrorResponseBase
      type: object
      description: Represents an error response with no additional details.
      required:
      - code
      - message
      properties:
        code:
          type: integer
          description: The HTTP status code representing the error.
          example: 400
        message:
          type: string
          description: A brief description of the error.
          example: Bad Request
        target:
          type: string
          description: The target resource of the error.
          example: example target
    existing-video-text-track:
      title: ExistingVideoTextTrack
      description: An existing video text track.
      type: object
      required:
      - id
      - status
      allOf:
      - $ref: '#/components/schemas/video-text-track'
      properties:
        id:
          title: Video text track ID
          type: string
          format: uuid
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
          description: The identifier of a video text track.
          readOnly: true
        url:
          $ref: '#/components/schemas/AssetLocation'
        errorMessage:
          description: A message indicating the error processing the text track, if any.
          type: string
          example: Input file was empty
    VideoRendition:
      title: VideoRendition
      description: Video rendition
      type: object
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        video:
          $ref: '#/components/schemas/VideoAssetID'
        type:
          $ref: '#/components/schemas/VideoRenditionType'
        location:
          title: Link
          required:
          - href
          type: object
          properties:
            href:
              type: string
              description: A pre-signed URL with an expiration of 2 hours that provides the location.
              example: https://example.com/M8/7f378243-2c62-49fa-82e9-90e5498d30c3?Policy=eyJTdGF0ZW1lbnUysx5cE4-KWfUQ__&Key-Pair-Id=K6XDZ8UJY4Q0X
          description: Location where the rendition is stored.
        width:
          type: integer
          description: The video's frame width in pixels.
          example: 300
        height:
          type: integer
          description: The video's frame height in pixels.
          example: 400
    Solution:
      title: Solution
      description: The solution where the video exists. Attendee Hub and Events+ represent two different solutions where the
        video can be found.
      type: string
      enum:
      - ATTENDEE_HUB
      - EVENTS_PLUS
      example: EVENTS_PLUS
    VideoWarning:
      title: VideoWarning
      description: This is used to denote the warnings for a video entity.
      properties:
        code:
          $ref: '#/components/schemas/VideoWarningCode'
        message:
          type: string
          description: Warning message for the video. Message is a developer convenience never to be used in any context that
            needs localisation, subject to change at any time.
          example: 'Video with ID: 5779387f-3f50-4685-8641-b25a2909845f has a bitrate of 586 kbps, which is lower than the
            minimum allowed bitrate of 3500 kbps.'
      required:
      - code
      - message
    ThumbnailType:
      title: ThumbnailType
      enum:
      - bmp
      - gif
      - jpe
      - jpeg
      - jpg
      - png
      - svg
      type: string
      description: This is used to denote the file type of a thumbnail
      example: png
    UUIDProperty:
      title: UUID Property
      description: A string that has to be a format matching the industry standard uuid
      type: string
      format: uuid
      example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
    existing-video:
      title: ExistingVideo
      description: Existing event video.
      type: object
      required:
      - id
      allOf:
      - $ref: '#/components/schemas/video'
      properties:
        id:
          title: Video ID
          description: The identifier of a video.
          type: string
          format: uuid
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        url:
          $ref: '#/components/schemas/AssetLocation'
        size:
          type: integer
          format: int64
          maximum: 10737418240
          description: File size in bytes for the video asset.
          example: 32768
          readOnly: true
        sessions:
          description: Sessions associated with the video asset.
          type: array
          items:
            $ref: '#/components/schemas/UUIDProperty'
          maxItems: 50
          readOnly: true
        exhibitors:
          description: Exhibitors associated with the video asset.
          type: array
          items:
            $ref: '#/components/schemas/UUIDProperty'
          maxItems: 50
          readOnly: true
        speakers:
          description: Speakers associated with the video asset.
          type: array
          items:
            $ref: '#/components/schemas/UUIDProperty'
          maxItems: 50
          readOnly: true
        uploadStarted:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time when the upload started.
          example: '2024-01-05T15:30:00Z'
          readOnly: true
        uploadCompleted:
          type: string
          format: date-time
          description: The ISO 8601 zoned date time when the uploaded ended.
          example: '2024-01-05T15:35:00Z'
          readOnly: true
        parent:
          type: string
          format: uuid
          description: The ID of the video this was created from.
          readOnly: true
    AudioTrackStatus:
      title: AudioTrackStatus
      enum:
      - Started
      - Uploaded
      - Scanning
      - Scanned
      - Syncing
      - Rejected
      - Error
      - Available
      type: string
      description: Denotes the status of an audio track. Started indicates the request to upload in the API was submitted,
        and the URL you'll upload an audio track to was returned. Uploaded indicates that the upload was completed. Scanning
        indicates a virus scan is happening in a quarantine location; Scanned indicates a successful virus scan. Syncing indicates
        a complete virus scan, and now transcoding has begun. Rejected indicates a failed virus scan. Error indicates there
        was a problem processing the audio track. Available indicates the audio track is available for use.
      example: Started
    ThumbnailStatus:
      title: ThumbnailStatus
      enum:
      - Started
      - Uploaded
      - Processing
      - Available
      - Rejected
      type: string
      description: Denotes the status of a thumbnail. Started indicates the request to upload in the API was submitted, and
        the URL you'll upload a thumbnail to was returned. Uploaded indicates that the upload was completed. Processing indicates
        that a virus scan is in progress. Available indicates the thumbnail passed the scan and is ready for use. Rejected
        indicates there was a problem processing the thumbnail.
      example: Started
    existing-audio-track:
      title: ExistingAudioTrack
      description: Existing audio track.
      type: object
      required:
      - id
      allOf:
      - $ref: '#/components/schemas/audio-track'
      properties:
        id:
          title: Audio Track ID
          type: string
          format: uuid
          example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
          description: The identifier of an audio track.
          readOnly: true
        url:
          $ref: '#/components/schemas/AssetLocation'
    VideoTextTrackStatus:
      title: VideoTextTrackStatus
      enum:
      - Started
      - Uploaded
      - Processing
      - Available
      - Rejected
      - Updating
      - Translating
      - Transcribing
      - Error
      type: string
      description: Denotes the status of a video text track (VTT). Started indicates a request to upload in the API, and the
        URL to upload to was returned. Uploaded indicates that the upload was completed. Available indicates the VTT is available
        for use. Rejected indicates a failed virus scan. Error indicates there was a problem processing the VTT.
      example: Started
    VideoType:
      title: VideoType
      enum:
      - mpg2
      - mov
      - mp2
      - mp4
      - mpe
      - mpeg
      - mpg
      - mpv
      - qt
      - webm
      - hls
      type: string
      description: This is used to denote type of a video
      example: mp4
    Device1:
      title: Device
      type: object
      description: The device details used to watched a video. This field has been deprecated.
      deprecated: true
      properties:
        id:
          type: string
          description: The unique ID of the device the viewer used to watch the video.
          maxLength: 100
          example: CA1.b4c5061e36fa60ebc5aad0ccea95f900b34794ecad49e965eaa94f7c534dec83
        type:
          $ref: '#/components/schemas/DeviceType'
        operatingSystem:
          type: string
          description: The device's operating system.
          example: Mac OS
    video-renditions-response:
      title: VideoRenditionsResponse
      description: The response from a request to get the list of video renditions.
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/VideoRendition'
          maxItems: 11
          description: Collection of video renditions.
    EncodingProfile:
      title: EncodingProfile
      enum:
      - Planner
      - Attendee
      type: string
      description: Denotes the profile to use when encoding the video. Planner profile is for encoding high-quality event
        content, like session videos. Attendee profile is for encoding lower-quality content intended to go on attendee profiles
        and social feeds in the event.
      example: Planner
      default: Planner
    video:
      title: Video
      description: Event video.
      type: object
      allOf:
      - $ref: '#/components/schemas/VideoBase'
      properties:
        type:
          $ref: '#/components/schemas/VideoType'
        event:
          title: UUID
          required:
          - id
          type: object
          properties:
            id:
              title: UUID Property
              description: The ID of an event.
              type: string
              format: uuid
              example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
          description: Event video asset was created with. This field has been deprecated. Use events instead.
          deprecated: true
        hlsInputs:
          type: array
          description: List of locations for HLS recordings that will be combined to form a new video. This field has been
            deprecated. Use hlsInputsWithClips instead.
          items:
            type: string
          default: []
          deprecated: true
        hlsInputsWithClips:
          type: array
          items:
            $ref: '#/components/schemas/HlsInputWithClips'
          description: A list of input object locations & clip information for HTTP Live Streaming (HLS) recordings. Used
            to trim & stitch all inputs together to form a new video.
        recording:
          title: Recording details
          description: Recording details of video to be transcoded
          required:
          - id
          type: object
          properties:
            id:
              description: Entity ID of recording.
              type: string
              format: uuid
              example: 04ca6ae2-0dc3-487b-953e-86d6abbdf7d3
        encodingProfile:
          $ref: '#/components/schemas/EncodingProfile'
    DeviceType:
      title: DeviceType
      description: The device used to watch the video. Videos can be viewed on desktop, mobile or tablet.
      type: string
      enum:
      - DESKTOP
      - MOBILE
      - TABLET
    VideoBase:
      title: VideoBase
      description: Base model for a Video.
      type: object
      required:
      - title
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        title:
          type: string
          description: The title of the video
          maxLength: 500
          example: Cvent 2020 Keynote
        description:
          type: string
          description: Description of the video
          example: The video recording of the Cvent 2020 keynote by James Gordon
        filename:
          type: string
          description: Filename associated with the video at time of upload. Cannot be modified.
          maxLength: 300
          example: Cvent Keynote Version 5.mp4
        events:
          type: array
          description: A list of events associated with this video asset
          items:
            $ref: '#/components/schemas/UUIDProperty'
          maxItems: 50
          default: []
        duration:
          type: integer
          description: Video duration (milliseconds)
          example: 3600000
        thumbnail:
          $ref: '#/components/schemas/video-thumbnail'
        generatedThumbnail:
          $ref: '#/components/schemas/video-thumbnail'
        status:
          $ref: '#/components/schemas/VideoStatus'
        source:
          $ref: '#/components/schemas/VideoSource'
        tags:
          type: array
          description: A list of tags associated with this video.  This feature is a developer extensability framework to
            add data to videos.
          items:
            type: string
          default: []
          example:
          - edited
          - exhibitor
    audio-track:
      title: AudioTrack
      description: The audio track.
      type: object
      required:
      - video
      - type
      - language
      allOf:
      - $ref: '#/components/schemas/Audit'
      properties:
        video:
          $ref: '#/components/schemas/VideoAssetID'
        type:
          $ref: '#/components/schemas/AudioTrackType'
        language:
          type: string
          description: IETF language tag for the audio track.
          maxLength: 35
          example: en-US
        variant:
          $ref: '#/components/schemas/AudioTrackVariant'
        default:
          description: True indicates this is the default audio track.
          type: boolean
          default: false
        duration:
          type: integer
          description: Audio track duration (in milliseconds).
          example: 3600000
        status:
          $ref: '#/components/schemas/AudioTrackStatus'
    VideoError:
      title: VideoError
      description: This is used to denote the errors for a video entity.
      properties:
        code:
          $ref: '#/components/schemas/VideoErrorCode'
        message:
          type: string
          description: Error message for the video. Message is a developer convenience never to be used in any context that
            needs localisation, subject to change at any time.
      

# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cvent/refs/heads/main/openapi/cvent-video-api-openapi.yml