Get the list of media URLs: Camera.GetMediaUrls

Returns playback URLs for the specified cameras

Parameters

params: object


params.cameras: UidArray aka array

Min size: 1

List of UIDs

Camera identifiers

params.cameras...

params.cameras[]: Uid aka string

Pattern: ^[a-zA-Z0-9_-]+$

Unique identifier used throughout the system



params.ttl: integer

optional

Default:

JSON
3600

URL validity time in seconds


params.live: integer

optional

Default:

JSON
1

Is live streaming enabled


params.view: integer

optional

Default:

JSON
1

Is DVR streaming enabled


params.copy: integer

optional

Default:

JSON
1

Is streaming download enabled


params.from: null|integer

optional nullable

Default:

JSON
0

From DVR stream


params.to: null|integer

optional nullable

Default:

JSON
0

To DVR stream


params.whitelist: array

optional

Default:

JSON
[]

List of IP addresses allowed access without authentication

IP whitelist for unauthorized access

params.whitelist...

params.whitelist[]: IpAddress aka string

Pattern: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$

IPv4 or IPv6 address



Result

result: object

Map of camera UIDs to their available media URLs


result{}: boolean|object

One of 2 variants

No description

result{}...

result{}<0>: boolean

No description


result{}<1>: MediaUrls aka object

Available media playback URLs for a camera


result{}<1>.buffer-rtsp: string|boolean

One of 2 variants

Buffer RTSP playback URL


result{}<1>.buffer-rtsp<0>: boolean

No description


result{}<1>.buffer-rtsp<1>: string

No description


result{}<1>.buffer-rtsps: string|boolean

One of 2 variants

Buffer RTSP over TLS playback URL


result{}<1>.buffer-rtsps<0>: boolean

No description


result{}<1>.buffer-rtsps<1>: string

No description


result{}<1>.live-mp4: string|boolean

One of 2 variants

Live fMP4 playback URL


result{}<1>.live-mp4<0>: boolean

No description


result{}<1>.live-mp4<1>: string

No description


result{}<1>.dvr-mp4: string|boolean

One of 2 variants

DVR fMP4 playback URL


result{}<1>.dvr-mp4<0>: boolean

No description


result{}<1>.dvr-mp4<1>: string

No description


result{}<1>.live-rtsp: string|boolean

One of 2 variants

Live RTSP playback URL


result{}<1>.live-rtsp<0>: boolean

No description


result{}<1>.live-rtsp<1>: string

No description


result{}<1>.live-rtsps: string|boolean

One of 2 variants

Live RTSP over TLS playback URL


result{}<1>.live-rtsps<0>: boolean

No description


result{}<1>.live-rtsps<1>: string

No description


result{}<1>.live-hls: string|boolean

One of 2 variants

Live HLS playback URL


result{}<1>.live-hls<0>: boolean

No description


result{}<1>.live-hls<1>: string

No description


result{}<1>.live-preview-mp4: string|boolean

One of 2 variants

Live preview generation URL in MP4 format


result{}<1>.live-preview-mp4<0>: boolean

No description


result{}<1>.live-preview-mp4<1>: string

No description


result{}<1>.live-preview-jpg: string|boolean

One of 2 variants

Live preview generation URL in JPG format


result{}<1>.live-preview-jpg<0>: boolean

No description


result{}<1>.live-preview-jpg<1>: string

No description


result{}<1>.archive-mp4: string|boolean

One of 2 variants

Archive MP4 playback URL


result{}<1>.archive-mp4<0>: boolean

No description


result{}<1>.archive-mp4<1>: string

No description


result{}<1>.archive-zip: string|boolean

One of 2 variants

Archive ZIP playback URL


result{}<1>.archive-zip<0>: boolean

No description


result{}<1>.archive-zip<1>: string

No description


result{}<1>.archive-tar: string|boolean

One of 2 variants

Raw DVR archive download URL


result{}<1>.archive-tar<0>: boolean

No description


result{}<1>.archive-tar<1>: string

No description


result{}<1>.dvr-preview-mp4: string|boolean

One of 2 variants

DVR preview generation URL in MP4 format


result{}<1>.dvr-preview-mp4<0>: boolean

No description


result{}<1>.dvr-preview-mp4<1>: string

No description


result{}<1>.dvr-preview-jpg: string|boolean

One of 2 variants

DVR preview generation URL in JPG format


result{}<1>.dvr-preview-jpg<0>: boolean

No description


