Jellyfin: WebOS (LG) client

Created on 15 Jan 2019  ·  80Comments  ·  Source: jellyfin/jellyfin

Describe the feature you'd like
As it seems, the Emby WebOS client has never been released as open source and thus is not part of the clients managed by Jellyfin.
Would anyone want to work on this?

Additional context
I'd like to also participate in Jellyfin (backend) development. As I'm using an LG TV as my main renderer, it is importantn for me that the Jellyfin community can maintain the client to support new features; and even more to have a way to make it work with the Jellyfin server if/when Emby decides to break it.

feature

Most helpful comment

Here is the repo: https://github.com/jellyfin/jellyfin-webos/

There are some related web issues that need fixing before we can submit it to LG though.
https://github.com/jellyfin/jellyfin-web/issues/306
https://github.com/jellyfin/jellyfin-web/issues/303

All 80 comments

I also use LG as viewer, though mine is kind of old (WebOS 2.0).
You can take a look at https://github.com/sleuth255/screenplay as alternative client, though (available in LG Appstore last time I checked).

Nice! So the next steps would probably be to

  • Fork it to Jellyfin
  • Rebrand it
  • Make it available

As the project doesn't include a license the first step will probably be to get in touch with the only maintenair of this project.
I'm also on WebOS 2.0 btw.

In case someone reads this and wants to write a new client from the ground up, look into React Native.

Has a lot of support for various platforms and it's the current plan for a new "universal" client from jellyfin-web to jellyfin-ios.

So you know I have tried to install https://github.com/sleuth255/screenplay but it is not compatible with my LG TV which is pretty recent (2017). I am using the emby client right know ... shame on me

As it seems, the Emby WebOS client has never been released as open source and thus is not part of the clients managed by Jellyfin.

Isn't most of the src shared with samsung client?

I wanted to chime in and say that I just loaded the sleuth/screenplay app from the LG Store and it's working with Jellyfin v10.1.0. It looks like it was recently updated on LG's store so it's still being developed on.

I've just updated the official emby app on my WebOS TV which broke support for jellyfin with the message "Please update your emby system". I'm just posting here so current users might not make the same mistake I did.

@theSuess Thanks for the warning. I just noticed the same on my 65B7P. It's version 1.0.15 in my case...
I decided to wait and found this thread in the process of researching user feedbacks/changelogs.
Let's hope the alternatives work because I find the emby app slow as hell.

Just tried the Screenplay webos app. It works but it's very barebone at this stage compared to the emby one. Minimal configuration and the player is very basic.
But I do like feature of allowing customizing the coloured LG remote buttons though. :)

@VoodooZ if your TV has ebmy app it most likely also has DLNA client, so you can stream to the TV from your phone/webbrowser. But unfortunately this is currently also partially broken due to https://github.com/jellyfin/jellyfin/issues/1078

@theSuess Same here. I tcpdumped the entire communication between LG Emy Theater App 1.0.15 with Jellyfin 10.2.2, maybe someone has time to fiddle with some settings (version number, exchange the String 'jellyfin' ;-) ... Edit: Dump shorted

GET /emby/system/info/public HTTP/1.1

HTTP/1.1 200 OK
{"LocalAddress":"http://192.168.0.3:8096","WanAddress":"http://12.345.67.890:8096","ServerName":"xxxxx","Version":"10.2.2","OperatingSystem":"Linux","Id":"1234567890abcdef"}

GET /emby/web/manifest.json HTTP/1.1

