Livepush Developers

API reference

Videos

Video library and VOD assets

23 endpoints

Endpoints

MethodPathOperation
GET /streams/me/videos Get user videos Returns every video in the authenticated account's library, across all streams. Requires a token with the streams.videos
GET /streams/me/videos/storage_specs Get video storage specs Returns the storage zones available to the account and the switches that govern how an upload must be performed. Call th
GET /streams/{stream_id}/videos List videos on a stream Returns the videos attached to one stream, in playlist order. Requires a token with the streams.videos.read scope.
POST /streams/{stream_id}/videos Register an uploaded video Registers an object already written to storage as a video in the library. This is the final step of an upload: request a
PUT /streams/{stream_id}/videos/arrange Reorder stream videos Sets the playback order of the videos attached to a stream. Not called by the dashboard. Requires a token with the strea
GET /streams/{stream_id}/videos/{video_id} Get video by ID Returns one video. Snapshot URLs are rewritten from raw bucket hosts to the Livepush CDN before being returned. Requires
PUT /streams/{stream_id}/videos/{video_id} Update video metadata Updates the editable metadata on a video — label, description, tags and thumbnail. Requires a token with the streams.vid
DELETE /streams/{stream_id}/videos/{video_id} Delete a video Permanently deletes a video and its stored object. Requires a token with the streams.videos.write scope.
GET /streams/{stream_id}/videos/{video_id}/codecinfo Get video codec info Returns container and per-track codec details for a video: duration, resolution, frame rate and the audio and video code
POST /streams/{stream_id}/videos/{video_id}/retranscode Re-transcode a video Queues the video for transcoding again, optionally against a different encoding preset. Increments the video's retransco
GET /streams/{stream_id}/videos/{video_id}/download_url/signed Get a signed download URL Returns a time-limited URL for downloading the source file. Not called by the dashboard. Requires a token with the strea
GET /streams/{stream_id}/videos/{video_id}/thumb_url/signed Get a signed thumbnail URL Returns a time-limited URL for the video thumbnail. Responds 404 when the video has no snapshot yet. Not called by the d
PUT /streams/{stream_id}/videos/{video_id}/set_group/{group_id} Move a video into a folder Files the video under a video folder. A video belongs to at most one folder, so this moves it rather than adding a secon
PUT /streams/{stream_id}/videos/{video_id}/unset_group Remove a video from its folder Takes the video out of its folder and returns it to the top level of the library. The video itself is untouched. Video f
GET /streams/{stream_id}/videos/resource_groups List video folders Returns the video folders defined for the account. Video folders appear as resourcegroup in the URL and as resourceGroup
POST /streams/{stream_id}/videos/resource_group Create a video folder Creates a video folder. Passing the id of an existing folder renames that folder instead of creating a new one. Video fo
DELETE /streams/{stream_id}/videos/resource_group/{group_id} Delete a video folder Deletes a video folder. The videos inside it are not deleted — they return to the top level of the library. Video folder
POST /streams/{stream_id}/videos/uploadurl Create a video upload URL Returns a URL to upload a video file to. Use this for a single-request upload; for large files use the multipart flow in
POST /streams/{stream_id}/videos/uploadurl/signed Create a signed video upload URL Returns a pre-signed upload URL, for clients that cannot use the plain upload URL. The response shape matches the plain
POST /streams/{stream_id}/videos/uploadurl/multipart Start a multipart upload Opens a multipart upload session for a large video and returns the uploadId and object Key used by the remaining multipa
POST /streams/{stream_id}/videos/uploadurl/multipart/part/signed Sign a multipart upload part Returns a pre-signed URL for one part. Call once per part, then keep each response ETag for the finish call. Requires a
POST /streams/{stream_id}/videos/uploadurl/multipart/finish Finish a multipart upload Completes the multipart upload by listing every uploaded part with its ETag. The object only becomes readable once this
POST /streams/{stream_id}/videos/uploadurl/multipart/abort Abort a multipart upload Abandons the session and releases the parts already written. Call this on client-side upload failure so storage is not l