Skip to content
This repository has been archived by the owner on Jan 18, 2019. It is now read-only.
/ emby-unlocked Public archive

Emby with the premium Emby Premiere features unlocked.

License

Notifications You must be signed in to change notification settings

nvllsvm/emby-unlocked

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Update 2019-01-17 - The Emby team has deleted the relevant GitHub isuses in an attempt to hide community backlash. Below are archived versions of those issues:

Announcing Jellyfin - An Emby Fork! - I am now focusing my time on Jellyfin: a free software fork of Emby. For those using the emby-unlocked image - a drop-in replacement of Jellyfin is available on Docker Hub as jellyfin/jellyfin.

⚠ This was spurred from Emby's decision to move to a proprietary license [source]. ⚠


emby-unlocked

Emby with the premium Emby Premiere features unlocked.

Note - I'm not going to be devoting much time to into maintaining emby-unlocked from here on. The upstream project is too hostile towards the free software community.

  • reliance upon proprietary blobs
  • missing build scripts
  • missing licenses
  • missing source code

Releases

Releases including the patch are available below:

Help! Premiere feature x does not work.

While this patch makes your local server believe Emby Premiere features are unlocked, some features may still not function. For example, both tv.emby.media and the mobile apps rely upon validation with the Emby-owned mb3admin.com server.

Modifications

PluginSecurityManager.cs.patch

Before compilation, simply patch the existing file:

patch -N -p1 -r - Emby.Server.Implementations/Security/PluginSecurityManager.cs < ../PluginSecurityManager.cs.patch

connectionmanager.js

Not really sure what this unlocks outside of removing the nag on the Sync screen. Sync doesn't seem to work afterwards. Regardless - your own Emby server has zero need to contact the Emby-owned validation URL: https://mb3admin.com/admin/service/registration/validateDevice.

The included version of this in the source distribution is minified. Thus, making a patch is difficult. The only difference boils down to replacing self.getRegistrationInfo with this:

self.getRegistrationInfo = function (feature, apiClient, options) {
    var cacheKey = getCacheKey(feature, apiClient, options);
    appStorage.setItem(cacheKey, JSON.stringify({
        lastValidDate: new Date().getTime(),
        deviceId: self.deviceId()
    }));
    return Promise.resolve();
};