wouterdebie / locast2tuner

Locast to Emby/Plex/Channels server
https://wouterdebie.github.io/locast2tuner/
MIT License
52 stars 8 forks source link

Add SSDP discovery #24

Closed wouterdebie closed 3 years ago

wouterdebie commented 3 years ago

--ssdp currently doesn't do anything. It'd be nice to get SSDP working for auto discovery in Plex and Emby.

wouterdebie commented 3 years ago

I did a little bit of research and the ssdp-rs library could be used, but the issue is that it requires rust nightly to build, since it requires feature(ip). Skipping this for a while. Keeping https://github.com/rust-lang/rust/issues/27709 here to track progress.

wouterdebie commented 3 years ago

Closing this ticket for now, as discovery is somewhat broken in Emby/Jellyfin/Plex imho. In locast2plex it seems SSDP is implemented to generally discover it as a media player and SSDP is not used to discover HDHomerun devices (see https://emby.media/community/index.php?/topic/92566-could-use-some-ssdp-help/&tab=comments#comment-1010964), but instead UDP datagrams are broadcast on port 65001. I toyed around with implementing the Silicondust HDHR packet protocol and stumbled upon Jellyfin's implementation. What they do here is only checking if the 2nd byte of the UDP datagram is a '3' and then connect to the sending host over HTTP on port 80/tcp, disregarding the BaseURL and LineupURL fields that the actual protocol specifies. Actual HDHR devices run on 80/tcp, but locast2tuner hardly ever runs there. Next to that, adding a tuner to the media servers is very easy and straight forward, so at this point, there is no need to implement this.