Skip to main content

Embed Streams with NPM Package

Learn how to integrate Streams directly into your website using our JavaScript/TypeScript NPM package, giving you full control over the user experience while leveraging our powerful streaming capabilities.

Overview​

The @streamscloud/embeddable package allows you to embed Streams into any website with complete customization control. Unlike our Widget system, this approach lets you:

  • Custom Stream Tiles - Design your own stream preview components
  • Brand Integration - Seamlessly match your existing website design
  • Event Control - Handle user interactions exactly how you want
  • Framework Flexibility - Works with React, Vue, Svelte, or vanilla JavaScript

How It Works​

The integration follows a simple pattern:

  1. Create Stream Tiles - Build custom components to display your streams
  2. Handle Click Events - Capture when users want to view a stream
  3. Open Stream Player - Trigger our full-screen player experience
  4. Manage Player Lifecycle - Control when the player opens and closes

Key Components​

Stream Player Modal​

The core component that provides the full-screen viewing experience:

  • Full-screen immersive viewing
  • Navigation between stream pages
  • Product integration and shopping
  • Analytics tracking
  • Mobile-optimized experience

GraphQL Client​

Required for fetching stream data and managing authentication:

  • Handles API communication
  • Manages user sessions
  • Provides real-time updates
  • Ensures data consistency

Basic Integration Flow​

import { openStreamPlayer } from '@streamscloud/embeddable/stream-player';

// 1. Open player when user clicks your custom tile
const handleStreamClick = (streamId: string) => {
openStreamPlayer({
streamId: streamId,
graphqlUrl: 'https://api.streamscloud.com/graphql'
});
};

Custom Stream Tiles​

You have complete freedom to design how streams appear on your website:

<!-- Your custom stream tile -->
<div class="stream-tile" onclick="handleStreamClick('streamId123')">
<img src="stream-thumbnail.jpg" alt="Stream preview" />
<h3>Stream Title</h3>
<p>Stream description...</p>
<button>Watch Now</button>
</div>

Framework Support​

Vanilla JavaScript​

Perfect for simple integrations or adding to existing websites without frameworks.

TypeScript​

Full type safety with comprehensive TypeScript definitions included.

Svelte​

Native support as shown in our example code, with reactive updates and component lifecycle management.

React/Vue​

Compatible with all major frameworks through standard web component patterns.

Authentication Options​

Public Streams​

For publicly accessible content, minimal configuration is required.

Benefits Over Widgets​

While Widgets are great for quick deployment, the NPM package offers:

  • Complete Design Control - No styling limitations
  • Custom Interactions - Handle events exactly as needed
  • Performance Optimization - Load only what you need
  • Advanced Integration - Deep integration with your existing codebase
  • Analytics Control - Custom tracking and measurement

The NPM package gives you the power of Streams with the flexibility to create exactly the experience your users need.