stremio-addons
Version:
Stremio Add-on Server / Client
69 lines (38 loc) • 4.65 kB
Markdown
### Manifest format
The first thing to define for your add-on is the manifest, which describes it's name, purpose and some technical details.
Valid properties are:
``id`` - **required** - identifier, dot-separated, e.g. "com.stremio.filmon"
``name`` - **required** - human readable name
``description`` - **required** - human readable description
``idProperty`` - **required** - ID property of the Meta or Streams that this add-on delivers - for example ``imdb_id`` or ``filmon_id``; can be string or array of strings
``types`` - **required** - array of supported types, from all the [``Content Types``](./meta/content.types.md)
**IMPORTANT** - ``types`` and ``idProperty`` will be used when Stremio selects add-ons to call for a certain request. For example, if the user wants to watch Metropolis, the query would be ``{ type: "movie", imdb_id: "tt0017136" }``, your add-on has to have ``imdb_id`` in the manifest ``idProperty`` and ``movie`` in the manifest ``types``.
``webDescription`` - _optional_ - human readable description for the auto-generated add-on HTML page ; HTML allowed
``endpoint`` - _optional_ - http endpoint to the hosted version of this add-on; should end in standard stremio URL path, such as ``/stremio/v1`` for the v1 version of the protocol; example: ``http://cinemeta.strem.io/stremioget/stremio/v1``
``dontAnnounce`` - _optional_ - do not announce to stremio add-on tracker; this means that your add-on won't be listed on [addons.strem.io](http://addons.strem.io) even if it has a valid `endpoint`
**IMPORTANT** - At every start of the add-on server, the add-on will attempt to announce itself to the Stremio central API. If you have a valid `endpoint` in place, the central API will start showing it in the [Add-on catalogue](https://addons.strem.io).
``background`` - _optional_ - background image for the add-on; URL to png/jpg, at least 1024x786 resolution
``logo`` - _optional_ - logo icon, URL to png, monochrome, 256x256
``isFree`` - _optional_ - set this to ``true`` if you want to specify that all of the content in this add-on is free of charge; this is used when auto-generating a landing page for that add-on
``contactEmail`` - **required** - contact email for add-on issues; used for the Report button in the app; also, the Stremio team may reach you on this email for anything relating your add-on
``suggested`` - _optional_ - array of IDs of other add-ons that should be suggested when installing this add-on
``sorts`` - _optional_ - additional types of sorting in catalogues; array of sort objects
```javascript
[
{
prop: "popularities.moviedb",
name: "SORT_TRENDING",
types: ["movie", "series"],
noDiscoverTab: false, // hide this sort from Discover
countrySpecific: false // force Stremio to send country code with the meta.find
}
]
```
***TIP* - use different sorts to provide different catalogues for your users, e.g. separate "popular movies" and "new movies". This will appear as a tab in Discover and as a row in Board**
``listedOn`` - _optional_ - array - where is this add-on listed - there are four possible values - ``web``, ``desktop`` ([addons.strem.io](http://addons.strem.io)), ``android``, ``ios``; by default, the value is set to ``["web", "desktop", "android"]``. To hide the add-on from all catalogues, just pass an empty array (``listedOn: []``)
***WARNING* - unlike the other platforms, getting the add-on listed on ``ios`` may require moderator approval**
``searchDebounce`` - _optional_ - how much to de-bounce after the user types before calling ``meta.search``
``countrySpecific`` - _optional_ - boolean - if true, the stremio client must pass ``countryCode`` of the user along with ``meta.find``. *Example*: add-on for service where the streams are georestricted, e.g. Netflix; you can use this either directly in ``manifest``, or under one or more of the ``sorts``
``zipSpecific`` - _optional_ - boolean - if true, the stremio client must pass ``zip`` code of the user along with ``meta.find``. *Example*: cinema showtimes guide add-on where result is specific to city
``countrySpecificStreams`` - _optional_ - boolean - if true, the stremio client must pass ``countryCode`` of the user along with ``stream.find``, so that it can return geo-specific results. Please note that returning ``geos`` in the response [``Stream objects``](./stream/stream.response.md) is preferred over returning geo-specific results from ``stream.find``, but this is allowed if you have a data limitation
***TIP* - to implement sources where streams are geo-restricted (stream.find), see [``Stream object's``](./stream/stream.response.md) `geos`**