Plugin Repository #144

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

Originally created by @anthonylavado on GitHub (Dec 22, 2018).

Looking at #257, there are some calls to mb3admin.local that, naturally, fail. One of these URLs is originally:
https://www.mb3admin.com/admin/service/EmbyPackages.json

We should get a copy of this list for reference.

Then, we should investigate:

  • What is the purpose of this JSON list?
  • Is this a method to identify when a “sub module” (like a metadata provider) gets updated?
  • Does Emby use this list to download module updates?

Then we should decide:

  • If this function is important, do we host a copy for our own use?
  • If this is not important, and we remove this call entirely from Jellyfin, what functions do we lose?
Originally created by @anthonylavado on GitHub (Dec 22, 2018). Looking at #257, there are some calls to `mb3admin.local` that, naturally, fail. One of these URLs is originally: https://www.mb3admin.com/admin/service/EmbyPackages.json We should get a copy of this list for reference. Then, we should investigate: - What is the purpose of this JSON list? - Is this a method to identify when a “sub module” (like a metadata provider) gets updated? - Does Emby use this list to download module updates? Then we should decide: - If this function is important, do we host a copy for our own use? - If this is not important, and we remove this call entirely from Jellyfin, what functions do we lose?
OVERLORD added the roadmapfeaturebackend labels 2026-02-06 19:20:51 +03:00
Author
Owner

@bfayers commented on GitHub (Dec 22, 2018):

Looks like it contains downloads for plugins as well as some other stuff.

  • Is this a method to identify when a “sub module” (like a metadata provider) gets updated?
    It certainly seems that way.

  • Does Emby use this list to download module updates?
    Almost definitely

  • If this is not important, and we remove this call entirely from Jellyfin, what functions do we lose?
    I think we lose the ability to use the plugin catalog.

@bfayers commented on GitHub (Dec 22, 2018): Looks like it contains downloads for plugins as well as some other stuff. - Is this a method to identify when a “sub module” (like a metadata provider) gets updated? It certainly seems that way. - Does Emby use this list to download module updates? Almost definitely - If this is not important, and we remove this call entirely from Jellyfin, what functions do we lose? I think we lose the ability to use the plugin catalog.
Author
Owner

@bfayers commented on GitHub (Dec 22, 2018):

To follow up my previous comment I am almost 100% certain this file is responsible for module updates.

21a8d27378/Emby.Server.Implementations/Updates/InstallationManager.cs (L208)

@bfayers commented on GitHub (Dec 22, 2018): To follow up my previous comment I am almost 100% certain this file is responsible for module updates. https://github.com/jellyfin/jellyfin/blob/21a8d273782a1a71678131f17ebaafd2b997f286/Emby.Server.Implementations/Updates/InstallationManager.cs#L208
Author
Owner

@pw-h commented on GitHub (Dec 23, 2018):

I get errors calling to mb3admin.local as soon as i search for plugins, so indeed, mb3admin is called to get a list of plugins.
Trying to install the TVHeadend plugin, any other way to do that?

@pw-h commented on GitHub (Dec 23, 2018): I get errors calling to mb3admin.local as soon as i search for plugins, so indeed, mb3admin is called to get a list of plugins. Trying to install the TVHeadend plugin, any other way to do that?
Author
Owner

@bfayers commented on GitHub (Dec 23, 2018):

@pw-h Looking at the json file you can probably download this: https://embydata.com/admin/service/packageFiles/TVHeadEnd.dll_1.4.0.exe and save it as TVHeadEnd.dll in the plugins directory.

@bfayers commented on GitHub (Dec 23, 2018): @pw-h Looking at the json file you can probably download this: https://embydata.com/admin/service/packageFiles/TVHeadEnd.dll_1.4.0.exe and save it as TVHeadEnd.dll in the plugins directory.
Author
Owner

@thexyno commented on GitHub (Dec 23, 2018):

It'd be really cool if jellyfin could automaticly generate a packages.json when a new Github Release of a Plugin happens, maybe with a travis-ci script or something.

@thexyno commented on GitHub (Dec 23, 2018): It'd be really cool if jellyfin could automaticly generate a packages.json when a new Github Release of a Plugin happens, maybe with a travis-ci script or something.
Author
Owner

@bfayers commented on GitHub (Dec 23, 2018):

It'd be really cool if jellyfin could automaticly generate a packages.json when a new Github Release of a Plugin happens, maybe with a travis-ci script or something.

This definitely seems possible.

@bfayers commented on GitHub (Dec 23, 2018): > It'd be really cool if jellyfin could automaticly generate a packages.json when a new Github Release of a Plugin happens, maybe with a travis-ci script or something. This definitely seems possible.
Author
Owner

