Livepush Developers

Videos

Get video by ID

GET https://octopus.livepush.io/streams/{stream_id}/videos/{video_id}

Base URL https://octopus.livepush.io — Core Streams & Media APIs

Returns one video. Snapshot URLs are rewritten from raw bucket hosts to the Livepush CDN before being returned.

Requires a token with the streams.videos.write scope.

Authorization

Send a valid access token in the Authorization header.

  • bearerAuth — Bearer token (JWT)
headers.txt
Authorization: Bearer YOUR_API_TOKEN

Try it

GET https://octopus.livepush.io/streams/{stream_id}/videos/{video_id} — This call only reads data.

Parameters

Path parameters

  • stream_id string required
    Stream identifier. These handlers resolve the video by video_id scoped to the authenticated account and never read this value, which is why the dashboard passes the literal me. Any value routes correctly.
    example: st_xxxxxxxxxxxxx
  • video_id string required
    Unique identifier of the video.
    example: vd_xxxxxxxxxxxx

Code samples

request.sh
curl -X GET 'https://octopus.livepush.io/streams/me/videos/vd_xxxxxxxxxxxx' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://octopus.livepush.io/streams/me/videos/vd_xxxxxxxxxxxx', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
  },
});

if (!response.ok) {
  throw new Error(`Livepush API error ${response.status}`);
}

const data = await response.json();
import requests

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN',
}

response = requests.get('https://octopus.livepush.io/streams/me/videos/vd_xxxxxxxxxxxx', headers=headers, timeout=30)
response.raise_for_status()
data = response.json()

Responses

Get video by ID.

application/json

  • id string
  • label string
  • uploadName string
  • size number
  • mediaInfo VideoItemMediaInfo
    • hasAudioTrack boolean
    • duration number
    • width integer
    • height integer
    • fps number
    • codecs VideoItemMediaInfoCodec[]
      2 nested fields
      • type VideoCodecType
        videoaudio
      • codec string
    • tracks object[]
  • resourceGroup string
    ID of the video folder this video sits in, or absent when it is at the top level of the library. Named resourceGroup for compatibility — see VideoFolder.
  • zone string
  • description string
  • createdAt string<date-time>
  • isDisabled boolean
  • tags string[]
  • mediaInfoEncoded VideoItemMediaInfo
    • hasAudioTrack boolean
    • duration number
    • width integer
    • height integer
    • fps number
    • codecs VideoItemMediaInfoCodec[]
      2 nested fields
      • type VideoCodecType
        videoaudio
      • codec string
    • tracks object[]
Example 200 response response.json
{
  "id": "vd_xxxxxxxxx",
  "label": "string",
  "uploadName": "string",
  "size": 0,
  "mediaInfo": {
    "hasAudioTrack": false,
    "duration": 0,
    "width": 0,
    "height": 0,
    "fps": 0,
    "codecs": [
      {
        "type": "video",
        "codec": "string"
      }
    ],
    "tracks": [
      {}
    ]
  },
  "resourceGroup": "grp_xxxxxxxxxxxx",
  "zone": "string",
  "description": "string",
  "createdAt": "2026-01-31T09:00:00.000Z",
  "isDisabled": false,
  "tags": [
    "string"
  ],
  "mediaInfoEncoded": {
    "hasAudioTrack": false,
    "duration": 0,
    "width": 0,
    "height": 0,
    "fps": 0,
    "codecs": [
      {
        "type": "video",
        "codec": "string"
      }
    ],
    "tracks": [
      {}
    ]
  }
}

No response body.

Not found for this account.