@stremio-addon/sdk
This package is part of Stremio-Community/stremio-addon-sdk.
Core SDK package for building Stremio addons with TypeScript (or JavaScript).
Features
- 🎯 Type-safe - Full TypeScript support with comprehensive type definitions
- ✅ Runtime validation - Optional schema validation support
- 🚀 Modern - ESM-first, tree-shakeable
- 🧩 Framework-agnostic - Works with any server framework or serverless platform
Installation
pnpm add @stremio-addon/sdk
Usage
Basic Example
import { AddonBuilder, createRouter } from "@stremio-addon/sdk";
const manifest = {
id: "com.example.myaddon",
version: "1.0.0",
name: "My Addon",
description: "My cool Stremio addon",
resources: ["stream"],
types: ["movie", "series"],
catalogs: [],
};
const builder = new AddonBuilder(manifest);
builder.defineStreamHandler(async ({ type, id }) => {
return {
streams: [
{
url: "https://example.com/stream.mp4",
title: "Example Stream",
},
],
};
});
const addonInterface = builder.getInterface();
const router = createRouter(addonInterface);
Handler Methods
defineStreamHandler(handler) - Handle stream requests
defineMetaHandler(handler) - Handle metadata requests
defineCatalogHandler(handler) - Handle catalog requests
defineSubtitlesHandler(handler) - Handle subtitle requests
Router
The createRouter function creates a Web Standard Request -> Response handler that can be used with any server framework or serverless platform:
const router = createRouter(addonInterface);
const response = await router(request);
Runtime Integration
This package provides the core functionality, but you'll need a runtime adapter to serve your addon.
Server
Serverless
Custom
Validation
Add runtime validation by using a validation package:
Examples
See the examples directory for complete working examples.
License
MIT