@PrplHaz4 commented on GitHub (Dec 24, 2018):

A key piece of this seems to be validating the downloaded files against a known checksum included in the EmbyPackages.json

If we host this file on our own, it will probably only have value if we are also hosting all of the plugin binaries or just pointing to the mb ones (which obviously, is not a long-term solution).

There is probably a backend process managing the plugins that generates the GUIDs and checksums and this EmbyPackages.json when a plugin is updated.

We will probably have to support two main scenarios:

  • Official Plugins - individual Jellyfin repos, built by Jellyfin (Drone) CI, use tagged GitHub releases for updates
  • Community Plugins - independent repos, built externally, use tagged GitHub releases for updates? (should we allow this or only support the above?)
@PrplHaz4 commented on GitHub (Dec 24, 2018): A key piece of this seems to be validating the downloaded files against a known checksum included in the EmbyPackages.json If we host this file on our own, it will probably only have value if we are also hosting all of the plugin binaries or just pointing to the mb ones (which obviously, is not a long-term solution). There is probably a backend process managing the plugins that generates the GUIDs and checksums and this EmbyPackages.json when a plugin is updated. We will probably have to support two main scenarios: - Official Plugins - individual Jellyfin repos, built by Jellyfin (Drone) CI, use tagged GitHub releases for updates - Community Plugins - independent repos, built externally, use tagged GitHub releases for updates? (should we allow this or only support the above?)
Author
Owner

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

Okay - This is becoming a little more important now.

We're thinking about plug-ins more, and users are starting to ask. We do have jellyfin-plugin-trakt as a PoC, where @cvium graciously re-wrote it to support new auth and it's actually working.

What we need to do:

  • Decide on a quick method of distributing plug-ins for now
  • Eventually come up with an automated way to do this for the long term (Forum topic here)
  • Work on previous code that would link to the catalog (See #298)
  • Collect relevant plugins (See #37)
  • Prepare documentation in jellyfin-docs to help users with manual install if needed
  • Write documentation to support plug-in development
  • Automate the building of our NuGet packages for plug-ins, so they get built on a new release
@anthonylavado commented on GitHub (Jan 28, 2019): Okay - This is becoming a little more important now. We're thinking about plug-ins more, and users are starting to ask. We do have [jellyfin-plugin-trakt](https://github.com/jellyfin/jellyfin-plugin-trakt) as a PoC, where @cvium graciously re-wrote it to support new auth and it's actually working. What we need to do: - [ ] Decide on a quick method of distributing plug-ins for now - [ ] Eventually come up with an automated way to do this for the long term [(Forum topic here)](https://forum.jellyfin.org/t/plugin-distribution/50?u=anthonylavado) - [ ] Work on previous code that would link to the catalog (See #298) - [ ] Collect relevant plugins (See #37) - [ ] Prepare documentation in [jellyfin-docs](https://github.com/jellyfin/jellyfin-docs) to help users with manual install if needed - [ ] Write documentation to support plug-in development - [ ] Automate the building of our NuGet packages for plug-ins, so they get built on a new release
Author
Owner

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

I copied an example plugin entry here and collected all possible values for interesting attributes on plugins and the individual versions so we can figure out an implementation.

@dkanada commented on GitHub (Jan 28, 2019): I copied an example plugin entry [here](https://gitlab.com/snippets/1802828) and collected all possible values for interesting attributes on [plugins](https://gitlab.com/snippets/1802829) and the individual versions so we can figure out an implementation.
Author
Owner

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

@dkanada I propose to follow this up here: https://forum.jellyfin.org/t/plugin-distribution/50/10

@JustAMan commented on GitHub (Jan 28, 2019): @dkanada I propose to follow this up here: https://forum.jellyfin.org/t/plugin-distribution/50/10
Author
Owner

@joshuaboniface commented on GitHub (Mar 18, 2019):

I think this is mostly working now as-is. Granted we do want to clean up the metadata a bit and work on a strategy to build these better, but that can come later.

@joshuaboniface commented on GitHub (Mar 18, 2019): I think this is mostly working now as-is. Granted we do want to clean up the metadata a bit and work on a strategy to build these better, but that can come later.
Author
Owner

@anthonylavado commented on GitHub (Mar 18, 2019):

@joshuaboniface Yes, this as it was originally opened, is satisfied IMO.

@anthonylavado commented on GitHub (Mar 18, 2019): @joshuaboniface Yes, this as it was originally opened, is satisfied IMO.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#144