Video Emotion API

Get Video Details

Changed on

Retrieve all details for a specific video directly from the database.

Returns a complete standardized response with all possible fields. Fields that don't exist in the database are returned as null.

Access Control:

  • Authenticated users can access their own videos
  • Admins can access all videos
  • Sample videos and shared videos are publicly accessible
get/v2/videos/{video_id}

Request

  • Base URL
    https://api.imentiv.ai (the document declares no server; this is the origin it was published from)
  • Auth
    • API key in header X-API-Key
    • or HTTP bearer
    • or OAuth 2
      Authorization code: https://api.imentiv.ai/oauth/authorize
      Token URL: https://api.imentiv.ai/oauth/token scopes: media.read

Path parameters

video_idstring required

The unique ID of the video.

Response

Successful Response

languagesstring[]

Detected languages in stored dominant-first order; empty when unavailable. Short stretches may have line language marks without appearing in this list. This is an output summary, independent of the expected_languages input hint.

annotated_videostring nullable

Annotated video URL

annotated_video_mp4string nullable

Annotated video MP4 URL

annotated_video_percentagestring nullable

Annotated video progress

annotated_video_statusstring nullable

Annotated video status

audio_csv_urlstring nullable

Audio-specific CSV analysis URL

audio_idstring nullable

Associated audio analysis ID

audio_transcriptionstring nullable

Audio transcription text

bulk_upload_idstring nullable

Bulk upload batch ID

check_audioboolean nullable

Whether audio should be checked

completed_atstring nullable

Completion timestamp

compressed_frames_data_urlstring nullable

Deprecated: always null. The frames archive is an internal format; read frames through the frames routes.

compressed_frames_last_updated_atstring nullable

Compressed frames last update timestamp

compressed_frames_schema_versionstring nullable

Schema version for compressed frames

created_atstring nullable

Creation timestamp

updated_atstring nullable

ISO-8601 UTC timestamp of the last change to this video. Compare it for inequality with the value you hold to tell whether your copy is stale; it carries no ordering guarantee. It covers this video's own fields only, not data derived from other records such as frames or analytics.

csv_analysis_urlstring nullable

CSV analysis file URL

csv_statusstring nullable

CSV generation status

descriptionstring nullable

Video description

dropbox_urlstring nullable

Dropbox URL if applicable

durationnumber nullable

Video duration in seconds

emotions_liststring[] nullable

List of emotion labels

end_millisnumber nullable

End time in milliseconds

expected_languagesstring[]

The languages you said the video's audio track may contain, as sent on upload or reprocess (Whisper codes, main language included). This is the INPUT you gave, not the languages detected in the speech. [] when none was given.

face_deletion_statusstring nullable

Face deletion status

face_duplicate_countinteger nullable

Count of duplicate faces detected

face_emotionsobject nullable

Face emotions per face ID

facesobject[] nullable

Detected faces. Each entry includes face_id, name, and image. Online-meeting analyses may also include OCR name-assignment provenance (confidence, votes, samples, alternatives, is_local, source, inferred_from_prefix). In-vehicle analyses may name the selected driver's face "Driver", with source 'driver_selection' and reason ('clear_lead' or 'sole_candidate'); that is a role label, not a person's name. Untyped passthrough — extra keys are not filtered.

fpsnumber nullable

Frames per second

frame_upload_progressinteger nullable

Frame upload progress percentage

frame_upload_statusstring nullable

Frame upload status

frames_with_faces_countinteger nullable

Frames with detected faces

heightnumber nullable

Video height in pixels

highlight_segmentsobject[] nullable

Highlight video segments

highlight_statusstring nullable

Highlight video status

highlight_urlstring nullable

Highlight video URL

idstring nullable

Unique video identifier

is_userboolean nullable

Whether uploaded by user

media_sourcestring nullable

Source type: youtube, dropbox, public_url, file_upload

media_source_urlstring nullable

The URL the media was submitted with. For an upload this is a reference to the stored media, not guaranteed to be readable; use the media's playback-url endpoint to play it back.

messagestring nullable

Status message

model_idstring nullable

Model used for processing

multilingualboolean

Whether mixed-language transcription was requested for this video's audio track. This is the INPUT you gave, not a detection result. false when it was not requested. When on, the lines that are not in the audio's main language are also translated into it once the audio completes (see auto_translation), billed as a translation on top of transcription.

