Skip to content

Instantly share code, notes, and snippets.

@danielchc
Last active May 2, 2024 22:17
Show Gist options
  • Star 58 You must be signed in to star a gist
  • Fork 13 You must be signed in to fork a gist
  • Save danielchc/c159626485a08c76856b2d30ae457e04 to your computer and use it in GitHub Desktop.
Save danielchc/c159626485a08c76856b2d30ae457e04 to your computer and use it in GitHub Desktop.
Emby Premiere: ByPass Docker container

Emby Premiere ByPass Docker container

❗ All the information provided on this tutorial are for educational purposes only. I'm not responsible for any misuse of this information. If you like the app buy it

Table of Contents

Compatibility

Tested on version 4.8.0.75. Last update: January 28, 2024

This tutorial allows you to run Emby Premiere on:

Emby Premiere Local device Remote device
Web ✔️ ✔️
Mobile ✔️
Emby Theater ✔️ ?
Other devices

Getting Started

1. Local client bypass

Folder structure

mb3admin
├── certs
│   ├── emby.crt
│   ├── emby.key
│   └── ssl-dhparams.pem
├── Dockerfile
└── nginx.conf

Steps

  1. Create certs folder
mkdir certs
  1. Generate a self-signed certificate for the fake mb3admin.com server to use:
openssl req -x509 -newkey rsa:2048 -days 36525 -nodes -subj '/CN=mb3admin.com' -addext "subjectAltName = DNS:www.mb3admin.com, DNS:mb3admin.com"  -out certs/emby.crt -keyout certs/emby.key
  1. Download ssl-dhparams.pem
curl https://ssl-config.mozilla.org/ffdhe2048.txt > certs/ssl-dhparams.pem
  1. Create nginx.conf file
events {
  worker_connections  4096;  ## Default: 1024
}
http{
	server {
		listen 80;
		listen [::]:80;
		server_name mb3admin.com;

		return 301 https://mb3admin.com$request_uri;
	}

	server {
		listen 443 ssl http2;
		listen [::]:443 ssl http2;
		server_name mb3admin.com;
		
		# Generate with command above
		ssl_certificate /certs/emby.crt;
		ssl_certificate_key /certs/emby.key;
		ssl_session_timeout 1d;
		ssl_session_cache shared:SSL:10m;  # about 40000 sessions
		ssl_session_tickets off;

		# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /certs/ssl-dhparams.pem
		ssl_dhparam /certs/ssl-dhparams.pem;

		# intermediate configuration
		ssl_protocols TLSv1.2 TLSv1.3;
		ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
		ssl_prefer_server_ciphers off;

		location /admin/service/registration/validateDevice{
			default_type application/json;
			return 200 '{"cacheExpirationDays":3650,"message":"Device Valid (limit not checked)","resultCode":"GOOD"}';
		}

		location /admin/service/registration/validate {
			default_type application/json;
			return 200 '{"featId":"","registered":true,"expDate":"2099-01-01","key":""}';
		}

		location /admin/service/registration/getStatus {
			default_type application/json;
			return 200 '{"planType":"Lifetime","deviceStatus":0,"subscriptions":[]}';
		}

		location /admin/service/appstore/register {
			default_type application/json;
			return 200 '{"featId":"","registered":true,"expDate":"2099-01-01","key":""}';
		}

		location /emby/Plugins/SecurityInfo {
			default_type application/json;
			return 200 '{SupporterKey:"", IsMBSupporter:true}';
		}
		add_header Access-Control-Allow-Origin * always;
		add_header Access-Control-Allow-Headers * always;
		add_header Access-Control-Allow-Method * always;
		add_header Access-Control-Allow-Credentials true always;
	}
}
  1. Create Dockerfile file
FROM nginx
COPY nginx.conf /etc/nginx/nginx.conf
ADD certs /certs

2. Web client bypass

Folder structure

server
├── Dockerfile
└── patch
    ├── emby.crt
    ├── ilasm
    └── ildasm