result{}<1>.dvr-preview-jpg<1>: string

No description


result{}<1>.dvr-rtsp: string|boolean

One of 2 variants

DVR RTSP playback URL


result{}<1>.dvr-rtsp<0>: boolean

No description


result{}<1>.dvr-rtsp<1>: string

No description


result{}<1>.dvr-rtsps: string|boolean

One of 2 variants

DVR RTSP over TLS playback URL


result{}<1>.dvr-rtsps<0>: boolean

No description


result{}<1>.dvr-rtsps<1>: string

No description


result{}<1>.dvr-hls: string|boolean

One of 2 variants

DVR HLS playback URL


result{}<1>.dvr-hls<0>: boolean

No description


result{}<1>.dvr-hls<1>: string

No description



POST /api/

JSON
{
  "jsonrpc": "2.0",
  "method": "Camera.GetMediaUrls",
  "params": {
    "cameras": [
      "camera_uuid"
    ],
    "live": 1,
    "view": 1,
    "copy": 1,
    "from": 0,
    "to": 10,
    "whitelist": [
      "127.0.0.1"
    ],
    "ttl": 3600
  },
  "id": 123
}
cURL
Bash
curl -k --request POST \
    --url 'https://your-domain/api/' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <api-authorization-token>' \
    --data '{
  "jsonrpc": "2.0",
  "method": "Camera.GetMediaUrls",
  "params": {
    "cameras": [
      "camera_uuid"
    ],
    "live": 1,
    "view": 1,
    "copy": 1,
    "from": 0,
    "to": 10,
    "whitelist": [
      "127.0.0.1"
    ],
    "ttl": 3600
  },
  "id": 123
}'

200 OK

JSON
{
  "jsonrpc": "2.0",
  "result": {
    "camera_uuid": {
      "archive-mp4": "https://labnsmse3.aivp.io:8443/camera_uuid/archive-20260215073923-3600.mp4?media=video|audio&token=<token>",
      "archive-tar": "https://labnsmse3.aivp.io:8443/camera_uuid/archive-20260214203923-43200.tar?token=<token>",
      "archive-zip": "https://labnsmse3.aivp.io:8443/camera_uuid/archive-20260214203923-43200.zip?token=<token>",
      "buffer-rtsp": "rtsp://labnsmse3.aivp.io:8554/buffer/camera_uuid/?token=<token>",
      "buffer-rtsps": "rtsps://labnsmse3.aivp.io:8554/buffer/camera_uuid/?token=<token>",
      "dvr-hls": "https://labnsmse3.aivp.io:8443/camera_uuid/dvr-20260214084323.hls?media=video|audio&speed=1&token=<token>",
      "dvr-mp4": "https://labnsmse3.aivp.io:8443/camera_uuid/dvr-20260214084323.mp4?media=video|audio&token=<token>",
      "dvr-preview-jpg": "https://labnsmse3.aivp.io:8443/camera_uuid/snapshot-20260214084323.jpg?token=<token>",
      "dvr-preview-mp4": "https://labnsmse3.aivp.io:8443/camera_uuid/snapshot-20260214084323.mp4?token=<token>",
      "dvr-rtsp": "rtsp://labnsmse3.aivp.io:8554/dvr/camera_uuid/?from=20260214084323&token=<token>",
      "dvr-rtsps": "rtsps://labnsmse3.aivp.io:8554/dvr/camera_uuid/?from=20260214084323&token=<token>",
      "live-hls": "https://labnsmse3.aivp.io:8443/camera_uuid/live.m3u8?media=video|audio&token=<token>",
      "live-mp4": "https://labnsmse3.aivp.io:8443/camera_uuid/live.mp4?media=video|audio&token=<token>",
      "live-preview-jpg": "https://labnsmse3.aivp.io:8443/camera_uuid/preview.jpg?token=<token>",
      "live-preview-mp4": "https://labnsmse3.aivp.io:8443/camera_uuid/preview.mp4?token=<token>",
      "live-rtsp": "rtsp://labnsmse3.aivp.io:8554/live/camera_uuid/?token=<token>",
      "live-rtsps": "rtsps://labnsmse3.aivp.io:8554/live/camera_uuid/?token=<token>"
    }
  },
  "id": 123
}

400 Bad Request

JSON
{
  "jsonrpc": "2.0",
  "error": {
    "code": -32601,
    "message": "Method not found"
  },
  "id": 123
}

500 Internal Server Error

Server error