HTTP/1.1 200 OK
{
"name": "Emby",
"_comment": "This should be Jellyfin, but that breaks apps...",
"description": "Jellyfin: the Free Software Media System.",
"lang": "en-US",
"display": "minimal-ui",
"short_name": "Emby",
"start_url": "/web/index.html",
...

GET /emby/web/strings/en-US.json HTTP/1.1

HTTP/1.1 404 OK
Could not find file 'jellyfin-web/src/strings/en-US.json'.

@agilob Yeah, that's what I mostly used before switching from emby to jellyfin but DLNA by itself is kind of barebone and doesn't provide any movie/tv descriptions organizational features. It's like playing movies using a File Explorer in windows. And although the video player on the LG plays everything well (including HDR!), the rest is just too barebone for every use.
The emby app has decent customizability, beside being a bit slow on my OLED. That's why I resisted the temptation to ugprade to latest. But I love jellyfin so I'm hoping we'll eventually have our own app.
Keep up the excellent work guys...
ps: my past programming experience is mostly firmware so I can't help much but I'm good at testing (aka breaking) stuff so I'll test anything you guys put out.

@theSuess LG App 1.0.15 is working now again with jellyfin 10.2.2 (same problem as Android app):

Replace all occurences of the String "jellyfin" (case insensitive) in en-US.json, index.html and manifest.json with something else (e.g. "Emby" ...) and restart your server.

Did somebody find a changelog for 1.0.15? I couldn't find anything.

Last update - nginx serving 3 static files with substituted Strings - replacing the original files.
Nginx acts as a proxy for the rest. Works flawlessly and jellyfin can be left in original state + updates to newer jellyfin versions work out of the box.

@theSuess LG App 1.0.15 is working now again with jellyfin 10.2.2 (same problem as Android app): ...

@DpunktKpunkt Yes, you can do this, but be warned that your changes will be overwritten the next time you update Jellyfin.

Also, Emby can change their methods at any time. On top of that, while we’re not deliberately breaking compatibility, eventually we’ll have enough changes that it might not work anymore.

Otherwise, carry on 😄

@VoodooZ Not yet published: https://emby.media/community/index.php?/topic/49958-status-on-official-lg-app/page-21

According to official emby threads

  • Some issues with chapters, actors ...
  • Subtitle issues
  • Locking out jellyfin users ;-)
  • ...

@anthonylavado Yes, you can do this, but be warned that your changes will be overwritten the next time you update Jellyfin.

I know so I changed my nginx configuration.

Also, Emby can change their methods at any time. On top of that, while we’re not deliberately breaking compatibility, eventually we’ll have enough changes that it might not work anymore.

I expected such behavior sooner or later. Now that we are warned I won't update my Emby LG app that fast the next time - I'll also block some of the connection attempts of my TV to LG update servers as I'm afraid of my wife and kids updating the app :-)