Steps

  1. Copy emby.crt from ../mb3admin/certs to patch folder
cp ../mb3admin/certs/emby.crt patch
  1. Download ilasm and ildasm for your architecture and copy in patch folder.

You can get it here for x86_64 architecture : ilasm ildasm

You can get it here for arm64(Raspberry Pi 4) architecture. Just double click the binary file inside runtimes/linux-arm64/native and it will automatically download : ilasm ildasm

You can get it here for arm(Raspberry Pi <3) architecture. Just double click the binary file inside runtimes/linux-arm/native and it will automatically download : ilasm ildasm

Or you can download the deb package. You should unpack the .deb and find the executables in ./usr/bin/

  1. Create Dockerfile file
FROM linuxserver/emby:beta

ADD patch /patch

RUN chmod +x /patch/ilasm
RUN chmod +x /patch/ildasm
RUN mkdir /patch/tmp

WORKDIR /patch/tmp

RUN /patch/ildasm /app/emby/system/Emby.Web.dll -out=Emby.Web.dll

RUN sed -i 's#ajax({url:"https://mb3admin.com/admin/service/registration/validateDevice?"+new URLSearchParams(params).toString(),type:"POST",dataType:"json"})#Promise.resolve(new Response('"'"'{"cacheExpirationDays":365,"message":"Device Valid","resultCode":"GOOD"}'"'"').json())#g' Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js

RUN /patch/ilasm -dll Emby.Web.dll -out=/app/emby/system/Emby.Web.dll
RUN cat /patch/emby.crt >> /app/emby/etc/ssl/certs/ca-certificates.crt

3. Docker compose setup

Folder structure

.
├── docker-compose.yml
├── mb3admin
│   ├── certs
│   │   ├── emby.crt
│   │   ├── emby.key
│   │   └── ssl-dhparams.pem
│   ├── Dockerfile
│   └── nginx.conf
└── server
    ├── Dockerfile
    └── patch
        ├── emby.crt
        ├── ilasm
        └── ildasm

Steps

⚠️ It is mandatory that the server where the Emby server is running has a DNS configured that resolves mb3admin.com to the local IP of the nginx server.

  1. Edit your local DNS (Pihole, Adguard, router, bind...) and rewrite mb3admin.com with local IP. If you can't do this, you can edit the hosts file of each device you're going to use Emby.
  • Windows: C:\Windows\System32\drivers\etc\hosts
  • Linux: /etc/hosts
<your_local_ip_adress_here> mb3admin.com
  1. Create docker-compose.yml
---
version: "2.1"
services:
  emby:
      build: ./server
      container_name: emby
      environment:
        - PUID=1000
        - PGID=1000
        - TZ=Europe/London
      volumes:
        - ./config:/config
        - /media/tv:/data/tvshows
        - /media/movies:/data/movies
      ports:
        - 8096:8096
        - 8920:8920 #optional
      #dns: #Only if the dns of the local machine is different
      #  - <dns_ip> 
      restart: unless-stopped
  mb3admin:
      build: ./mb3admin
      container_name: mb3admin
      ports:
        - 443:443
      restart: unless-stopped
  1. Start containers
docker compose up -d

Apps

⚠️ You MUST do the above steps for this to work

Emby Theater

  1. Go to
  • Windows: %appdata%\Emby-Theater\system\electronapp
  • Linux: /opt/emby-theater/electron/resources/app/
  1. Open main.js with text editor
  2. After this
app.on('window-all-closed', function () {
    // On OS X it is common for applications and their menu bar
    // to stay active until the user quits explicitly with Cmd + Q
    if (process.platform != 'darwin') {
        app.quit();
    }
});

Add this:

app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
        event.preventDefault()
        callback(true)
})

Android

You DON'T NEED TO DO any extra steps to make it work on Android on local network. First time you open the app it will prompt a dialog to accept self-signed certificate. If this dialog does not appear you have done something wrong.

Dialog

