Use Jellfin in Nvidia Shield TV Pro (Android TV)

Hey there,

I have installed jellyfin + nextcloud on the start9 server. The Jellyfin server receives its media data from nextcloud. Now I want to access Jellyfin from different devices. This works from the browser and my Android/GrapheneOS device with the Address.local from the local LAN without any problems.

However, if I want to access Jellyfin from the Android TV device with the same local address, I get the error message: “Connection to server not possible, tried the following addresses:…”. Can someone explain to me which configuration is faulty?

Hi there!

Some clients, such as ‘Jellyfin for Roku’ and ‘Swiftfin’ (tvOS), are not configured to use Local DNS. As a result, these clients are unable to resolve private URLs like .local. I’m not sure about Android TV, but based on what you’re saying, it seems to be the case.

This will be addressed in StartOS v.0.3.6 by deprecating mDNS aliases and assigning every interface of every service a unique port on the LAN. This allows for the manual setup of VPN or clearnet connections.

Said that there is a workaround to make it function solely using your IP and port 8096. To achieve this, you need to follow this guide, but instead of exposing the Bitcoin or Electrs port, you need to utilize this configuration to expose port 8096:

cat > /lib/systemd/system/socat.jellyfin.service <<'EOL'
[Unit]
Description=socat Jellyfin forward
Wants=podman.service
After=podman.service

[Service]
Type=simple
Restart=always
RestartSec=3
ExecStartPre=/bin/bash -c "/bin/systemctl set-environment IP=$(ip route | grep default | awk '{print $9}')"
ExecStart=/usr/bin/socat tcp-l:8096,fork,reuseaddr,su=nobody,bind=${IP} tcp:jellyfin.embassy:8096

[Install]
WantedBy=multi-user.target
EOL

So you have two options. Wait for new StartOS or try to hack it yourself.

Hey Homer,

thanks for your feedback. I’ll see if i can get your suggestion implemented.

1 Like

It worked with the combination of the guide and your changes. Thank you for your help.
I took the following steps:

Login to StartOS over SSH and switch to the root user:

sudo -i

Run the following command to switch to the “chrooted” environment, any system changes made now will be persisted across reboots.

/usr/lib/startos/scripts/chroot-and-upgrade

Install socat

apt install socat -y

expose port 8096

cat > /lib/systemd/system/socat.jellyfin.service <<'EOL'
[Unit]
Description=socat Jellyfin forward
Wants=podman.service
After=podman.service

[Service]
Type=simple
Restart=always
RestartSec=3
ExecStartPre=/bin/bash -c "/bin/systemctl set-environment IP=$(ip route | grep default | awk '{print $9}')"
ExecStart=/usr/bin/socat tcp-l:8096,fork,reuseaddr,su=nobody,bind=${IP} tcp:jellyfin.embassy:8096

[Install]
WantedBy=multi-user.target
EOL
systemctl enable socat.jellyfin

Now exit the chroot environment. Note: this will reboot StartOS!

exit

LAN - Address

adjective-noun.local:8096 or ip-address:8096
2 Likes

Worked on my LG TV also. Thank you

2 Likes

Hey! Just a heads-up that Jellyfin version 10.9.7 is currently in beta testing and will be available soon. After updating, all your configurations should still work smoothly. Thanks for checking it out!