Skip to main content
The @odysseyml/odyssey package provides a TypeScript/JavaScript client for interacting with Odyssey’s audio-visual intelligence.
FeatureMinimum Version
Core SDK^1.0.0
Recordings^1.0.0
Simulate API^1.0.0

Installation

npm install @odysseyml/odyssey

API Summary

Methods

SignatureDescription
connect(handlers?): Promise<MediaStream>Connect to a streaming session (returns MediaStream when ready)
disconnect(): voidDisconnect and clean up resources
startStream(options?): Promise<string>Start an interactive stream
interact(options): Promise<string>Send a prompt to update the video
endStream(): Promise<void>End the current stream session
attachToVideo(element): HTMLVideoElementAttach stream to a video element
getRecording(streamId): Promise<Recording>Get recording URLs for a stream
listStreamRecordings(options?): Promise<StreamRecordingsListResponse>List user’s stream recordings
simulate(options): Promise<SimulationJob>Create an async simulation job
getSimulateStatus(id): Promise<SimulationJobDetail>Get simulation job status
listSimulations(options?): Promise<SimulationJobsList>List simulation jobs
cancelSimulation(id): Promise<void>Cancel a simulation job

Properties

PropertyTypeDescription
isConnectedbooleanWhether connected and ready
currentStatusConnectionStatusCurrent connection status
currentSessionId`stringnull`Current session ID
mediaStream`MediaStreamnull`Video stream from streamer
connectionState`RTCPeerConnectionStatenull`WebRTC connection state

Event Handlers

HandlerParametersDescription
onConnectedmediaStream: MediaStreamVideo stream established
onDisconnected-Video stream closed
onStreamStartedstreamId: stringInteractive stream ready (streamId can be used for recordings)
onStreamEnded-Interactive stream ended
onInteractAcknowledgedprompt: stringInteraction processed
onStreamErrorreason, messageStream error occurred
onErrorerror: Error, fatal: booleanGeneral error
onStatusChangestatus, message?Connection status changed

Next Steps