If you want it to work outside the local network, you need to get a modded apk

Miscellaneous

Update Emby version

  1. Change to the folder where the docker-compose.yml file is
  2. Build a new emby image
docker compose build emby --pull --no-cache
  1. Restart container
docker compose up -d

Credits

Special thanks for helping me improve this information to:

  • @potatoru
  • @orangejuice
  • @OrpheeGT
  • @senhan07
@kinslayer1982
Copy link

kinslayer1982 commented Jul 22, 2023

I already have a Nginx reverse proxy set up for some time now that I am using.
To verify I've already tried it EXACTLY as stated in this guide on a different machine with the exact same result.

openssl s_client -servername mb3admin.com -connect mb3admin.com:443 2>/dev/null | openssl x509 -noout -dates
returns:
notBefore=Jun 17 12:12:23 2023 GMT notAfter=Jun 18 12:12:23 2123 GMT
just as expected. This matches the dates in the certificate I've already posted further up.

Edit:
Got it!
I replaced the part of the Nginx config from above to the settings I usually use:

ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_ecdh_curve secp384r1;

Now it shows the active lifetime premiere line in the server settings, now the android app asks to accept the certificate for the server.

@zaxx-lab
Copy link

What about Emby on TV? any news? I configured nginx with DNS as described, web, android, iOS are working well. I rooted my TV (LG WebOS 5), installed certificate to CA in OS, curl command works well now, but not Emby. It looks like Emby is not using certificates from OS. And there is no pop up window to accept certificate as it on Android or iOS apps.

@OrpheeGT
Copy link

On Emby for Android TV app, there is an option to disable SSL certificate check.
This option only exist on Android TV version.
Version : 2.0.83g
release date : 18 oct. 2022

Maybe you can find it to in WebOS app.

@Pilot-Test-94
Copy link

Hi ! I made it works with Emby synology x64 package too, and it is working fine.

Once Synology package installed

Emby.Web.dll to be modded is there : /var/packages/EmbyServer/target/system/Emby.Web.dll

There is also the same value in a plain text js file so I edited it too, not sure it was usefull: /var/packages/EmbyServer/target/system/dashboard-ui/modules/emby-apiclient/connectionmanager.js

CA certificate store : /var/packages/EmbyServer/target/etc/ssl/certs/ca-certificates.crt

So I just took patch lines from Dockerfile and ran them manually :

/tmp/patch/ildasm /var/packages/EmbyServer/target/system/Emby.Web.dll -out=Emby.Web.dll

sed -i 's#ajax({url:"https://mb3admin.com/admin/service/registration/validateDevice?"+paramsToString(params),type:"POST",dataType:"json"})#Promise.resolve(new Response('"'"'{"cacheExpirationDays":365,"message":"Device Valid","resultCode":"GOOD"}'"'"').json())#g' Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js

sed -i 's#ajax({url:"https://mb3admin.com/admin/service/registration/validateDevice?"+paramsToString(params),type:"POST",dataType:"json"})#Promise.resolve(new Response('"'"'{"cacheExpirationDays":365,"message":"Device Valid","resultCode":"GOOD"}'"'"').json())#g' /var/packages/EmbyServer/target/system/dashboard-ui/modules/emby-apiclient/connectionmanager.js

/tmp/patch/ilasm -dll Emby.Web.dll -out=/var/packages/EmbyServer/target/system/Emby.Web.dll

cat /tmp/patch/emby.crt >> /var/packages/EmbyServer/target/etc/ssl/certs/ca-certificates.crt

Before patching successfull, hardware transcode was failing :

>>>>>>  Hardware Decoders for h264
        [X] NVDEC GeForce GTX 1650 - H.264 (AVC)
        [X] CUVID GeForce GTX 1650 - H.264 (AVC)

>>>>>>  Hardware Encoders for h264
        [X] NVENC GeForce GTX 1650 - H.264 (AVC)

>>>>>>  Selected Codecs
Decoder Automatic software decoder


