Build alternative to emby plugin store #18

Closed
opened 2026-02-06 19:11:12 +03:00 by OVERLORD · 7 comments
Owner

Originally created by @LeoVerto on GitHub (Dec 11, 2018).

Removing all connections to emby.media has broken the plugin installation system. We should either launch or own one or come up with an alternative, perhaps more manual plugin installation method.

Originally created by @LeoVerto on GitHub (Dec 11, 2018). Removing all connections to emby.media has broken the plugin installation system. We should either launch or own one or come up with an alternative, perhaps more manual plugin installation method.
OVERLORD added the enhancement label 2026-02-06 19:11:12 +03:00
Author
Owner

@DeftNerd commented on GitHub (Dec 11, 2018):

Manual plugin installation is good, but so is the ability to manually add new stores.

It could be as simple as RSS feeds that allow publishing of plugin updates. This will allow any default store to be clear of any controversial plugins, but people can add feeds for other plugins.

In theory, the plugin store interface would just merge all the configured plugin feed results to give a unified list.

Plugins should be able to be categorized by the feed author and have info like plugin DL links (support multiple links, with different protocols like http, https, ftp, etc), version number, date of update, an update channel (production, beta, alpha), changelog info, plugin description, thumbnail links and their dimensions, and DL counts.

It might be worth considering allowing plugin feeds to publish a HTTP PUT URL for some kind of voting or review mechanism.

If a user installs a CSPAN viewer plugin, they should be able to leave feedback or upvite the plugin. This could allow users to sort the merged plugin store interface by ratings or popularity.

I could dive into this and come up with a simple spec and implementation if you want.

@DeftNerd commented on GitHub (Dec 11, 2018): Manual plugin installation is good, but so is the ability to manually add new stores. It could be as simple as RSS feeds that allow publishing of plugin updates. This will allow any default store to be clear of any controversial plugins, but people can add feeds for other plugins. In theory, the plugin store interface would just merge all the configured plugin feed results to give a unified list. Plugins should be able to be categorized by the feed author and have info like plugin DL links (support multiple links, with different protocols like http, https, ftp, etc), version number, date of update, an update channel (production, beta, alpha), changelog info, plugin description, thumbnail links and their dimensions, and DL counts. It might be worth considering allowing plugin feeds to publish a HTTP PUT URL for some kind of voting or review mechanism. If a user installs a CSPAN viewer plugin, they should be able to leave feedback or upvite the plugin. This could allow users to sort the merged plugin store interface by ratings or popularity. I could dive into this and come up with a simple spec and implementation if you want.
Author
Owner

@JustAMan commented on GitHub (Dec 11, 2018):

One of easiest starts could be taking releases from github (for plugins, that is).
This way, "one plugin - one github repo" approach could be used.

BTW, do you know of any OSS plugins available for Emby?

@JustAMan commented on GitHub (Dec 11, 2018): One of easiest starts could be taking releases from github (for plugins, that is). This way, "one plugin - one github repo" approach could be used. BTW, do you know of any OSS plugins available for Emby?
Author
Owner

@dcrdev commented on GitHub (Dec 12, 2018):

I don't think this will be as difficult as people think:

'Emby store' is essentially a json manifest:
https://www.mb3admin.com/admin/service/EmbyPackages.json

We just need to:
a) Fork the still open source versions of as many plugins as we can
b) Host them in this organisation
c) Publish releases
d) Create a script that builds a collection of those releases dynamically and serialises to json.

The rest is simple - host the json file somewhere and change the references to the url in the codebase.