orientationstring nullable

Video orientation (PORTRAIT/LANDSCAPE)

overall_emotionsobject nullable

Overall emotion scores for video

pdf_generation_timestampstring nullable

PDF generation timestamp

pdf_statusstring nullable

PDF report status

pdf_urlstring nullable

PDF report URL

predefined_qaobject[] nullable

Predefined Q&A data

personality_dataobject[] nullable

Personality analysis data

personality_processingstring nullable

Personality processing progress

personality_statusstring nullable

Personality analysis status

processed_secondsnumber nullable

Processing time in seconds

processing_fpsinteger nullable

Reduced processing frame-rate tier (15/10/5/1, or 30 when picked automatically), or null for full/native fps

processing_fps_autoboolean nullable

True when processing_fps was picked so the video fits the processing time limit, because the upload set none: full frame rate when it fits, else 30, else 15. False when the caller set it. Null on documents that predate the field.

processing_fps_estimate_sinteger nullable

Estimated processing time in seconds at processing_fps, or null when unknown

video_typestring nullable

Processing mode: 'generic', 'online_meeting', or 'auto' as submitted. Once the worker has run, an 'auto' submission is replaced by the mode it resolved to, so this reports what actually ran. Null on documents that predate the field. Open string (not the submit enum) so a stored value this backend version does not know still serializes.

meeting_platformstring nullable

Optional meeting-client hint (zoom, google_meet, teams, webex). Null when unknown or unset. Open string for the same reason as video_type.

driver_positionstring nullable

Seat hint for video_type='in_vehicle': which half of the VIDEO FRAME the driver appears in ('left'/'right') — not the vehicle's drive side. Null when unset or on a non-in_vehicle video. Open string for the same reason as video_type.

camera_mountstring nullable

Camera-mount hint supplied at upload for video_type='in_vehicle' ('steering_column', 'dashboard_center', 'windshield' or 'unknown'). Null when not supplied. Open string for the same reason as video_type.

project_idstring nullable

Associated project ID

project_typestring nullable

Type of the associated project (recruitment/product_testing/...), null for library videos

psychologist_reviewstring nullable

Psychologist review content

psychologist_review_statusstring nullable

Psychologist review status

share_statusboolean nullable

Whether video is shared

diarizationboolean nullable

Whether diarization was enabled at upload time (defaults to true if absent from the stored document)

has_transcriptboolean nullable

Whether a transcript exists (or is being produced): our ASR ran, OR one was supplied and applied. Drive the transcript UI off THIS, not transcription — an imported call has transcription=false and a real transcript, so that flag hides one that is right there.

start_millisnumber nullable

Start time in milliseconds

text_emotionboolean nullable

Whether text emotion analysis was enabled at upload time (defaults to true if absent from the stored document)

transcriptionboolean nullable

Whether transcription/ASR was enabled at upload time (defaults to true if absent from the stored document)

statusstring nullable

Processing status

tags_mapobject nullable

Legacy tags_map (sample flag only). No new keys here — use the tags field instead.

text_idstring nullable

Associated text analysis ID

thumbnailstring nullable

Thumbnail image URL

titlestring nullable

Video title

total_frames_countinteger nullable

Total frames count

ui_requestboolean nullable

Whether request came from UI

urlstring nullable

Stored video URL. A reference to the stored media, not guaranteed to be readable: use GET /v2/videos/{video_id}/playback-url to play it back.

use_casestring nullable

What the recording is, as declared on upload ('interview'), or null when none was declared. Open string for the same reason as video_type.

user_idstring nullable

The user who created the item (the same value as created_by).

created_bystring nullable

The user who created the item. Never changes, including when the item is moved to a workspace.

video_csv_urlstring nullable

Video-specific CSV analysis URL

widthnumber nullable

Video width in pixels

youtube_urlstring nullable

YouTube URL if applicable

Example response

{
  "languages": [
    "en",
    "ja"
  ],
  "auto_translation": {
    "language": "en"
  },
  "updated_at": "2025-12-01T14:30:00.000000+00:00",
  "expected_languages": [
    "en",
    "ja"
  ],
  "multilingual": true
}

Changes

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status