Skip to content

A streamer's place.stream.video records (read from their PDS) and this node's uploads for them: everything updateVideo, deleteVideo and publishVideo take. The caller must be the streamer or hold livestream.manage from them.

GET
/xrpc/place.stream.media.listVideos
curl --request GET \
--url 'https://example.com/xrpc/place.stream.media.listVideos?repo=example'
repo
required

The streamer’s DID.

string format: did

The streamer’s DID.

Success

Media typeapplication/json
object
repoDID
required
string format: did
videos
required
Array<object>
object
uri
required
string format: uri
cid
required
string format: cid
title
required
string
durationMs
integer
createdAt
string
tracks
required

The track records the video’s source points at.

Array<string>
connections

The livestream records the video is connected to.

Array<string>
thumb

Whether the record carries a thumbnail.

boolean
uploads
required
Array<object>
object
uploadId
required
string
status
required

Processing status: pending, processing, done or error.

string
error
string
backend
required
string
location

For a finalized recording, the livestream record it came from.

string
contentCid
string
durationMs
integer
blobSize
integer
tracks

How many track records the upload has published.

integer
createdAt
string format: date-time

Example generated

{
"repoDID": "example",
"videos": [
{
"uri": "https://example.com",
"cid": "example",
"title": "example",
"durationMs": 1,
"createdAt": "example",
"tracks": [
"https://example.com"
],
"connections": [
"https://example.com"
],
"thumb": true
}
],
"uploads": [
{
"uploadId": "example",
"status": "example",
"error": "example",
"backend": "example",
"location": "example",
"contentCid": "example",
"durationMs": 1,
"blobSize": 1,
"tracks": 1,
"createdAt": "2026-04-15T12:00:00Z"
}
]
}

Bad Request

Media typeapplication/json
object
error
required
One of:
string
Allowed value: NotPermitted
message
required
string

Example

{
"error": "NotPermitted"
}