9. SDK Layer DEVELOPER KITS

9.1 SDK Overview & Installation

The RelayStream SDK Layer abstracts REST API interactions, signature handshakes, Open-STRM payload parsing, and DePIN route resolution into clean, idiomatic SDKs for TypeScript/JavaScript and Python environments.

PACKAGE INSTALLATIONBASH
# Node.js SDK (@relaystream/sdk)
npm install @relaystream/sdk

# Python SDK (relaystream-sdk)
pip install relaystream-sdk
9.2 TypeScript / JavaScript SDK Integration

Use @relaystream/sdk to programmatically publish media assets, verify on-chain Open-STRM CIDs, and resolve zero-jitter stream routes.

SDK WORKFLOW EXAMPLETypeScript
import { RelayStream } from '@relaystream/sdk';

const sdk = new RelayStream({
  apiKey: process.env.RELAYSTREAM_API_KEY || 'rs_live_9f8d7a...',
  endpoint: 'https://api.relaystream.org/v1'
});

async function executeMediaWorkflow() {
  // 1. Publish Master Asset to Open-STRM Network
  const asset = await sdk.assets.publish({
    title: "The Breakfast Club 4K Master",
    owner: "3SKV1FNLAPrzR3j4BUShRKKsrpnAtVCNBZR1GmiMF5at",
    source_url: "https://storage.provider.com/raw/breakfast_club.mp4",
    target_providers: ["Sia", "Storj", "Filecoin"]
  });

  console.log('[SDK] Open-STRM Asset Registered:', asset.asset_id);

  // 2. Resolve Playback Route
  const route = await sdk.playback.resolve(asset.asset_id, { protocol: 'hls' });
  console.log('[SDK] Resolved Stream Gateway Route:', route.resolved_route);
}

executeMediaWorkflow();
9.3 Python SDK (Node Operators & Automation)

The Python SDK is engineered for node operators running dedicated media ingestion servers, local FFmpeg transcoders, and continuous rolling HLS playlist generators.

NODE_INGESTION_LOOP.PYPython
from relaystream import RelayStreamClient

client = RelayStreamClient(
    api_key="rs_live_9f8d7a...",
    endpoint="https://api.relaystream.org/v1"
)

def register_live_relay_node(manifest_path, asset_title):
    # Register continuous live feed manifest with sub-500ms finality
    response = client.live.register_node(
        title=asset_title,
        manifest_url=manifest_path,
        target_da_layer="0G_DAG",
        storage_providers=["Sia", "Theta"]
    )
    
    if response.status == "active":
        print(f"[Python SDK] Relay Node Active. Asset ID: {response.asset_id}")

register_live_relay_node(
    manifest_path="https://live.relaystream.net/espn/index.m3u8",
    asset_title="ESPN Live Stream - Primary Tunnel"
)