Livepush Developers

Videos

Register an uploaded video

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

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

Registers an object already written to storage as a video in the library. This is the final step of an upload: request a URL, PUT the bytes, then call this.

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

POST https://octopus.livepush.io/streams/{stream_id}/videos — This call changes live data on your account.

Parameters

Path parameters

  • stream_id string required
    Unique identifier of the stream.
    example: st_xxxxxxxxxxxxx

Request body

application/json required

  • id string required
    Video identifier allocated when the upload URL was created.
  • Key string required
    Object key in the storage bucket.
  • label string required
  • uploadName string required
    Original filename.
  • uploadUrl string required
  • zone string required
    Storage zone the object was written to.
  • size integer required
    Size in bytes.
  • mediaInfo VideoItemMediaInfo
    • hasAudioTrack boolean
    • duration number
    • width integer
    • height integer
    • fps number
    • codecs VideoItemMediaInfoCodec[]
      2 nested fields
      • type VideoCodecType
        videoaudio
      • codec string
    • tracks object[]
  • encoding_preset string
    Encoding preset to transcode with.
Example request body response.json
{
  "id": "vd_xxxxxxxxxxxx",
  "Key": "string",
  "label": "Sunday service — 12 Jan",
  "uploadName": "service-12-jan.mp4",
  "uploadUrl": "string",
  "zone": "eu-central",
  "size": 734003200,
  "mediaInfo": {
    "hasAudioTrack": false,
    "duration": 0,
    "width": 0,
    "height": 0,
    "fps": 0,
    "codecs": [
      {
        "type": "video",
        "codec": "string"
      }
    ],
    "tracks": [
      {}
    ]
  },
  "encoding_preset": "string"
}

Code samples

request.sh
curl -X POST 'https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "id": "vd_xxxxxxxxxxxx",
    "Key": "string",
    "label": "Sunday service — 12 Jan",
    "uploadName": "service-12-jan.mp4",
    "uploadUrl": "string",
    "zone": "eu-central",
    "size": 734003200,
    "mediaInfo": {
      "hasAudioTrack": false,
      "duration": 0,
      "width": 0,
      "height": 0,
      "fps": 0,
      "codecs": [
        {
          "type": "video",
          "codec": "string"
        }
      ],
      "tracks": [
        {}
      ]
    },
    "encoding_preset": "string"
  }'
const response = await fetch('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    "id": "vd_xxxxxxxxxxxx",
    "Key": "string",
    "label": "Sunday service — 12 Jan",
    "uploadName": "service-12-jan.mp4",
    "uploadUrl": "string",
    "zone": "eu-central",
    "size": 734003200,
    "mediaInfo": {
      "hasAudioTrack": false,
      "duration": 0,
      "width": 0,
      "height": 0,
      "fps": 0,
      "codecs": [
        {
          "type": "video",
          "codec": "string"
        }
      ],
      "tracks": [
        {}
      ]
    },
    "encoding_preset": "string"
  }),
});

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

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

headers = {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
}

payload = {
    "id": "vd_xxxxxxxxxxxx",
    "Key": "string",
    "label": "Sunday service — 12 Jan",
    "uploadName": "service-12-jan.mp4",
    "uploadUrl": "string",
    "zone": "eu-central",
    "size": 734003200,
    "mediaInfo": {
        "hasAudioTrack": False,
        "duration": 0,
        "width": 0,
        "height": 0,
        "fps": 0,
        "codecs": [
            {
                "type": "video",
                "codec": "string"
            }
        ],
        "tracks": [
            {}
        ]
    },
    "encoding_preset": "string"
}

response = requests.post('https://octopus.livepush.io/streams/st_xxxxxxxxxxxxx/videos', headers=headers, json=payload, timeout=30)
response.raise_for_status()
data = response.json()

Responses

Register an uploaded video.

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.