Le ? Kit de développement logiciel Stremio ? a été développé par l'équipe Stremio afin de simplifier considérablement la création de modules complémentaires Node.js pour notre plateforme de streaming.
Stremio prend actuellement en charge Windows, macOS, Linux, Android et iOS.
Important : Nous vous recommandons fortement de déployer des modules complémentaires sur les serveurs BeamUp
Cet exemple arbitraire crée un module complémentaire qui fournit un flux pour Big Buck Bunny et génère une adresse HTTP à laquelle vous pouvez y accéder.
const { addonBuilder, serveHTTP, publiToCentral } = require('stremio-addon-sdk')const builder = new addonBuilder({id : 'org.myexampleaddon',version : '1.0.0',nom : 'exemple simple',/ / Propriétés qui déterminent quand Stremio choisit cet addon // cela signifie que votre addon sera utilisé pour les flux du type moviecatalogs : [], ressources : ['stream'], types : ['movie'], idPrefixes : ['tt']})// prend function(args)builder.defineStreamHandler(function(args) {if (args.type = == 'movie' && args.id === 'tt1254207') {// diffuser un flux sur le flux Big Buck Bunnyconst = { url : 'http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4' }return Promise.resolve({ streams: [stream] })} else {// sinon ne renvoie aucun streamsreturn Promise.resolve( { flux : [] })}})serveHTTP(builder.getInterface(), { port : process.env.PORT || 7000 })//publishToCentral("https://your-domain/manifest.json") // <- invoquez ceci si vous souhaitez publier votre module complémentaire et qu'il est accessible publiquement sur "votre-domaine" "
Enregistrez-le sous addon.js
et exécutez :
npm installer stremio-addon-sdk nœud ./addon.js
Il affichera une URL que vous pourrez utiliser pour installer le module complémentaire dans Stremio.
Remarque : les URL des modules complémentaires dans Stremio doivent être chargées avec HTTPS (sauf 127.0.0.1
) et doivent prendre en charge CORS ! La prise en charge de CORS est gérée automatiquement par le SDK, mais si vous essayez de charger votre module complémentaire à distance (et non à partir de 127.0.0.1
), vous devez prendre en charge HTTPS.
Afin de créer un nouvel addon Stremio, nous avons créé un outil appelé addon-bootstrap
.
Vous pouvez l'utiliser de la manière suivante :
npm install -g stremio-addon-sdk # utiliser sudo si sur Linuxaddon-bootstrap hello-world
Il vous sera demandé quelles ressources et quels types vous souhaitez prendre en charge, après quoi le module complémentaire sera créé dans le répertoire hello-world
et vous pourrez l'exécuter :
cd bonjour le monde installation npm npm start -- --launch
Si vous souhaitez installer l'addon dans la version Desktop de Stremio (que vous pouvez télécharger ici), vous devez utiliser npm start -- --install
Toute notre documentation se trouve ici sur GitHub. Jetez un œil à notre liste d'exemples pour obtenir des informations de haut niveau, ou plongez directement dans notre documentation SDK pour nos documents de référence de code.
Nous avons également un exemple de module complémentaire que vous pouvez utiliser comme guide pour vous aider à créer votre propre module complémentaire.
Nous avons créé deux guides étape par étape : un pour ce SDK et un pour n'importe quel langage de programmation, que vous pouvez lire ici.
Si vous ne souhaitez pas utiliser Node.js (et donc ne pas utiliser ce SDK non plus), vous pouvez créer des modules complémentaires dans n'importe quel langage de programmation, consultez la spécification du protocole du module complémentaire pour plus d'informations.
Il est également possible de créer un module complémentaire sans aucun langage de programmation, voir notre exemple de module complémentaire statique basé sur la spécification du protocole.
Les fonctionnalités du SDK incluent :
Publication d'un module complémentaire via HTTP(s)
Publication du lien de votre module complémentaire vers la collection publique de modules complémentaires avec publierToCentral
Création d'une page d'accueil pour votre module complémentaire comprenant un bouton "Installer le module complémentaire"
Pour les développeurs recherchant un moyen rapide de tester leurs nouveaux modules complémentaires, vous pouvez soit :
Testez avec Stremio
Testez avec notre version Web
Pour que votre module complémentaire puisse être utilisé par d'autres, il doit être déployé en ligne.
Vous pouvez consulter notre liste de fournisseurs d'hébergement recommandés pour Node.js ou bien l'héberger localement avec localtunnel.
Après avoir déployé publiquement, afin que votre module complémentaire s'affiche dans Stremio (via la collection publique de modules complémentaires), vous devez utiliser publierToCentral ou publier manuellement via l'interface utilisateur.
Consultez notre liste toujours croissante d’exemples et de modules complémentaires de démonstration. Cette liste comprend également des exemples et des didacticiels sur la façon de développer des modules complémentaires Stremio en PHP, Python, Ruby, C#, Rust, Java et Go. Il comprend également une liste de didacticiels vidéo.
Il existe une version Rust tierce de ce SDK construite sur stremio-core développé par Sleeyax ici.
Il existe une version Go tierce de ce SDK développée par doingodswork ici.
Lisez notre guide d'utilisation avancée pour comprendre les nombreuses façons dont les modules complémentaires peuvent être utilisés.
Si vous rencontrez des problèmes concernant le SDK Stremio Addon, n'hésitez pas à les signaler ici.
Pour migrer depuis la v0.x, vous devez :
remplacez new addonSDK
par new addonBuilder
, que vous pouvez importer via const addonBuilder = require('stremio-addon-sdk').addonBuilder
remplacez addon.run(opts)
par serveHTTP(addon.getInterface(), opts)
, que vous pouvez importer via const serveHTTP = require('stremio-addon-sdk').serveHTTP
tous les gestionnaires doivent retourner une Promise
(plutôt que de prendre un cb
)
L'utilisation de ce SDK n'est pas obligatoire pour créer des Stremio Addons. Vous pouvez utiliser n'importe quel langage de programmation prenant en charge la création d'un serveur HTTP pour créer des modules complémentaires Stremio. Reportez-vous à nos spécifications de protocole pour plus de détails et des exemples.
Un scénario utile de non-utilisation du SDK est lorsque vous avez besoin de données spécifiques à l'utilisateur pour votre module complémentaire (par exemple, un jeton d'authentification API). Vous pouvez voir un exemple de transmission de données spécifiques à l'utilisateur dans l'URL du module complémentaire ici. Cet exemple utilise Node.js et Express pour obtenir des données spécifiques à l'utilisateur. (Mise à jour : le SDK Addon prend désormais en charge les paramètres utilisateur)
construit avec amour et de sérieuses compétences en codage par l'équipe Stremio