POST
/
stream
import { Livepeer } from "livepeer";
import { Profile, TranscodeProfileEncoder, TranscodeProfileProfile, Type } from "livepeer/models/components";

const livepeer = new Livepeer({
  apiKey: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await livepeer.stream.create({
    name: "test_stream",
    pull: {
      source: "https://myservice.com/live/stream.flv",
      headers: {
        "Authorization": "Bearer 123",
      },
      location: {
        lat: 39.739,
        lon: -104.988,
      },
    },
    playbackPolicy: {
      type: Type.Webhook,
      webhookId: "1bde4o2i6xycudoy",
      webhookContext: {
        "streamerId": "my-custom-id",
      },
      refreshInterval: 600,
    },
    profiles: [
      {
        width: 1280,
        name: "720p",
        height: 720,
        bitrate: 3000000,
        fps: 30,
        fpsDen: 1,
        quality: 23,
        gop: "2",
        profile: Profile.H264Baseline,
      },
    ],
    record: false,
    recordingSpec: {
      profiles: [
        {
          width: 1280,
          name: "720p",
          height: 720,
          bitrate: 3000000,
          quality: 23,
          fps: 30,
          fpsDen: 1,
          gop: "2",
          profile: TranscodeProfileProfile.H264Baseline,
          encoder: TranscodeProfileEncoder.H264,
        },
        {
          width: 1280,
          name: "720p",
          height: 720,
          bitrate: 3000000,
          quality: 23,
          fps: 30,
          fpsDen: 1,
          gop: "2",
          profile: TranscodeProfileProfile.H264Baseline,
          encoder: TranscodeProfileEncoder.H264,
        },
      ],
    },
    multistream: {
      targets: [
        {
          profile: "720p0",
          videoOnly: false,
          id: "PUSH123",
          spec: {
            name: "My target",
            url: "rtmps://live.my-service.tv/channel/secretKey",
          },
        },
      ],
    },
  });

  // Handle the result
  console.log(result);
}

run();
{
  "id": "de7818e7-610a-4057-8f6f-b785dc1e6f88",
  "name": "test_stream",
  "kind": "stream",
  "creatorId": {
    "type": "unverified",
    "value": "user123"
  },
  "userTags": {},
  "lastSeen": 1587667174725,
  "sourceSegments": 1,
  "transcodedSegments": 2,
  "sourceSegmentsDuration": 1,
  "transcodedSegmentsDuration": 2,
  "sourceBytes": 1,
  "transcodedBytes": 2,
  "ingestRate": 1,
  "outgoingRate": 2,
  "isActive": true,
  "isHealthy": null,
  "issues": null,
  "createdByTokenName": "abc-123-xyz-456",
  "createdAt": 1587667174725,
  "parentId": "de7818e7-610a-4057-8f6f-b785dc1e6f88",
  "streamKey": "hgebdhhigq",
  "pull": {
    "source": "https://myservice.com/live/stream.flv",
    "headers": {
      "Authorization": "Bearer 123"
    },
    "isMobile": 0,
    "location": {
      "lat": 39.739,
      "lon": -104.988
    }
  },
  "playbackId": "eaw4nk06ts2d0mzb",
  "playbackPolicy": {
    "type": "webhook",
    "webhookId": "1bde4o2i6xycudoy",
    "webhookContext": {
      "streamerId": "my-custom-id"
    },
    "refreshInterval": 600,
    "allowedOrigins": [
      "<string>"
    ]
  },
  "profiles": [
    {
      "name": "240p0",
      "fps": 0,
      "bitrate": 250000,
      "width": 426,
      "height": 240
    },
    {
      "name": "360p0",
      "fps": 0,
      "bitrate": 800000,
      "width": 640,
      "height": 360
    },
    {
      "name": "480p0",
      "fps": 0,
      "bitrate": 1600000,
      "width": 854,
      "height": 480
    },
    {
      "name": "720p0",
      "fps": 0,
      "bitrate": 3000000,
      "width": 1280,
      "height": 720
    }
  ],
  "projectId": "aac12556-4d65-4d34-9fb6-d1f0985eb0a9",
  "record": false,
  "recordingSpec": {
    "profiles": [
      {
        "width": 1280,
        "name": "720p",
        "height": 720,
        "bitrate": 3000000,
        "quality": 23,
        "fps": 30,
        "fpsDen": 1,
        "gop": 2,
        "profile": "H264Baseline",
        "encoder": "H.264"
      }
    ]
  },
  "multistream": {
    "targets": [
      {
        "id": "PUSH123",
        "profile": "720p"
      }
    ]
  },
  "suspended": true,
  "lastTerminatedAt": 1713281212993,
  "userId": "we7818e7-610a-4057-8f6f-b785dc1e6f88",
  "renditions": {}
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Response

201
application/json

Success

The response is of type object.