Just got burned by the update :( Emby no longer works.

Using this in the meantime.

https://github.com/sleuth255/screenplay

That is actually a good choice, at least on my WebOS 2.0 Emby app lags as hell while this one works smoothly (albeit it has way less shiny features... but for these I could just use Web UI and use Screenplay for 4K content which WebOS 2.0 fails to play via browser).

For anyone tracking status of this, we got clearance and a license from the person that developed PlayZ for Emby. This is the code that ScreenPlay was based on.

Now we just need ScreenPlay to provide a license as well: https://github.com/sleuth255/screenplay/issues/4#issuecomment-481095888

Hi, @DpunktKpunkt I tried your "hack" it does not work.
You have another solution?
Jellyfin version 10.2.2
Emby Client LG version 1.0.15

Nginx serves four static files:

/emby/system/info/public (LocalAddress and WanAddress manually edited, as jellyfin publishes it's internal address and listening ports)
/emby/web/index.html (replaced all occurances of String "Jellyfin")
/emby/web/manifest.json (string replacement)
/emby/web/strings/en-US.json (just a copy of / symlink to en-us.json, LG app asks for that file with capital letters)

All other requests are passed trough to jellyfin (listening at 127.0.0.1 and a completely different port).

For information I use Jellyfin v10.2.2 docker.
I edit the files:

  • /jellyfin/jellyfin-web/src/index.html
  • /jellyfin/jellyfin-web/src/manifest.json
  • /jellyfin/jellyfin-web/src/strings/en-US.json

It does not work :(
I did not understand what to do with /emby/system/info/public

As my jellyfin server is also available beside the nginx server, i had to serve a static version of that public file with edited IP address an port informations from:

{"LocalAddress":"http://10.1.7.3:58096","WanAddress":"http://216.90.120.111:58096","ServerName":"rack1-blade7-vm3","Version":"10.2.2","OperatingSystem":"Linux","Id":"1234567890abcdef"}

to

{"LocalAddress":"http://10.1.7.3:8096","WanAddress":"https://emby.dpunktkpunkt.de/","ServerName":"rack1-blade7-vm3","Version":"10.2.2","OperatingSystem":"Linux","Id":"1234567890abcdef"}

(Not my actual external ip / uri)

At port 8096 my nginx server listens for incoming connections, serving that four files as described, all other connections are passed through jellyfin (listening at port 58096) and acting as reverse proxy.

As long as you use your server configuration only from your local network, you can use your local address as wan address.

... aaaand - after giving some hints another LG TV is playing movies with jellyfin again ;-)

A big one thanks to @DpunktKpunkt !

Here's a simple shell script to edit the files. Works fine executing inside a Docker container.

!/usr/bin/env bash

cd /jellyfin/jellyfin-web/src
sed -i 's/Jellyfin/Emby/g' index.html
sed -i 's/jellyfin/emby/g' index.html
sed -i 's/Jellyfin/Emby/g' manifest.json
sed -i 's/jellyfin/emby/g' manifest.json
cd strings
cp en-us.json en-US.json
sed -i 's/Jellyfin/Emby/g' en-US.json
sed -i 's/jellyfin/emby/g' en-US.json

Sorry but I'm a total Linux noob and can't get the script to work, could someone help me with this?

I pasted the script in a emby.sh file, than I opened the jellyfin console in unraid wrote "bash emby.sh" but I'm getting the error that the directory is not found. I tried looking for the .jellyfin folder myself but I also can't find it.

@ExXxtr3me

Sorry but I'm a total Linux noob and can't get the script to work, could someone help me with this?

I pasted the script in a emby.sh file, than I opened the jellyfin console in unraid wrote "bash emby.sh" but I'm getting the error that the directory is not found. I tried looking for the .jellyfin folder myself but I also can't find it.
You do this step by step.
.bash docker exec -it jellyfin usr/bin/env bash cd /jellyfin/jellyfin-web/src sed -i 's/Jellyfin/Emby/g' index.html sed -i 's/jellyfin/emby/g' index.html sed -i 's/Jellyfin/Emby/g' manifest.json sed -i 's/jellyfin/emby/g' manifest.json cd strings cp en-us.json en-US.json sed -i 's/Jellyfin/Emby/g' en-US.json sed -i 's/jellyfin/emby/g' en-US.json
Then restart!
Worked for the me first time i tried.
check the result with chrome that its correct.
view-source:http://IP:8096/web/index.html#!/home.html

Here is the repo: https://github.com/jellyfin/jellyfin-webos/

There are some related web issues that need fixing before we can submit it to LG though.
https://github.com/jellyfin/jellyfin-web/issues/306
https://github.com/jellyfin/jellyfin-web/issues/303

Hi, can someone please make a tutorial on how to install this on a LG TV? (LG C8 WebOS 4.1.0-5617).
Jellyfin already installed on my computer under Windows 10 but I don't know how to go further.
Also, when will Jellyfin be a downloadable app on the LG content store?
Thanks.

Hi @nightsax,
Our own official app is not ready for use. There are some bugs surrounding navigation that we need to fix for the time being. When it is ready, we will submit to the LG for approval. We don’t have a timeline yet on when that will be.

As for the other “fixes” in this thread, those are technically unsupported by us. You’d have to get help from another user to use one of those.

You may wish to try ScreenPlay, it might work with Jellyfin still.

Anyone already upgraded emby app for LG TVs to 1.0.17?
Will it still work with jellyfin (with the known workaround)?

You may wish to try ScreenPlay, it _might_ work with Jellyfin still.

Just updated ScreenPlay to v1.5.8. Still works using Jellyfin v10.3.7. :)

We are moving all feature and enhancement requests to our new Fider platform here. This new platform lets people vote on and better manage such requests.
This request now lives here.

Screenplay works, but my family is using emby client and it will be hard for them changing to a new client. (They needed ages getting familiar with emby)

Okay - latest news for emby app version 1.0.17 @ LG Smart TVs:

I accidently updated the app (I forgot to suppress update requests to lg servers) - and suddenly the app stopped working with jellyfin.

After a fast investigation the app only received the /emby/system/info/public file. So there must be a change. Diff of both files (the one serving beside a reverse proxy recommended some posts earlier) revealed that beside the version change the operating system is no longer in that json string.

After changing the version string to newest emby version 4.2.0.40 and removing the operating system the app worked again with newest jellyfin server :)

After changing the version string to newest emby version 4.2.0.40 and removing the operating system the app worked again with newest jellyfin server :)