Encoder x264 Software Encoder
        Max Bitrate: 781 Mbit/s
        Color Formats: YUV420P, YUVJ420P, YUV422P, YUVJ422P, YUV444P, YUVJ444P, NV12, NV16, NV21, YUV420P10, YUV422P10, YUV444P10, NV20, GRAY8, GRAY10 - Bit Depths: 8, 10, 12, 14
        Profiles: Baseline Profile (Level 6.2), Main Profile (Level 6.2), High Profile (Level 6.2), High 10 Profile (Level 6.2), High 4:2:2 Profile (Level 6.2), High 4:4:4 Predictive Profile (Level 6.2)


>>>>>>  FindVideoEncoder - MediaType: h264, UseHardwareCodecs: True, HWA-Mode: Advanced

Warning: Hardware acceleration is not available as it requires a valid Premiere Subscription
Info    Checking: 'x264 Software Encoder'
Info    Check successful - selecting 'x264 Software Encoder'

>>>>>>  FindVideoDecoder - MediaType: h264, UseHardwareCodecs: True, HWA-Mode: Advanced

Warning: Hardware acceleration is not available as it requires a valid Premiere Subscription
Info    Checking: 'Automatic software decoder'
Info    Check successful - selecting 'Automatic software decoder'

After the patch :


>>>>>>  Hardware Decoders for hevc
        [X] NVDEC GeForce GTX 1650 - H.265 (HEVC)

>>>>>>  Hardware Encoders for h264
        [X] NVENC GeForce GTX 1650 - H.264 (AVC)

>>>>>>  Selected Codecs
Decoder NVDEC GeForce GTX 1650 - H.265 (HEVC)
        Adapter #0: 'GeForce GTX 1650' ComputeCapability: 7.5
        Max Bitrate: 117 Mbit/s - Frame Sizes: 144x144...8192x8192 - Width Alignment: 2 - Height Alignment: 2
        Color Formats: NV12, P010, P016 - Bit Depths: 8, 10, 12, 14, 16
        Profiles: Main Profile (Level 6.1), Main 10 Profile (Level 6.1), Range Extension (REXT) (Level 6.1)

Encoder NVENC GeForce GTX 1650 - H.264 (AVC)
        Adapter #0: 'GeForce GTX 1650' ComputeCapability: 7.5
        Max Bitrate: 234 Mbit/s - Frame Sizes: max 4096x4096 - Width Alignment: 2 - Height Alignment: 2
        Color Formats: NV12, P010, P016 - Bit Depths: 8, 10, 12, 14, 16
        Profiles: Baseline Profile (Level 5.2), Main Profile (Level 5.2), High Profile (Level 5.2), High 4:4:4 Predictive Profile (Level 5.2)


>>>>>>  FindVideoEncoder - MediaType: h264, UseHardwareCodecs: True, HWA-Mode: Automatic
Info    Checking: 'NVENC GeForce GTX 1650 - H.264 (AVC)'
Info    Check successful - selecting 'NVENC GeForce GTX 1650 - H.264 (AVC)'

>>>>>>  FindVideoDecoder - MediaType: hevc, UseHardwareCodecs: True, HWA-Mode: Automatic
Info    Checking: 'NVDEC GeForce GTX 1650 - H.265 (HEVC)'
Info    Check successful - selecting 'NVDEC GeForce GTX 1650 - H.265 (HEVC)'
Info    Tone Mapping would be desired, but hardware tone mapping is disabled

>>>>>>  Processing Plan
        Name                                        CanDoInHW  WillDoInHW  Reason                                                 
        NVDEC GeForce GTX 1650 - H.265 (HEVC)    >> True       True        Hardware Codec                                          
        VideoInput                               >> True       True        Matching hardware context                               
        ToneMapping (when possible)              >> True       True                                                                
        VideoOutput                              >> True       True        Hardware encoder                                        
        NVENC GeForce GTX 1650 - H.264 (AVC)     >> True       True        Hardware Codec                                          

