Skip to main content

Methods Reference

The daydream.streams namespace provides methods for creating, reading, updating, and deleting streams.

Methods Overview

MethodDescription
streams.create()Create a new stream
streams.getAll()Get all streams for the authenticated user
streams.getById()Get a specific stream by ID
streams.update()Update stream parameters
streams.delete()Delete a stream

streams.create()

Creates a new video processing stream.
const stream = await daydream.streams.create({
  pipeline: "streamdiffusion",
  params: {
    modelId: "stabilityai/sdxl-turbo",
    prompt: "anime character",
    // ... additional parameters
  },
  name: "My Stream", // optional
});

Parameters

FieldTypeRequiredDescription
pipeline"streamdiffusion"YesThe processing pipeline
params.modelIdstringYesModel to use (see below)
params.promptstringNoText prompt for generation
namestringNoHuman-readable stream name

Available Models

modelIdDescription
stabilityai/sd-turboSD2.1 - Fastest, 6 ControlNets
stabilityai/sdxl-turboSDXL - Highest quality, IP Adapter support
Lykon/dreamshaper-8SD1.5 - Great for stylized effects
prompthero/openjourney-v4SD1.5 - Artistic style

Returns

{
  id: string;                    // Unique stream identifier
  whipUrl: string;               // WebRTC WHIP URL for broadcasting
  outputPlaybackId: string;      // Playback ID for viewing output
  streamKey: string;             // Stream key
  pipeline: "streamdiffusion";
  params: { ... };               // Current parameters
  createdAt: string;             // ISO timestamp
  name: string;
  author: string;
  gatewayHost: string;
}

streams.getAll()

Retrieves all streams for the authenticated user.
const streams = await daydream.streams.getAll();

for (const stream of streams) {
  console.log(stream.id, stream.name, stream.createdAt);
}

Returns

Array of stream objects (same structure as create() response).

streams.getById()

Retrieves a specific stream by ID.
const stream = await daydream.streams.getById("str_abc123");

Parameters

FieldTypeRequiredDescription
idstringYesStream ID

Returns

Stream object (same structure as create() response).

streams.update()

Updates parameters for an existing stream.
await daydream.streams.update("str_abc123", {
  pipeline: "streamdiffusion",
  params: {
    modelId: "stabilityai/sdxl-turbo",
    prompt: "new prompt",
    guidanceScale: 1.5,
  },
});

Parameters

FieldTypeRequiredDescription
idstringYesStream ID (first argument)
pipelinestringNoDefaults to "streamdiffusion"
paramsobjectYesParameters to update
You only need to include the parameters you want to change. Other parameters remain unchanged.

Hot-Swappable Parameters

These parameters update instantly without pipeline reload:
  • prompt, negativePrompt
  • guidanceScale, delta
  • numInferenceSteps, tIndexList
  • seed
  • controlnets[].conditioningScale
  • ipAdapter settings
  • ipAdapterStyleImageUrl
All other parameters trigger a ~30s pipeline reload.

streams.delete()

Deletes a stream.
await daydream.streams.delete("str_abc123");

Parameters

FieldTypeRequiredDescription
idstringYesStream ID

Error Handling

The SDK throws typed errors for different failure scenarios:
import { Daydream } from "@daydreamlive/sdk";
import * as errors from "@daydreamlive/sdk/models/errors";

const daydream = new Daydream({
  bearer: process.env.DAYDREAM_API_KEY,
});

try {
  const stream = await daydream.streams.create({
    pipeline: "streamdiffusion",
    params: { modelId: "stabilityai/sdxl-turbo" },
  });
} catch (error) {
  if (error instanceof errors.BadRequestError) {
    // 400 - Invalid request
    console.log("Validation error:", error.data$.details);
  } else if (error instanceof errors.UnauthorizedError) {
    // 401 - Invalid API key
    console.log("Check your API key");
  } else if (error instanceof errors.TooManyRequestsError) {
    // 429 - Rate limited
    console.log("Slow down! Rate limit exceeded");
  } else if (error instanceof errors.DaydreamError) {
    // Other API errors
    console.log(error.message, error.statusCode);
  }
}

Error Types

ErrorStatusDescription
BadRequestError400Invalid request parameters
UnauthorizedError401Invalid or missing API key
ForbiddenError403Insufficient permissions
NotFoundError404Stream not found
ConflictError409Conflict (e.g., duplicate)
TooManyRequestsError429Rate limit exceeded
InternalServerError500Server error

Retry Configuration

Configure automatic retries for transient failures:
const daydream = new Daydream({
  bearer: process.env.DAYDREAM_API_KEY,
  retryConfig: {
    strategy: "backoff",
    backoff: {
      initialInterval: 500,
      maxInterval: 30000,
      exponent: 1.5,
      maxElapsedTime: 60000,
    },
    retryConnectionErrors: true,
  },
});
Or per-request:
const stream = await daydream.streams.create(
  {
    pipeline: "streamdiffusion",
    params: { modelId: "stabilityai/sdxl-turbo" },
  },
  { retries: { strategy: "backoff", backoff: { maxElapsedTime: 10000 } } },
);

TypeScript Types

The SDK is fully typed. Import types for use in your application:
import type {
  CreateStreamRequest,
  CreateStreamResponse,
  UpdateStreamRequest,
} from "@daydreamlive/sdk/models/components";

Next Steps