I'm new to nginx and can't figure out the /emby/system/info/public file part.

I created a file called 'public' in the nginx static folder /config/emby and it has the only string {"LocalAddress":"http://192.168.3.16/jellyfin","WanAddress":"192.168.3.1","ServerName":"server", "Version":"4.2.0.40","Id":"1234567890abcdef"}

But the TV app says it can't find the server when I try to connect by giving it 192.168.3.16/jellyfin server address and leaving the port box as blank (otherwise, I can connect from my pc using the same address)

my nginx config file as below (the jellyfin docker runs on port 8097). Nginx static folder is specified as location /jellyfin/emby/system/info { root /config/emby; } Can anyone see what's wrong with my set-up?

```
server {
listen 80;
listen [::]:80;
server_name 192.168.3.16;
# You can specify multiple domain names if you want
#server_name jellyfin.local;

# Uncomment and create directory to also host static content
#root /config/emby
index index.html;

location / {
    try_files $uri $uri/ =404;
}

########
## Jellyfin

location /jellyfin {
    return 302 $scheme://$host/jellyfin/;
}

location /jellyfin/ {
    # Proxy main Jellyfin traffic
    # The / at the end is significant.
    proxy_pass http://192.168.3.2:8097/;

    proxy_pass_request_headers on;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $http_host;

    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
}

location /jellyfin/emby/system/info {
    root /config/emby;
}

For anyone interested - the solution was to replace location /jellyfin/emby/system/info { root /config/emby;} with location /jellyfin/emby/system/info/ { alias /config/emby/;} in the nginx config.

Anyone has done this for apache, yet?
No way to change version somewhere in a code file?

Sure is it possible to change the code ... but it's easier redirecting three http requests than recompiling or repackaging jellyfin. Using apache/nging as a proxy you can just install the .deb, .rpm or whatever package for your OS without changing the redirected files.

Config for apache is the same as for nginx. Create a virtual host, define a document root with the edited files, some proxy exclusions (ProxyPass /path/to/exclude/ !), then the reverse proxy to your jellyfin installation.

thanks, I made it work.

What I did:
/etc/apache2/ports.conf --> add Port 8097

apache vhost config:

<VirtualHost *:8097>
  ServerName kiwi
  DocumentRoot /var/www/jellyfix
#  ProxyPreserveHost On
#  ProxyRequests Off

# first rewrite for statics
RewriteEngine On
RewriteRule ^/emby/system/info/(.+)$ /public.html

# then proxy remaining...
ProxyPass               /  http://127.0.0.1:8096/
ProxyPassReverse        /  http://127.0.0.1:8096/

        ErrorLog ${APACHE_LOG_DIR}/jellyfix_error.log
        CustomLog ${APACHE_LOG_DIR}/jellyfix_access.log combined

</VirtualHost>

and then /var/www/jellyfix/public.html

{"LocalAddress":"http://[LOCAL_IP]:8097","ServerName":"[LOCAL_HOSTNAME]","Version":"4.2.1.0","ProductName":"Emby Server","Id":"[ID_LIKE_ORG]"}

where one has to replace the [] parts

Has a lot of room to make it more beautiful, but works like a charm :-)

Any chance someone has this workaround for a Windows setup? I wouldn't mind editing all the files for a static solution for the time being. Already tried the find/replace of all Jellyfin instances in index/manifest/en-US files, but stuck on the latest change needed (the version). Do not have a "public" file anywhere.

You have to setup a webserver (apache for example is available) to serve the static files for the webrequests

Tiny Server (first hit on google - http://tinyserver.sourceforge.net/ ) and a tiny open source proxy in front of Jellyfin/Tiny Server (Google search: FreeProxy or AnalogX looks promising) should do the job.

I just can't test them, I don't have any Windows installed.

You huys must be kidding - people asking for step by step instruction and you keep spiting very unclear instructions.

please make docker file with proxy

@StarvingDeveloper: And where do you come from? You blame me for not giving step by step instruction, when that is exactly what I provided?

Go home and shut up..your reply is by far the one helping least of all!

@totti4ever if your instructions would work we would not discussing right now. since your instructions very unclear people keep asking. and btw you even was too lazy to edit your post with correct and clear info. but even if you will do that, you dont state what OS that should work and etc.
so keep your advices what to do with my mouth for your self and have a nice day.

Okay, back to topic and ignoring opinions of people using copyrighted images as avatar.

@Hukuma1 Feedback is welcome, if one of the programs did the job.

@StarvingDeveloper Your replies here are not helpful and your tone is unacceptable. Keep it up and you'll be banned from participating.

Packaging and configuring proxies in our Dockerfiles is outside of our scope. This is an external option, especially in this particular case to work around Emby's bad-faith actions. If you require it for your specific configuration, someone will have to write instructions.

Please keep this on-topic with everyone acting in good faith.

Trying @totti4ever's method since he documented it somewhat.

Installed Apache for Windows 10 in default C:\Apache24

Found Virtual Host config file (httpd-vhosts.conf) in C:\Apache24\conf\original\extra and also in C:\Apache24\conf\extra. Edited both files just to be sure.

<VirtualHost *:8097>
  ServerName jellyfix
  DocumentRoot /var/www/jellyfix
#  ProxyPreserveHost On
#  ProxyRequests Off

# first rewrite for statics
RewriteEngine On
RewriteRule ^/emby/system/info/(.+)$ /public.html

# then proxy remaining...
ProxyPass               /  http://127.0.0.1:8096/
ProxyPassReverse        /  http://127.0.0.1:8096/

        ErrorLog ${APACHE_LOG_DIR}/jellyfix_error.log
        CustomLog ${APACHE_LOG_DIR}/jellyfix_access.log combined

</VirtualHost>

Then I create public.html and place it into C:\Apache24\www\jellyfix

{"LocalAddress":"http://MYIPADDRESS:8097","ServerName":"jellyfix","Version":"4.2.1.0","ProductName":"Emby Server","Id":"NOTSUREWHATTHISIS"}

That's where I am at now. No idea if the virtual hosts are being executed or anything. And I do not see any logs being created (jellyfix_error/access) so maybe it's not even executing the virtual host on 8097 port?

on Ubuntu you have to enable your virtual host with a2ensite nameofconfig.conf, no clue on how to do that on windows, sorry
Afterwards reload as written in the console after a2ensite

Will be back on Sunday night to maybe help a bit more

Just got it loaded. Apparently yeah, by default most of the modules needed were commented out. For anyone else following along you need to enable the following in your C:\Apache24\conf\httpd.conf:

Include conf/extra/httpd-vhosts.conf
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so

This gets me to run without errors, and even creates the log files jellyfin. However they are empty and I'm not sure what to try next. Anyway to try to access the public.html file from my computer to verify my TV is trying to connect via 8097 port as well?

Open the following URL in a browser, replace the up
http://ip:8097/emby/system/info/public

Connection refused. :/

Here's what my config looks like:

C:\Apache24\bin>httpd -S
VirtualHost configuration:
*:8097 jellyfix (C:/Apache24/conf/extra/httpd-vhosts.conf:24)
ServerRoot: "C:/Apache24"
Main DocumentRoot: "C:/Apache24/htdocs"
Main ErrorLog: "C:/Apache24/logs/error.log"
Mutex rewrite-map: using_defaults
Mutex proxy: using_defaults
Mutex default: dir="C:/Apache24/logs/" mechanism=default
PidFile: "C:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: SRVROOT=c:/Apache24

@joshuaboniface what clown could try scare somebody with throwaway account to ban him from dead project -.-

Alright fixed the connection refused.

Had to open port via listen

Listen 8097

http://ip:8097/emby/system/info/public = edited
http://ip:8096/emby/system/info/public = original

So now I can connect and see both files. It does not seem to be serving the edited one. Any ideas? mod_rewrite not going properly I guess, @totti4ever?

LG TV App 1.0.19 still works with Jellyfin and the changed files. Most annoying bug is fixed now: When starting a movie the nag screen is scrolled down, countdown now is visible again.

@DpunktKpunkt

I have am nginx with Public File running. Emby App says 'you have to Update emby server'
...
Version 1.0.20 is not working anymore.. any Updates for this?

I'm still on 1.0.19 ... Maybe updating the version number from 4.2.0.40 (?) to 4.3.0.30 (latest emby server version) will do the job. You find that string in /system/info/public

Got it working... But app shows ads and I have to wait a few seconds after starting the app.. "Pleas buy premium pass..."
And I have to login every time again after leaving the app. Using emby again for now.
Any updates on native jellyfin app for webos ?

Sounds not very promising. So better stay at version 1.0.19 for now

We are getting closer to a functional WebOS client but may be blocked from releasing a GPL 2.0 client on their store. Any information on the legality of that would be appreciated. @EraYaN was the one who originally notified me of the possible issue I think.

@EraYaN is the WebOS client similar to Cordova (bundles the web source in the client) or Expo (connects to a running web client) because the latter should be fine regardless.

@dkanada current wrapper in the works (in jf-webos) is like Expo I believe, partially because of GPL and partially because updating an app at LG store is slooooooooooooooow.

Version 1.0.20 is not working anymore.. any Updates for this?

Yesterday I updated LG app by accident - app version 1.0.20 is working flawlessly (app keeps login data) with Jellyfin 10.4.3

@Dielee - maybe something on your jellyfin server is misconfigured

Really? I was under the impression you needed a proxy to rewrite specific strings to get 1.0.20 to work with jellyfin? How do you run jellyfin?!

@VoodooZ Rewriting is still needed.
According to @Dielee 's reply upgrading to 1.0.20 would break something - despite of rewriting strings.

For anyone running on LinuxServer Jellyfin, the files to edit are located in /usr/lib/jellyfin/bin/jellyfin-web

Sadly, after editing them I still get the "You need to update the app" message :'( Any update on this?

@AlexKalopsia What version of the Emby app are you using?

Seems like I am on 1.0.24 :'(

Hi all,

I read with a great interest these exchance since I am using a local debian Jellyfin server and Emby on my LG Tv as a client.
Yesterday I have upgraded my server to 10.5.4 (because it can manage better the vaapi encoding on my server) and also my client Emby to 1.0.24. As expected it stop to work...
Previously I used Jellyfin 10.4.1 and Emby 1.0.19 with Nginx as reverse proxy configured like mentioned above.
I past all my night and day to fix it (reinstall, upgrades, reconfigure...) but Emby was not able to connect to the Jellyfin server.
Finally I have decided to install Emby on a sandbox in order to sniff packets exchanged on the network.
So I found 6 url requested by the client :
http://xxx.xxx.xxx.xxx:8096/emby/system/info/public
http://xxx.xxx.xxx.xxx:8096/emby/web/manifest.json
http://xxx.xxx.xxx.xxx:8096/emby/web/index.html
http://xxx.xxx.xxx.xxx:8096/emby/web/strings/en-US.json
http://xxx.xxx.xxx.xxx:8096/emby/users/public
http://xxx.xxx.xxx.xxx:8096/emby/Branding/Configuration
The last one is not important (empty by default on Emby server)
/user/public is different (some parameters are missing in the json delivered by Jellyfin) but it seems not important.
Others are mandatory.
Here the way I got it work (my jellyfin server is listening on 8096 and my nginx on 8097 for local and 8098 for external):
--> Jellyfin modifications :
I copied strings directory from Emby to a dummy directory on Jellyfin server (in my case /var/www/html/emby/str
I replaced the manifest.json (in /usr/lib/jellyfin/bin/jellyfin-web/) by the manifest of emby
I replaced the "jellyfin" strings in index.html by "emby"
I create a public.json file in /var/www/html/emby/system/info :
{"LocalAddress":"http://<xxx.xxx.xxx.xxx>:8097","WanAddress":"https://<server.domain.com:8098>","ServerName":"YoyoFlix","Version":"4.4.2.0","Id":"577c24e30893491eb97385eac975ff65"}
I retrieved the id from http://:8096/emby/users/public on jellyfin server (this is the ServerId parameter in the json)
--> Nginx configuration :

server {
    listen 8097;
    listen [::]:8097;
    server_name <server.domain.com>, <xxx.xxx.xxx.xxx>;
    index index.html;
    root /var/www/html/emby;
    try_files $uri $uri.html /index.html =404;

    location / {
        try_files $uri $uri.html /index.html =404;
        proxy_pass http://<xxx.xxx.xxx.xxx>:8096/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    location /emby/ {
        proxy_pass http://<xxx.xxx.xxx.xxx>:8096/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    location /emby {
        proxy_pass http://<xxx.xxx.xxx.xxx>:8096/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    location /emby/system/info {
        try_files $uri $uri/ $uri.json =404;
        alias /var/www/html/emby/system;
    }
        location /emby/web/strings {
        alias /var/www/html/emby/str;
    }
}

server {
listen 8098 default_server ssl;
    ssl_certificate /etc/letsencrypt/live/<server.domain.com>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<server.domain.com>/privkey.pem;
    server_name <server.domain.com>, <xxx.xxx.xxx.xxx>;

location / {
    proxy_pass http://<xxx.xxx.xxx.xxx>:8097/emby/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

        location /emby/ {
        proxy_pass http://<xxx.xxx.xxx.xxx>:8096/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    location /emby {
        proxy_pass http://<xxx.xxx.xxx.xxx>:8096/;
        proxy_pass_request_headers on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }

    location /emby/system/info {
        try_files $uri $uri/ $uri.json =404;
        alias /var/www/html/emby/system;
    }
        location /emby/web/strings {
        alias /var/www/html/emby/str;
    }
}

server {
listen 9999 default_server ssl;
    ssl_certificate     /etc/letsencrypt/live/<server.domain.com>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<server.domain.com>/privkey.pem;
server_name <server.domain.com>, <xxx.xxx.xxx.xxx>;

location / {
    proxy_pass http://127.0.0.1:9091/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

--> manifest.json :

{
  "name": "Emby",
  "short_name": "Emby",
  "start_url": "/web/index.html",
  "description": "Your media, your way.",
  "lang": "en-US",
  "related_applications": [
    {
      "platform": "android",
      "location": "https://play.google.com/store/apps/details?id=com.mb.android"
    },
    {
      "platform": "ios",
      "location": "https://itunes.apple.com/us/app/emby/id992180193?ls=1&mt=8"
    },
    {
      "platform": "web"
    }
  ],
  "icons": [
    {
      "src": "touchicon72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "touchicon114.png",
      "sizes": "114x114",
      "type": "image/png"
    },
    {
      "src": "touchicon144.png",
      "sizes": "144x144",
      "type": "image/png"
    }
  ],
  "display": "standalone",
  "theme_color": "#52B54B"
}

and I attached a zip for the content of the /var/www/html/emby/str directory

So now everything is fine on Jellyfin 10.5.4 with Emby 1.0.24 👍

str.zip

Should this really be closed? Is there a WebOS client available somewhere that I can't find? This issue and a few threads that link to it are on the top of google search results for jellyfin webos.

@XanderStrike This thread isn't the right place to keep track of progress, and became cluttered with unsupported workarounds.

The information you're looking for is at https://github.com/jellyfin/jellyfin-webos

🙂

It's way easier for most people changing reverse proxy settings than setting up a WebOS development environment.
Therefore I will support these 'unsupported' workaround as long as it is possible and a much simpler solution - unless there will be an official jellyfin app for LG TVs released.

@DpunktKpunkt ... That's what we're trying to do. It's just not ready yet though.

One of our Web team members describes it best here: https://forum.jellyfin.org/t/jellyfin-for-lg-webos/236/16?u=anthonylavado

Edit: To be clear, I'm not saying that people need to set up a development environment, I'm just saying that the other repository is where to track progress. Certainly it'll be the first place to find out that the client is available, followed by posts on all our chats and social media channels.

Also - We've started to see some instances of Emby changing out their API in the wild. Embycon is the first victim of this, and we're going to have to fork it. Workarounds may not last forever 😓

@anthonylavado Maybe I misunderstood your answer to @XanderStrike where he asked about an (official) WebOS client available. Of course progress for that (not yet published) client is kept best within it's git repository.

I also know that sooner or later a newer version of emby client won't work any longer with jellyfin, but as long as there are only String comparisons preventing a sucessful connection, this simple workaround will be 'the' solution for normal customers. I don't undestand why installing a WebOS app is such a pain in the a... and distributing non-signed precompiled IPKs is impossible, thanks to LG 😠

Was this page helpful?
0 / 5 - 0 ratings

Related issues

w1kl4s picture w1kl4s  ·  3Comments

anthonylavado picture anthonylavado  ·  3Comments

PlayxPE picture PlayxPE  ·  3Comments

maemigh picture maemigh  ·  3Comments

grravity picture grravity  ·  3Comments