Skip to content

Run Jellyfin with SSTVProxy (YAP) on almost anything, with Docker!

r3dlobst3r edited this page Apr 24, 2020 · 2 revisions

With this guide you should be able to watch Smoothstreams with Jellyfin, Emby, or Plex running on anything from an old laptop to a Raspberry Pi 3, without installing any local software other than Docker. On Linux you can even passthrough an Nvidia card to the Docker container and get transcoding. I wont cover that here, but if there is interest, I can share. I did a guide like this on the Smoothstreams forum, bur for running everything on an Nvidia Shield. This ended up being frustrating because of the lack of control of the device. With Docker, we are able to easily move our docker setups to a new system with ease. So lets get started:

  • You need to get Docker. I will not cover that here, just google install docker on (your OS)
  • You need to get the Docker containers we will be using. The way that I do this is with Portainer. Portainer gives you a nice management webUI that makes it really easy, but you can do this with Docker compose, regular terminal commands, etc...

I am going to cover Jellyfin here, you can pretty much substitute Emby or Plex here, but Jellyfin is the FOSS Emby. It has Live TV and DVR for free. https://jellyfin.org/

Now it is time for the SSTVProxy (YAP) container, this ended up being a bit of trial and error for me.

  • Follow the setup guide at https://hub.docker.com/r/hcgonzalezpr/SSTVProxy (YAP)
  • Something not documented is when you are setting the env variables "ie: -e TZ for the timezone" you need to set YAP_IP to the IP that your container will have, so that SSTVProxy (YAP) can actually start, if this is not set you will have a blank for your IP. Docker will set ips in order of creation, so if you use

docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' | sed 's#^/##';

you will be able to see what IPs are currently allocated, and add the next in the list to YAP_IP

  • If you forgot to do this, that's okay, you can get to the shell of the container

docker exec -it "mycontainer" bash

and execute

vi config/proxy-settings.json

and set the IP in there. After you are done with that, restart the container and all should be good.

Note: you will NOT be able to use the YAP webUI in any meaningful way, since Docker will be bridging the connection to the containers and basically port forwarding from your device's IP to the Docker container's IP

So hopefully you now have a Jellyfin container and a YAP container, lets connect them and bask in the IPTV glory

  • Go to Jellyfin and go to the server settings and select "Live TV"
  • Create a new M3U device and set the IP to

YAP.IP:PORT/sstv/playlist.m3u8

  • Add the EPG as XMLTV device. To avoid any EPG update issues, I pull straight from Smoothstreams:

https://fast-guide.smoothstreams.tv/altepg/xmltv5.xml.gz

  • Let the guide sync, and then you should have Smoothstreams running on Jellyfin, all in one program Docker!

If you are looking to use this from anywhere, you need to look into reverse proxying. I may add this as a guide later, but you can do all of this in Docker as well. This is pretty well documented on the internet.