这? Stremio 插件 SDK ?由 Stremio 团队开发,作为一种极大简化流媒体平台 Node.js 插件创建的方法。
Stremio 目前支持 Windows、macOS、Linux、Android 和 iOS。
重要提示:我们强烈建议将插件部署到 BeamUp 服务器
这个任意示例创建了一个插件,为 Big Buck Bunny 提供流并输出一个可以访问它的 HTTP 地址。
const { addonBuilder,serveHTTP,publishToCentral } = require('stremio-addon-sdk')const builder = new addonBuilder({id: 'org.myexampleaddon',version: '1.0.0',name: '简单示例',/ / 确定 Stremio 何时选择此插件的属性 // 这意味着您的插件将用于 moviecatalogs: [],resources: 类型的流['stream'],types: ['movie'],idPrefixes: ['tt']})// 接受 function(args)builder.defineStreamHandler(function(args) {if (args.type === 'movie' && args.id === 'tt1254207') {// 为 big Buck bunnyconst stream = { url: 提供一个流'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4' }return Promise.resolve({ Streams: [stream] })} else {// 否则不返回任何流return Promise.resolve({ Streams : [] })}})serveHTTP(builder.getInterface(), { 端口: process.env.PORT || 7000 })//publishToCentral("https://your-domain/manifest.json") // <- 如果您想发布您的插件并且可以在“your-domain”上公开访问它,请调用此函数
将其保存为addon.js
并运行:
npm 安装 stremio-addon-sdk 节点./addon.js
它将输出一个 URL,您可以使用该 URL 在 Stremio 中安装插件
请注意: Stremio 中的插件 URL 必须使用 HTTPS 加载( 127.0.0.1
除外)并且必须支持 CORS! CORS 支持由 SDK 自动处理,但如果您尝试远程加载插件(不是从127.0.0.1
),则需要支持 HTTPS。
为了构建新的 Stremio 插件,我们制作了一个名为addon-bootstrap
的工具。
您可以通过以下方式使用它:
npm install -g stremio-addon-sdk # 如果在 Linuxaddon-bootstrap hello-world 上则使用 sudo
系统会询问您想要支持哪些资源和类型,之后将在hello-world
目录中创建插件,然后您就可以运行它:
cd 你好世界 npm 安装 npm启动--启动
如果您希望在桌面版 Stremio 中安装该插件(您可以在此处下载),您应该使用npm start -- --install
我们所有的文档都位于 GitHub 上。请查看我们的示例列表以获取一些高级信息,或者直接深入研究我们的 SDK 文档以获取代码参考文档。
我们还有一个示例插件,您可以将其用作指南来帮助您构建自己的插件。
我们制作了两份分步指南:一份针对此 SDK,一份针对任何编程语言,您可以在此处阅读。
如果您不想使用 Node.js(因此也不使用此 SDK),您可以使用任何编程语言创建插件,请参阅插件协议规范以获取更多信息。
也可以在没有任何编程语言的情况下创建插件,请参阅我们基于协议规范的静态插件示例。
SDK 功能包括:
通过 HTTP 发布插件
使用publishToCentral将您的插件链接发布到公共插件集合
为您的插件创建一个包含“安装插件”按钮的主页
对于寻求快速测试新插件的开发人员,您可以:
使用 Stremio 进行测试
使用我们的网页版本进行测试
为了让你的插件能够被其他人使用,它需要在线部署。
您可以查看我们推荐的 Node.js 托管提供商列表,或者使用 localtunnel 在本地托管它。
公开部署后,为了让您的插件显示在 Stremio 中(通过公共插件集合),您需要使用publishToCentral 或通过 UI 手动发布。
查看我们不断增长的示例和演示插件列表。此列表还包括有关如何使用 PHP、Python、Ruby、C#、Rust、Java 和 Go 开发 Stremio 插件的示例和教程。它还包括视频教程列表。
该 SDK 有一个由 Sleeyax 开发的基于 stremio-core 的第三方 Rust 版本。
这里有一个由doodswork开发的该SDK的第三方Go版本。
阅读我们的高级使用指南,了解插件的多种使用方法。
如果您对 Stremio Addon SDK 有任何问题,请随时在此处报告。
要从 v0.x 迁移,您需要:
将new addonSDK
更改为new addonBuilder
,您可以通过const addonBuilder = require('stremio-addon-sdk').addonBuilder
导入它
将addon.run(opts)
更改为serveHTTP(addon.getInterface(), opts)
,您可以通过const serveHTTP = require('stremio-addon-sdk').serveHTTP
导入
所有处理程序都必须返回Promise
(而不是接受cb
)
创建 Stremio 插件时不强制使用此 SDK。您可以使用任何支持创建 HTTP 服务器的编程语言来制作 Stremio Addons。有关详细信息和示例,请参阅我们的协议规范。
不使用 SDK 的一种有用场景是当您的插件需要用户特定数据(例如 API 身份验证令牌)时,您可以在此处查看在插件 URL 中传递用户特定数据的示例。此示例使用 Node.js 和 Express 来获取用户特定数据。 (更新:Addon SDK现在支持用户设置)
Stremio 团队用爱和严谨的编码技巧构建而成