Removing the Emby Premiere nagging from its Webclient

Emby (an alternative to Plex) is a nice piece of open source software which indeed deserves payment.

For this, there is something called „Emby Premiere“ which unlocks more features. Perfectly fine.
However asking everywhere in the Web UI to please please please buy it and showing a full screen popup every 72 Hours to suggest buying it is debatable but would be acceptable with a reasonable pricing.

This isn’t the case. There are three options:

  1. Monthly (recurring) $4.99
  2. 1 Year $39.99
  3. Lifetime $99.99

Problem is: Lifetime isn’t Lifetime.

Here’s what the ToS (Updated: April 6, 2016) have to say about Lifetime:

Lifetime Term: Lifetime shall mean the current major version of the Emby server software or twenty-four months, whichever is longer.  (E.g.  The Emby server software is currently at version 3.XXXX. A lifetime subscription shall be valid until Emby server software reaches version 4.XXX or twenty-four months, whichever occurs later.)

So basically lifetime is not lifetime. Great.

Also, there’s nothing like a student discount even with a certificate of enrollment. Why? I have no idea.

So anyways.. stopping the nagging isn’t that hard. However it requires patching the clients js on the server side for now. I hope that there will be a way to avoid that in future releases. (Or that the devs fix their pricing..)

First, we’re hiding stuff with the custom css feature. (Settings -> Branding -> Custom CSS)

.supporterPromotionContainer {
display: none !important;
}
.homePageSection.section0 > div:nth-child(2) {
display: none !important;
}

Simple, eh?

To remove the recurring 72-hour „go buy our stuff“ popup, the file registrationservices.js on the server needs to be edited.
On Debian Jessie, this file is located in /usr/lib/emby-server/bin/dashboard-ui/scripts/

The validatePlayback functions should look like this

function validatePlayback(resolve, reject) {
resolve();
}

The changes to this file will be reset on every update of Emby.

It saddens me that I have to do this instead of just buying Emby since it is in fact great software and the devs also need to pay their bills. However their pricing is just unacceptable for a lot of people and this doesn’t unlock the premium features. It just hides those incredibly annoying messages.

 

Edit 05.12.16
It seems like this was moved to /usr/lib/emby-server/bin/dashboard-ui/bower_components/emby-webcomponents/registrationservices/registrationservices.js

Just change the relevant functions so that it doesn’t return a nagging popup.

19 Gedanken zu „Removing the Emby Premiere nagging from its Webclient“

    1. I’ve never tried Plex since as far as I know it relies on external servers to do the login. I’m trying to avoid the cloud where I can and I don’t think that a local media server which just delivers stuff from my harddrive needs external servers for managing its users.

  1. The new versions require this change to the registrationservices.js

    ***** Find the function below and change the lines below it to match. Gets rid of the NAG *****
    function showPeriodicMessageIfNeeded(feature) {
    // Change form this
    var intervalMs = iapManager.getPeriodicMessageIntervalMs(feature);
    // to this
    var intervalMs = 0;

  2. Seems they have changed shit up again, none of the above seems to work for hiding this incessant nagging about Premiere…
    I think they also added a nag with a 15 second counter to be able to playback now.
    Horrible way to try to get people to buy this. My users are not going to buy anything since it’s not their server anyway so why are THEY being nagged? Stupid.

  3. So they changed the next line after var intervalMs as well.

    The new versions require this change to the registrationservices.js

    ***** Find the function below and change the lines below it to match. Gets rid of the NAG *****
    function showPeriodicMessageIfNeeded(feature) {
    // Change form this
    var intervalMs = iapManager.getPeriodicMessageIntervalMs(feature);
    // to this
    var intervalMs = 0;

    Then the next line says ‚if intervalMs <= 0' blah blah blah.

    Just change that to <= to < and should work fine again. For now.

  4. In Synology DSM 6.1-15047 edit:
    /volume1/@appstore/EmbyServer/server/dashboard-ui/bower_components/emby-webcomponents/registrationservices/registrationservices.js

  5. Does anyone have an update on this? I think it no longer works. After I changed that .js file, I still get 10-11 second countdown…

  6. In server 3.2.24

    You need to locate the file registrationservices, which is inside your emby-server directory.
    Which is inside your user directory, app data, roaming directory.
    Full path for me in Windows Server 2013:

    C:\Users\Administrator\AppData\Roaming\Emby-Server\System\dashboard-ui\bower_components\emby-webcomponents

    edit the JS file in there, there is a 11 second counter, Its easier to just change it to 1 second.

    You can also remove the nagging „features“ and even the focus button.

  7. Top comment: missed saying that the text you’re looking for is :
    „;var seconds=11;html+='<div class="continueTimeText formDialogFooterItem"

    change the "seconds" to 1, problem solved!

    1. Hello Andrew, so as everyone knows your patch isn’t working in these new version. I would be glab to help you renew it if you could explain to me what paramaters were you changing and how you got an idea for such an thing. You can write to me on my email: aleksasiriski@lavelektronik.com Waiting for your response happily, bye!

      1. Edit: Hello Andrew, I found a post saying about some „hack“ for Emby so I think it is yours which people were talking about. They said it didn’t work in new versions, but you posted this 5 days ago… So can I just ask if it still works for you, if you’re using it and can you tell me where should I put those files you uploaded to aur.archlinux.org? Thanks!

  8. 14. August 2017.
    1. part
    add this to „custom css“ in dashboard:

    .supporterPromotionContainer {
    display: none !important;
    }
    .homePageSection.section0 > div:nth-child(2) {
    display: none !important;
    }

    2. part

    /usr/lib/emby-server/bin/dashboard-ui/bower_components/emby-webcomponents/registrationservices/registrationservices.js(use CTRL+F to find stuff):

    change:
    var intervalMs=iapManager.getPeriodicMessageIntervalMs(feature);
    to:
    var intervalMs=0;

    and afterwards delete:
    if(intervalMs<=0)return Promise.resolve();

    then find "var seconds=11;" and change it to:
    var seconds=0;

    This will remove all branding of emby premiere except when you play that popup, but will not have to wait 11 seconds, instead 0=you can press "Continue" immediately. Hope I helped 😀 Feel free to correct me and ask anything, would be glad to hear from other people 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.