interface Details {
    accessControlEntities: Entity[];
    approval: {
        approvalProcessId: null | string;
        approvalProcessName: null | string;
        approvalProcessReferenced: boolean;
        status: ApprovalStatus;
        stepId: null | string;
        steps: {
            approverId: string;
            approverName: string;
            status: string;
            stepId: string;
            stepName: string;
            whenRequested: string;
            whenResponded: string;
        }[];
        whenSubmittedForApproval: null
        | string;
    };
    approvalStatus: ApprovalStatus;
    audioTracks: {
        isDefault: boolean;
        languageId: string;
        languageName: string;
        status: Transcription.Status;
        track: number;
    }[];
    avgRating: number;
    categories: string[];
    categoryPaths: { categoryId: string; fullPath: string; name: string }[];
    chapters: {
        chapters: {
            extension: string;
            imageId: string;
            time: string;
            title: string;
        }[];
    };
    closeCaptionsEnabled: boolean;
    commentsCount: number;
    customFields: Admin.CustomField[];
    description: string;
    duration: string;
    enableAutoShowChapterImages: boolean;
    enableComments: boolean;
    enableDownloads: boolean;
    enableExternalApplicationAccess: boolean;
    enableExternalViewersAccess: boolean;
    enableRatings: boolean;
    expiration: | null
    | {
        deleteOnExpiration: null
        | boolean;
        expirationDate: null | string;
        expiryRuleType: ExpiryRule;
        numberOfDays: null | number;
        ruleId: null | string;
    };
    expirationAction: null
    | ExpirationAction;
    expirationDate: null | string;
    hasAudioOnly: boolean;
    htmlDescription: string;
    id: string;
    instances: {
        id: string;
        isOriginalInstance: boolean;
        name: null | string;
        preset: { container?: string };
        size: number;
        status: LiteralString<
            | "Initialized"
            | "Transcoding"
            | "Transcoded"
            | "TranscodingFailed"
            | "Storing"
            | "Stored"
            | "StoringFailed",
        >;
        videoKey: string;
    }[];
    is360: boolean;
    isActive: boolean;
    isProcessing: boolean;
    lastViewed: string;
    linkedUrl: null
    | LinkedUrl;
    overallProgress: number;
    owner: {
        firstName: string;
        lastName: string;
        userId: string;
        userName: string;
    };
    password: null
    | string;
    publishDate:
        | null
        | `${number}${number}${number}${number}-${number}${number}-${number}${number}`;
    ratingsCount: number;
    sensitiveContent: boolean;
    source: LiteralString<
        | "Upload"
        | "Link"
        | "ScheduledEvent"
        | "Webex"
        | "Upload360"
        | "ScheduledRecording",
    >;
    sourceType: SourceType;
    status: Video.StatusEnum;
    tags: string[];
    thumbnailKey: string;
    thumbnailUrl: string;
    title: string;
    totalViews: number;
    transcodeFailed: boolean;
    type: VideoType;
    unlisted: boolean;
    uploadedBy: string;
    userTags: { displayName: string; userId: string }[];
    videoAccessControl: Video.AccessControl;
    videoConference?:
        | null
        | {
            bitrateKbps: number;
            microsoftTeamsMeetingUrl: string;
            sipAddress: string;
            sipPin: string;
            whenRecordingStarted: string;
        };
    viewerIdEnabled: boolean;
    whenModified: string;
    whenUploaded: string;
}

Properties

accessControlEntities: Entity[]

This provides explicit rights to a User/Group/Collection with/without CanEdit access to a This is an array with properties; Name (entity name), Type (User/Group/Collection), CanEdit (true/false). If any value is invalid, it will be rejected while valid values are still associated with the

approval: {
    approvalProcessId: null | string;
    approvalProcessName: null | string;
    approvalProcessReferenced: boolean;
    status: ApprovalStatus;
    stepId: null | string;
    steps: {
        approverId: string;
        approverName: string;
        status: string;
        stepId: string;
        stepName: string;
        whenRequested: string;
        whenResponded: string;
    }[];
    whenSubmittedForApproval: null
    | string;
}
approvalStatus: ApprovalStatus
audioTracks: {
    isDefault: boolean;
    languageId: string;
    languageName: string;
    status: Transcription.Status;
    track: number;
}[]
avgRating: number
categories: string[]

An array of category IDs

categoryPaths: { categoryId: string; fullPath: string; name: string }[]

An array of categories with full details (id + full path)

chapters: {
    chapters: {
        extension: string;
        imageId: string;
        time: string;
        title: string;
    }[];
}
closeCaptionsEnabled: boolean
commentsCount: number
customFields: Admin.CustomField[]

An array of customFields that is attached to the

description: string

Description in plain text

duration: string
enableAutoShowChapterImages: boolean
enableComments: boolean
enableDownloads: boolean
enableExternalApplicationAccess: boolean
enableExternalViewersAccess: boolean
enableRatings: boolean
expiration:
    | null
    | {
        deleteOnExpiration: null
        | boolean;
        expirationDate: null | string;
        expiryRuleType: ExpiryRule;
        numberOfDays: null | number;
        ruleId: null | string;
    }
expirationAction: null | ExpirationAction

This sets action when video expires. This is an enum and can have the following values: Delete/Inactivate.

expirationDate: null | string
hasAudioOnly: boolean
htmlDescription: string

Description with HTML tags included

id: string

Video ID

instances: {
    id: string;
    isOriginalInstance: boolean;
    name: null | string;
    preset: { container?: string };
    size: number;
    status: LiteralString<
        | "Initialized"
        | "Transcoding"
        | "Transcoded"
        | "TranscodingFailed"
        | "Storing"
        | "Stored"
        | "StoringFailed",
    >;
    videoKey: string;
}[]
is360: boolean
isActive: boolean

if video is active or not

isProcessing: boolean
lastViewed: string
linkedUrl: null | LinkedUrl
overallProgress: number
owner: { firstName: string; lastName: string; userId: string; userName: string }
password: null | string

A Password for Public Video Access Control. Use this field when the videoAccessControl is set to Public. If not this field is ignored.

publishDate:
    | null
    | `${number}${number}${number}${number}-${number}${number}-${number}${number}`

date video will be published NOTE: Must be in YYYY-MM-DD format

ratingsCount: number
sensitiveContent: boolean
source: LiteralString<
    | "Upload"
    | "Link"
    | "ScheduledEvent"
    | "Webex"
    | "Upload360"
    | "ScheduledRecording",
>
sourceType: SourceType

source of original video

This is the processing status of a

tags: string[]

An array of strings that are tagged to the

thumbnailKey: string
thumbnailUrl: string
title: string

Title of the video being uploaded. If title is not specified, API will use uploaded filename as the title.

totalViews: number
transcodeFailed: boolean
type: VideoType

type of video - live or VOD

unlisted: boolean
uploadedBy: string

the full name of user who uploaded video

userTags: { displayName: string; userId: string }[]
videoAccessControl: Video.AccessControl

This sets access control for the This is an enum and can have the following values: Public/AllUsers/Private/Channels.

videoConference?:
    | null
    | {
        bitrateKbps: number;
        microsoftTeamsMeetingUrl: string;
        sipAddress: string;
        sipPin: string;
        whenRecordingStarted: string;
    }
viewerIdEnabled: boolean
whenModified: string

When video was last modified (ISO Date)

whenUploaded: string

when video was uploaded (ISO Date)