>>>>>>  Video Processing Steps for [0:0]: H.265 (HEVC)
        Step                    HW-Context   Format       SW-Format           Size   Next
        HEVC                 >> CUDA         cuda         yuv420p10      3840x2160 >> superscale_cuda
        superscale_cuda      >> CUDA         cuda         yuv420p        3840x2160 >> setsar
        setsar               >> CUDA         cuda         yuv420p        3840x2160 >> 

My little issue is I had to run nginx mb3admin on another virtual machine as 443 port is already used by Synology itself ... if there a way to add a port in the URL check ? like mb3admin.com:8443 ? and so map Dockerfile port to 8443:443

Edit :

I found a workaround with Synology and port 443.

I uploaded emby.crt and emby.key as a new certificate inside Synology image

I created a reverse proxy with Synology GUI : image

and I gave the right certiticate to the new service : image

and my docker-compose.yml is only :

---
version: "2.1"
services:
  mb3admin:
      build: ./mb3admin
      container_name: mb3admin
      ports:
        - 8443:443
      restart: always

Logs from docker container running mb3admin nginx :

192.168.x.xxx - - [05/Jan/2023:11:31:47 +0000] "POST /admin/service/registration/validate HTTP/1.1" 200 63 "-" "-"
192.168.x.xxx - - [05/Jan/2023:11:31:51 +0000] "POST /admin/service/registration/validate HTTP/1.1" 200 63 "-" "-"
192.168.x.xxx - - [05/Jan/2023:11:31:51 +0000] "POST /admin/service/registration/getStatus HTTP/1.1" 200 59 "http://192.168.x.xxx:8096/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0"

image

I'm a beginner and am using Synology. Can you make a video tutorial? Thank you

@OrpheeGT
Copy link

I'm a beginner and am using Synology. Can you make a video tutorial? Thank you

no.

@4D5A90
Copy link

4D5A90 commented Aug 17, 2023

anyone succeeded with ARM ildasm ? (on rasp)

@luisenriquezbenet
Copy link

No logre que me funcione. No se mucho o casi nada de docker aunque logre armar todo lo de las estructuras de las carpetas. Pero solo llego hasta ahí. ¿Alguien pudiera ayudarme? Por favor

@sky456757
Copy link

sky456757 commented Oct 6, 2023

[emby 7/10] RUN /patch/ildasm /app/emby/Emby.Web.dll -out=Emby.Web.dll:
0.093 /bin/sh: /patch/ildasm: not found

@rikkwebreg
Copy link

rikkwebreg commented Oct 13, 2023

Hello to All,
There is a possibility to have a similar patch/workaround for the Webos app (LG TV) to not pass through web app ?
Thanks.

@OrpheeGT
Copy link

OrpheeGT commented Dec 8, 2023

@danielchc For Emby Theater on Linux.

The file to be modified is here on Ubuntu :
/opt/emby-theater/electron/resources/app/main.js

image

@danielchc
Copy link
Author

danielchc commented Dec 9, 2023

@OrpheeGT I just update with this information. Thank you!

@Dinesh-Shrestha
Copy link

Can anybody help me? I don't know if it's the right place to ask for it. But I wanted to edit Emby for Android app. I want to set my Emby server's remote address by default in the app so that the user can just download, install, and login with their account directly without having to enter the server's address manually. I have already tried it by editing manualserver.html and manualserver.js files which is also good but I want a direct method. Thanks.

@tranceyard
Copy link

#0 building with "default" instance using docker driver

#1 [emby internal] load build definition from Dockerfile
#1 transferring dockerfile: 704B done
#1 DONE 0.0s

#2 [emby internal] load metadata for docker.io/linuxserver/emby:latest
#2 DONE 0.8s

#3 [emby internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [emby 1/10] FROM docker.io/linuxserver/emby:latest@sha256:ffee0c94adadd3f5c3afc41a8e165d558e76b618a5184bfe9b38cf9c510aa148
#4 DONE 0.0s

