Streams

Supports listing streams and viewing stream details.

Playback Information

To ensure your users have the best possible experience while viewing a stream, Reactive supports ABR and provides three variations of your broadcast that users can watch. You can think of these variations as high, medium, and low qualities. Players that support ABR will automatically choose and switch between the variations to ensure that playback is smooth and uninterrupted.

Variant Specs:

  • High
    • Dimensions: input dimensions
    • Bitrate: 2.4 MB/s
  • Medium
    • Dimensions: scaled down to one half of input dimensions
    • Bitrate: 1.2 MB/s
  • Low
    • Dimensions: scaled down to one third of input dimensions
    • Bitrate: 0.8 MB/s

Start a stream

Request:

POST https://fot.reactive.live/api/v1/streams/

Note:

Body:

Name Type Required Description
tag string No The slugified identifier you'd like to use for your stream.

Example command:

curl -i  \
  -H "Authorization: Token a7e9aee23562ed8d6fc1234c1716e58a58c151b7" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{"tag": "main-stage"}' \ 
  https://fot.reactive.live/api/v1/streams/

Response:

HTTP 201 Created
Allow: GET, POST, HEAD, OPTIONS
Cache-Control: public, no-cache
Content-Type: application/json
Vary: Accept

{
    "id": "7e0dc0d0-63d7-4f00-805e-b0666b8a63ec",
    "producer": "706bf850-6a85-497a-9395-d827cbec4536",
    "dash_url": "https://fot.reactive.live/files/706bf850-6a85-497a-9395-d827cbec4536/7e0dc0d0-63d7-4f00-805e-b0666b8a63ec/out.mpd",
    "hls_url": "https://fot.reactive.live/files/706bf850-6a85-497a-9395-d827cbec4536/7e0dc0d0-63d7-4f00-805e-b0666b8a63ec/master.m3u8",
    "status": "STARTING"
}

Get your streams

Request:

GET https://fot.reactive.live/api/v1/streams/?producer=:producer

Parameters:

Name Type Required Description
producer uuid Yes Your user's uuid. This is returned to you in the producer field when you create a stream. You can also retrieve it from the profile view endpoint.

Example command:

curl -i  \
  -H "Content-Type: application/json" \
  https://fot.reactive.live/api/v1/streams/?producer=706bf850-6a85-497a-9395-d827cbec4536

Response:

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Cache-Control: public, no-cache
Content-Type: application/json
Vary: Accept

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "e019722a-19f7-4b7d-a10a-e5e46749c64b",
            "producer": "706bf850-6a85-497a-9395-d827cbec4536",
            "dash_url": "http://distribution.reactive.live/files/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/out.mpd",
            "hls_url": "http://distribution.reactive.live/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/master.m3u8",
            "status": "STREAMING"
        }
    ]
}

Get your streams by tag

Request:

GET https://fot.reactive.live/api/v1/streams/?producer=:producer&tag=:tag

Parameters:

Name Type Required Description
producer uuid Yes Your user's uuid. This is returned to you in the producer field when you create a stream. You can also retrieve it from the profile view endpoint.
tag string Yes The tag associated with the stream.

Example command:

curl -i  \
  -H "Content-Type: application/json" \
  https://fot.reactive.live/api/v1/streams/?producer=706bf850-6a85-497a-9395-d827cbec4536&tag=main-stage

Response:

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Cache-Control: public, no-cache
Content-Type: application/json
Vary: Accept

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": "e019722a-19f7-4b7d-a10a-e5e46749c64b",
            "producer": "706bf850-6a85-497a-9395-d827cbec4536",
            "dash_url": "http://distribution.reactive.live/files/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/out.mpd",
            "hls_url": "http://distribution.reactive.live/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/master.m3u8",
            "status": "STREAMING"
        }
    ]
}

Get a stream's detail information

Request:

GET https://fot.reactive.live/api/v1/streams/:stream_id/

Parameters:

Name Type Required Description
stream_id string Yes The id of the stream you'd like to view.

Example command:

curl -i  \
  -H "Content-Type: application/json" \
  https://fot.reactive.live/api/v1/streams/e019722a-19f7-4b7d-a10a-e5e46749c64b/

Response:

HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": "e019722a-19f7-4b7d-a10a-e5e46749c64b",
    "producer": "706bf850-6a85-497a-9395-d827cbec4536",
    "dash_url": "http://distribution.reactive.live/files/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/out.mpd",
    "hls_url": "http://distribution.reactive.live/706bf850-6a85-497a-9395-d827cbec4536/e019722a-19f7-4b7d-a10a-e5e46749c64b/master.m3u8",
    "status": "STREAMING"
}

Stopping a stream

Request:

POST https://fot.reactive.live/api/v1/streams/:stream_id/end/

Parameters:

Name Type Required Description
stream_id string Yes The id of the stream you'd like to end.

Example command:

curl -i  \
  -H "Authorization: Token a7e9aee23562ed8d6fc1234c1716e58a58c151b7" \
  -H "Content-Type: application/json" \
  -X POST \
  https://fot.reactive.live/api/v1/streams/e019722a-19f7-4b7d-a10a-e5e46749c64b/end/

Response:

HTTP 200 OK
Allow: POST, OPTIONS
Cache-Control: public, no-cache
Content-Type: application/json
Vary: Accept