---
title: "Get Video Playback Url Route"
method: GET
path: "/v2/videos/{video_id}/playback-url"
tags: ["Video Emotion API"]
---

# Get Video Playback Url Route

`GET /v2/videos/{video_id}/playback-url`

## Request

- Base URL: `https://api.imentiv.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.imentiv.ai/v2/videos/{video_id}/playback-url`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://api.imentiv.ai/oauth/authorize`
    - Token URL: `https://api.imentiv.ai/oauth/token` scopes: `media.read`

Get a short-lived URL for playing back a video.

The returned `url` streams the stored video inline in a browser or media player.
It is short-lived: request a new one when `expires_at` passes or when a request
made with it is refused, and do not store or share it. The video's `url` and
`media_source_url` fields are references to the stored media, not guaranteed to
be readable; this endpoint is how to play it.

**Access Control:** the same as the video details. The owner and admins can
always get a playback URL. While a video is shared, or is a sample, anyone can,
so sharing a video lets anyone with its link play it back.

**Errors:**
- **401**: not authorized to access this video
- **404**: video not found
- **409** `media_not_stored`: the video has no stored copy to play (for example, a
  video submitted by URL whose copy is not ready yet)
- **503** `media_storage_unavailable`: temporarily unavailable; try again shortly

## Path parameters

- `video_id` string, required: The unique ID of the video.

## Response `200`

Successful Response

- PlaybackUrlResponse: A short-lived, read-only URL for playing back stored media.
  - `url` string, required: Signed URL that streams the media inline. Short-lived: request a new one when `expires_at` passes or a request with it is refused. Do not store or share it.
  - `expires_at` string, required: RFC 3339 UTC instant at which `url` stops working, e.g. `2026-09-28T12:30:00Z`.
  - `content_type` string, required: The stored media's content type, e.g. `video/mp4`.

## Other responses

- `401`: Missing, malformed or rejected credentials — no `X-API-Key` / `Authorization: Bearer <jwt>`, an expired token, or a caller that lacks the role the route requires. Note that this API answers *authorization* failures with 401 as well as 403 (see the 403 entry where a route declares both).
- `404`: No such resource, or it is not visible to this caller. Ownership failures are reported as 404 rather than 403 so the API does not confirm the existence of another account's records.
- `409`: `media_not_stored`: there is no stored copy to play yet.
- `422`: Validation Error
- `503`: `media_storage_unavailable`: try again shortly.

## Changes

- **2026-10-01** `72330e2229c7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/changes/v2/videos/:video_id/playback-url/get.md)

---

[API](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai.md) - [All operations](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/llms.txt) - [OpenAPI document](https://skmtc.dev/imentiv/apis/welcome-to-imentiv-ai/revisions/bc15cec7e794?raw)