#5 [emby internal] load build context
#5 transferring context: 126B done
#5 DONE 0.0s

#6 [emby 4/10] RUN chmod +x /patch/ildasm
#6 CACHED

#7 [emby 5/10] RUN mkdir /patch/tmp
#7 CACHED

#8 [emby 3/10] RUN chmod +x /patch/ilasm
#8 CACHED

#9 [emby 2/10] ADD patch /patch
#9 CACHED

#10 [emby 6/10] WORKDIR /patch/tmp
#10 CACHED

#11 [emby 7/10] RUN /patch/ildasm /app/emby/Emby.Web.dll -out=Emby.Web.dll
#11 0.420 error : File '/app/emby/Emby.Web.dll' not found or not a PE file

** CONNECTION LOST **

any idea about this error?

@danielchc
Copy link
Author

danielchc commented Jan 26, 2024

#0 building with "default" instance using docker driver

#1 [emby internal] load build definition from Dockerfile #1 transferring dockerfile: 704B done #1 DONE 0.0s

#2 [emby internal] load metadata for docker.io/linuxserver/emby:latest #2 DONE 0.8s

#3 [emby internal] load .dockerignore #3 transferring context: 2B done #3 DONE 0.0s

#4 [emby 1/10] FROM docker.io/linuxserver/emby:latest@sha256:ffee0c94adadd3f5c3afc41a8e165d558e76b618a5184bfe9b38cf9c510aa148 #4 DONE 0.0s

#5 [emby internal] load build context #5 transferring context: 126B done #5 DONE 0.0s

#6 [emby 4/10] RUN chmod +x /patch/ildasm #6 CACHED

#7 [emby 5/10] RUN mkdir /patch/tmp #7 CACHED

#8 [emby 3/10] RUN chmod +x /patch/ilasm #8 CACHED

#9 [emby 2/10] ADD patch /patch #9 CACHED

#10 [emby 6/10] WORKDIR /patch/tmp #10 CACHED

#11 [emby 7/10] RUN /patch/ildasm /app/emby/Emby.Web.dll -out=Emby.Web.dll #11 0.420 error : File '/app/emby/Emby.Web.dll' not found or not a PE file

** CONNECTION LOST **

any idea about this error?

They have moved the Emby.Web.dll file from folder, and made some change that has messed up the patch. You could try using a previous version.

In Dockerfile file change this line

FROM linuxserver/emby

to this

FROM linuxserver/emby:beta-version-4.8.0.66

@Nelson-E
Copy link

Nelson-E commented Feb 7, 2024

Hi, not sure if its by design, but plugin catalog is not working. Keeps loading forever.

Is there a way to make it work? Or is that a sign that I did something wrong in the implementation?

@OrpheeGT
Copy link

OrpheeGT commented Feb 7, 2024

Hi, not sure if its by design, but plugin catalog is not working. Keeps loading forever.

Is there a way to make it work? Or is that a sign that I did something wrong in the implementation?

image

@Nelson-E
Copy link

Nelson-E commented Feb 7, 2024

Hi, not sure if its by design, but plugin catalog is not working. Keeps loading forever.
Is there a way to make it work? Or is that a sign that I did something wrong in the implementation?

This is mine

Screenshot 2024-02-08 at 12 25 32 PM
Screenshot 2024-02-08 at 12 25 50 PM

@Nelson-E
Copy link

Hi, not sure if its by design, but plugin catalog is not working. Keeps loading forever.
Is there a way to make it work? Or is that a sign that I did something wrong in the implementation?

This is mine

Screenshot 2024-02-08 at 12 25 32 PM Screenshot 2024-02-08 at 12 25 50 PM

Hi, found out that the DNS was not 100%, and some queries were going outside. Fixed, now all working.

@senhan07
Copy link

@danielchc Maybe you can also add this for ARM64 build version, i have tested it and works fine on my RaspberryPi
Just double click the binary file and it will automatically download
ILAsm
ILDAsm