The manifest structure is hardly complex:

  {
    "id": "3",
    "name": "GameBrowser",
    "shortDescription": "Game manager For Emby",
    "overview": "GameBrowser III allows you to browse your game library with several Emby clients, and even launch games using supported front-ends.",
    "isPremium": false,
    "richDescUrl": "",
    "thumbImage": "https://github.com/MediaBrowser/GameBrowser/raw/master/GameBrowser/thumb.png",
    "previewImage": "https://github.com/MediaBrowser/GameBrowser/raw/master/GameBrowser/thumb.png",
    "type": "UserInstalled",
    "targetFilename": "GameBrowser.dll",
    "owner": "luke",
    "category": "General",
    "tileColor": "#7d0505",
    "featureId": "",
    "regInfo": "",
    "price": "0.00",
    "targetSystem": "Server",
    "guid": "4C2FDA1C-FD5E-433A-AD2B-718E0B73E9A9",
    "adult": "0",
    "totalRatings": "13",
    "avgRating": "4.1538",
    "isRegistered": false,
    "expDate": null,
    "versions": [
      {
        "name": "GameBrowser",
        "versionStr": "3.0.5487.36831",
        "classification": "Release",
        "description": "Update tgdb provider",
        "requiredVersionStr": "3.0.5487.21146",
        "sourceUrl": "",
        "targetFilename": "GameBrowser.dll",
        "checksum": null,
        "packageId": "3",
        "timestamp": "2017-08-23 14:24:48",
        "runtimes": "netframework"
      },
@dcrdev commented on GitHub (Dec 12, 2018): I don't think this will be as difficult as people think: 'Emby store' is essentially a json manifest: https://www.mb3admin.com/admin/service/EmbyPackages.json We just need to: a) Fork the still open source versions of as many plugins as we can b) Host them in this organisation c) Publish releases d) Create a script that builds a collection of those releases dynamically and serialises to json. The rest is simple - host the json file somewhere and change the references to the url in the codebase. The manifest structure is hardly complex: ``` { "id": "3", "name": "GameBrowser", "shortDescription": "Game manager For Emby", "overview": "GameBrowser III allows you to browse your game library with several Emby clients, and even launch games using supported front-ends.", "isPremium": false, "richDescUrl": "", "thumbImage": "https://github.com/MediaBrowser/GameBrowser/raw/master/GameBrowser/thumb.png", "previewImage": "https://github.com/MediaBrowser/GameBrowser/raw/master/GameBrowser/thumb.png", "type": "UserInstalled", "targetFilename": "GameBrowser.dll", "owner": "luke", "category": "General", "tileColor": "#7d0505", "featureId": "", "regInfo": "", "price": "0.00", "targetSystem": "Server", "guid": "4C2FDA1C-FD5E-433A-AD2B-718E0B73E9A9", "adult": "0", "totalRatings": "13", "avgRating": "4.1538", "isRegistered": false, "expDate": null, "versions": [ { "name": "GameBrowser", "versionStr": "3.0.5487.36831", "classification": "Release", "description": "Update tgdb provider", "requiredVersionStr": "3.0.5487.21146", "sourceUrl": "", "targetFilename": "GameBrowser.dll", "checksum": null, "packageId": "3", "timestamp": "2017-08-23 14:24:48", "runtimes": "netframework" }, ```
Author
Owner

@andrewrabert commented on GitHub (Dec 12, 2018):

In addition to the still existing repositories, I also have local copies of the following repositories with the latest code before the were deleted.

  • MediaBrowser/Dropbox
  • MediaBrowser/GoogleDrive
  • MediaBrowser/IMVDb
  • MediaBrowser/Lastfm
  • MediaBrowser/MovieDb
  • MediaBrowser/PodCasts
  • MediaBrowser/SubDb
  • MediaBrowser/cordova-chromecast
  • MediaBrowser/cordova-chromecast-ios

Trying to figure automations to push them to the https://github.com/mediabrowser-mirror org.

@andrewrabert commented on GitHub (Dec 12, 2018): In addition to the still existing repositories, I also have local copies of the following repositories with the latest code before the were deleted. - MediaBrowser/Dropbox - MediaBrowser/GoogleDrive - MediaBrowser/IMVDb - MediaBrowser/Lastfm - MediaBrowser/MovieDb - MediaBrowser/PodCasts - MediaBrowser/SubDb - MediaBrowser/cordova-chromecast - MediaBrowser/cordova-chromecast-ios Trying to figure automations to push them to the https://github.com/mediabrowser-mirror org.
Author
Owner

@joshuaboniface commented on GitHub (Jan 12, 2019):

@nvllsvm I think I got a bunch of those, are any more missing? That just means the last step is setting up a manifest.

@joshuaboniface commented on GitHub (Jan 12, 2019): @nvllsvm I think I got a bunch of those, are any more missing? That just means the last step is setting up a manifest.
Author
Owner

@anthonylavado commented on GitHub (Jan 28, 2019):

tagging #259

@anthonylavado commented on GitHub (Jan 28, 2019): tagging #259
Author
Owner

@anthonylavado commented on GitHub (Apr 9, 2019):

Closing as most requirements now satisfied.

@anthonylavado commented on GitHub (Apr 9, 2019): Closing as most requirements now satisfied.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#18