@danielchc
Copy link
Author

@danielchc Maybe you can also add this for ARM64 build version, i have tested it and works fine on my RaspberryPi Just double click the binary file and it will automatically download ILAsm ILDAsm

Thank you! I just updated the description :)

@mattiasghodsian
Copy link

I had to install the crt on host machine for curl to work

cd /usr/local/share/ca-certificates/ && sudo mkdir mb3admin && sudo chmod 755 mb3admin/

Copy over emby.crt to /usr/local/share/ca-certificates/mb3admin and update certs on the machine with

sudo update-ca-certificates

@shummo
Copy link

shummo commented Mar 1, 2024

HI.

Is it possible to run this on windows?

@thisIsLiving
Copy link

Hi, not sure if its by design, but plugin catalog is not working. Keeps loading forever.
Is there a way to make it work? Or is that a sign that I did something wrong in the implementation?

This is mine
Screenshot 2024-02-08 at 12 25 32 PM
Screenshot 2024-02-08 at 12 25 50 PM

Hi, found out that the DNS was not 100%, and some queries were going outside. Fixed, now all working.

What did you end up doing? I have the same problem with plugins not loading.

@mobihen
Copy link

mobihen commented Mar 7, 2024

Hi :)
I'm using a docker on linux config, all OK except that I can't find where is the main.js file
I have those 2 containers running:
77492f43828c emby-mb3admin
ad6a91895724 emby-emby

in neither of the there isn't /opt/emby... /opt folder is just empty
How can I proceed?...
Thanks!

@danielchc
Copy link
Author

Hi :) I'm using a docker on linux config, all OK except that I can't find where is the main.js file I have those 2 containers running: 77492f43828c emby-mb3admin ad6a91895724 emby-emby

in neither of the there isn't /opt/emby... /opt folder is just empty How can I proceed?... Thanks!

You only need do that step if you use Emby Theater desktop application

@mobihen
Copy link

mobihen commented Mar 7, 2024

ohhhh OK :)
so I don't see that ssl message, and I did follow those steps. another thing is that when I put the key, it loads forever.. but I don't see that message that I need premiere to use hw acceleration.
On my iPhone client, I still have that restriction for 1 minute, this should bypass that?

Thanks for the help and support :)

@OrpheeGT
Copy link

Just tested with [4.8.3.0] and patch still works :)

@mobihen
Copy link

mobihen commented Mar 29, 2024

Thank you for the project, a solution regarding SSL is to use your own domain together with cloudflare's zerotrust. I can watch on any device from anywhere, as far as I tested Versão [4.9.0.11]

how can ai acheive this?.. I also have a fomain with zero trust on Cloudflare with a tunnel

@iPleyGit
Copy link

Can anybody help me? I don't know if it's the right place to ask for it. But I wanted to edit Emby for Android app. I want to set my Emby server's remote address by default in the app so that the user can just download, install, and login with their account directly without having to enter the server's address manually. I have already tried it by editing manualserver.html and manualserver.js files which is also good but I want a direct method. Thanks.

did you manage to do it?

I would like to unlock so I can play more than 1 minute

@satheshshiva
Copy link

This works even without patching the .dll file. Tested on 4.8.5.0. Any reason why the below lines are needed?

RUN /patch/ildasm /app/emby/system/Emby.Web.dll -out=Emby.Web.dll
RUN sed -i 's#ajax({url:"https://mb3admin.com/admin/service/registration/validateDevice?"+new URLSearchParams(params).toString(),type:"POST",dataType:"json"})#Promise.resolve(new Response('"'"'{"cacheExpirationDays":365,"message":"Device Valid","resultCode":"GOOD"}'"'"').json())#g' Emby.Web.dashboard_ui.modules.emby_apiclient.connectionmanager.js
RUN /patch/ilasm -dll Emby.Web.dll -out=/app/emby/system/Emby.Web.dll

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment