[HN Gopher] NymphCast - Open-source Chromecast Alternative
       ___________________________________________________________________
        
       NymphCast - Open-source Chromecast Alternative
        
       Author : nedp
       Score  : 204 points
       Date   : 2021-06-12 08:23 UTC (14 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | tmikaeld wrote:
       | Someone got really tired of there not being any good complete
       | cross platform streaming alternatives to Chromecast ;-)
       | 
       | That's a huge amount of effort between, love it!
        
       | gizdan wrote:
       | I'm curious. Usually when something like an open source
       | alternative to a product is highly sought after feature, someone
       | will often attempt to reverse engineer the apis or something
       | mostly so it works with the current ecosystem. What has made
       | Google Cast so resistant to this? I can't imagine the protocol
       | being a complex one. Does anyone know?
        
         | ghostly_s wrote:
         | from what I've heard it's actually quite complex, using
         | different "streaming" strategies (often not streaming from the
         | source device at all, but instead loading the desired content
         | directly on the chromecast device) depending on the nature of
         | the content.
        
           | monocasa wrote:
           | IIRC there's also a per sink device signature verification
           | scheme inherent in the protocol as the devices check in to
           | Google's backend that makes it nearly impossible to just spin
           | up arbitrary sink devices. Google has to have known about the
           | device's public key before they'll talk to it, and it
           | requires their backend fundamentally to work. That key
           | association is probably a manufacturing step that we're not
           | privy to.
        
       | StavrosK wrote:
       | This is excellent, finally we'll be able to cast to Raspberry Pis
       | and other Linux-running computers. Well done!
        
         | ekianjo wrote:
         | You didn't really have to wait, you could do the same thing
         | with Jellyfin already and any Linux device on your network
         | using jellyfin-mpv-shim
        
           | StavrosK wrote:
           | Does that expose a Cast device? That's very interesting.
        
             | kokx wrote:
             | It doesn't expose a Google Cast device. It only allows
             | streaming media from a Jellyfin instance to that device.
        
               | StavrosK wrote:
               | Oh, then it's very different from what I want...
        
               | icebraining wrote:
               | Check out Kodi plus the TubeCast add-on. I can cast stuff
               | from the official YouTube app for Android into my
               | Raspberry.
        
               | kingosticks wrote:
               | What exactly do you want? If you want to have some device
               | appear in the target list when using google cast in apps
               | then I think you are stuck waiting for Google to (never)
               | open that up.
               | 
               | Edit: although maybe some apps still support DIAL and
               | that might be an option.
        
           | forgotpwd16 wrote:
           | This is basically a reverse Jellyfin. The server is the one
           | playing the stream and the client the one providing it.
        
         | akent wrote:
         | Will we? Seems like it's an entirely different protocol from
         | Google Cast?
        
       | matthewfcarlson wrote:
       | Completely unrelated but I would love a CLI/GUI type tool on my
       | laptop that I could control a youtube client with. Most youtube
       | clients on smart TV's, consoles, and streaming sticks support
       | being controlled by a phone. I'd love to control it from my
       | laptop instead of solely my phone.
        
         | dragonwriter wrote:
         | If your stick uses Google Cast, one app meeting that
         | description is "the Youtube website".
        
           | matthewfcarlson wrote:
           | I think only if you're using the Google Chrome browser...
        
       | alias_neo wrote:
       | There is clearly a lot of misunderstanding in the comments here.
       | I feel like the repository is causing confusion by referring to
       | Chromecast.
       | 
       | This has nothing to do with Chromecast, nor does it have anything
       | to do with Google Cast, nor will it let or help you "Cast"
       | anything like YouTube to your Cast capable devices.
       | 
       | What this is, is an (early) software implementation to stream
       | media from a control device (your phone etc) to an SBC or other
       | machine running the server code, and connected to a TV or
       | monitor. It appears that the media must be resident on the
       | controller and not the server.
       | 
       | It looks like they're aiming for multiple targets with "good"
       | synchronisation, whatever that means.
       | 
       | Looks like a nice toy project for someone but there seem to be
       | far more mature tools out there, at least for multi-room audio.
       | 
       | For video, if you don't need sync, Jellyfin (libre Emby fork) is
       | quite capable.
        
         | akvadrako wrote:
         | You say this has nothing to do with Chromecast and then
         | describe the #1 use-case for casting, to play movies that sit
         | on your device (phone, laptop) on your TV.
         | 
         | Jellyfin, based on their website, looks like just another media
         | server.
        
           | xenomachina wrote:
           | > the #1 use-case for casting, to play movies that sit on
           | your device (phone, laptop) on your TV
           | 
           | Is it really, though? I've used "casting" many times, and it
           | was always to cast something that was "on the cloud", never
           | something that was on my phone, to my TV. For example, it's a
           | lot easier to find a specific YouTube video with my phone
           | than with my TV remote.
        
             | stuaxo wrote:
             | I'm guessing this won't work for the "cast" button from my
             | computer or from apps or websites on my phone like Youtube,
             | Vimeo or All Four (the uk channel 4 app).
             | 
             | I like what they've done, but Google has really locked this
             | down unfortunately.
        
             | akvadrako wrote:
             | Well NymphCast does that too. The 2nd feature mentioned in
             | their README:
             | 
             |  _> Streaming online content by passing a URL to the
             | server._
        
               | ghostly_s wrote:
               | I suspect what they mean is digging around in the source
               | of a webpage to find the content url, hoping it's not
               | obfuscated or DRM'd, and passing that; not "passing a
               | URL" in the sense of streaming arbitrary web pages as
               | Chromecast is able to do.
        
               | caslon wrote:
               | Why wouldn't it be able to do both? youtube-dl has solved
               | that exact use-case for years.
        
           | stormbrew wrote:
           | The #1 use case for 'casting' with a chromecast in my house
           | is absolutely to stream from online services to my tv or
           | monitor while controlling it from a device that would melt or
           | run down its battery if it tried to act as a go-between for
           | the data, or had to potentially re-encode data from its
           | storage to what the tv can support.
           | 
           | That's still the niche that chromecast fills better than
           | anything else at a price point that means you can buy one for
           | every tv and monitor in your house for the cost of a more
           | fully featured device with storage on one or two tvs.
           | 
           | Sadly google seems to hate the chromecast and even their own
           | software gets worse at casting to it every year.
        
       | mongol wrote:
       | Is this a completely independent effort or is it piggybacking on
       | DLNA?
        
         | MikusR wrote:
         | It has nothing to do with DLNA or Chromecast. It's pure Not
         | Invented Here stuff.
        
       | tucosan wrote:
       | Now, that's an esoteric choice of language. I'm curious about the
       | rationale to chose Angelscript over the more common scripting
       | languages.
        
         | breakingcups wrote:
         | I've only ever seen Angelscript used in an extension to a
         | 22-year old game. AFAIK it's purely interpreted and mostly just
         | very simple to integrate. (And somewhat more secure by default
         | because it's so simple and interpreted)
         | 
         | Any serious product using it which depends somewhat on
         | performance should probably integrate V8 or something similar
         | instead. The Angelscript language is very similar to Javascript
         | etc. but so niche that you'll keep having to look stuff up.
        
           | tucosan wrote:
           | It will also be more difficult to find contributors.
        
         | solarkraft wrote:
         | IIRC Maya has responded to this with something along the lines
         | of "It's a pet project and I like AngelScript", which I'd deem
         | fair.
        
       | bronco21016 wrote:
       | As many other commenters point out, I'm confused what this
       | actually does?
       | 
       | Does this allow me to turn a SBC into a Chromecast? Meaning, do I
       | install this on a SBC, or any Linux machine, and magically I can
       | cast YouTube to it from my phone?
       | 
       | The README could use a quick FAQ of what this repo can and cannot
       | do as it relates to the Chromecast/Google Cast ecosystem since
       | they're using that brand name in the description.
        
         | sofixa wrote:
         | As far as i understand it, no. It allows to turn hardware
         | running Linux ( like a Pi) into a Chromecast ( the dongle), to
         | which you can stream video/audio from another device ( but not
         | compatible with Google's protocol, so you can't click on
         | YouTube's cast button to use it, you need extra software)
        
           | bronco21016 wrote:
           | So it doesn't really turn it into a Chromecast. That's the
           | language that makes it confusing.
           | 
           | It turns it into a device that can receive control and
           | streams from another device using software specific to this
           | implementation.
        
           | encryptluks2 wrote:
           | So then this is the same as Kodi, Plex, etc
        
             | akvadrako wrote:
             | No, it operates just like a Chromecast, but with a
             | different protocol.
        
       | zibzab wrote:
       | But this is still dependent in Google hardware and firmware?
       | 
       | To be more specific, I will need to "onboard" a fresh chromecast
       | into my network with Google Home before i can use this?
        
         | ekianjo wrote:
         | > software solution which turns your choice of Linux-capable
         | hardware into an audio and video source for a television or
         | powered speakers
         | 
         | That's literally the first line in the repo description.
        
         | worldsayshi wrote:
         | Where does it say that?
        
       | taylorius wrote:
       | Sounds cool, though "nymph" gives it a vaguely erotic vibe, which
       | might not be what you're after.
        
         | _pmf_ wrote:
         | I think the "cast" makes the association with fly fishing
         | obvious enough.
        
           | Exuma wrote:
           | That is in no way obvious, lol.
        
             | ohyeshedid wrote:
             | I would say it's more obvious than confusing it with
             | something erotic.
        
       | zozbot234 wrote:
       | https://github.com/albfan/miraclecast might be an interesting
       | alternative, based on the widespread Miracast standard. No idea
       | how up-to-daye that codebase is, though.
        
       | squarefoot wrote:
       | I don't understand the point behind "casting" something in a home
       | environment, unless one keeps the client unsupervised. It could
       | make sense in contexts where say one or more unsupervised signage
       | displays are connected to small embedded boards that throw at the
       | screens whatever feed is being streamed to them. That would be
       | ok, but what about home environments?
       | 
       | Let me give an example. I keep all my media in a home NAS
       | (Nas4Free plus RAID etc.) as simple files (mpeg4 etc.). My home
       | TV is connected to a RPi running Kodi that accesses the file list
       | through SMB/NFS shares, as every other computer in the house. If
       | I want to watch a movie, I use Kodi to navigate the file list
       | until I find the relevant file and play it. There are no
       | downsides since it's a one click solution, and the pretty good
       | CEC support by Kodi and the RPi makes it a breeze (one single
       | remote for both the TV and Kodi) but this way the file is being
       | transcoded by the player (the RPi) and not by the streming
       | hardware, which would be an often less powerful platform like a
       | NAS. This also means the streamed content travels as compressed
       | packets through the network, in fact loading it a lot less than
       | for example it would happen when streaming it after transcoding.
       | As a result, I could have like 10 machines watching each one its
       | own Full HD movie on a home wired network, which would be
       | unthinkable if the poor NAS had to transcode all of them on the
       | fly, not to mention the much heavier network load.
       | 
       | So the question is: what's the point in streaming in home
       | environments rather than navigating file shares?
        
         | joshtynjala wrote:
         | If I discover a new movie trailer on my phone, and I want to
         | watch it on my bigger TV screen, it's much easier to
         | immediately cast the video that I've already pulled up than to
         | try to find the same video with my TV remote.
        
         | sbochins wrote:
         | If you have multiple smart TVs in your house, it's simpler to
         | have a single media server and connect to it via the smart TV
         | software.
        
           | squarefoot wrote:
           | My example was with each Smart TV / PC / Media Box, etc.
           | watching _different_ programmes at the same time from the
           | same NAS. By treating everything as a file it is being sent
           | as compressed therefore not loading excessively the NAS or
           | clogging the network with much higher bitrates.
        
         | seized wrote:
         | Proper security, phones on a different VLAN.
         | 
         | No Bluetooth nonsense with notification sounds.
         | 
         | Better sorting via software like Plex or something else, then
         | casting that stream to something else.
         | 
         | Casting doesn't mean transcoding either.
         | 
         | Casting to a group of devices that stays in sync.
         | 
         | My Chromecast Audios will be online for a very long time.
        
       | jrm4 wrote:
       | I thought this might have been the thing I'm looking for;
       | relatively painless screencasting or sharing from a local (Linux)
       | PC to another device on the network (e.g. Raspberry Pi + Big
       | Screen TV). The use case isn't necessarily full motion video +
       | audio, but more for business/conference room type use, where
       | response time isn't wildly important, since it's something like a
       | whiteboard.
       | 
       | Monitor-over-network would be great too, but not a requirement;
       | I'm aware that solutions exist, but so far everything I've tried
       | has been _painfully_ clunky.
        
       | saagarjha wrote:
       | Past discussion: https://news.ycombinator.com/item?id=22457351
        
       | soul4krsna wrote:
       | Terrible name. Nympho thoughts any one?
        
       | forgotpwd16 wrote:
       | Although often confused, the term Chromecast refers[0] to the
       | product brand. The protocol is called[0] Google Cast. This is an
       | open-source alternative to the software and the protocol (as it
       | isn't a Cast implementation) rather the hardware.
       | 
       | [0]: https://developers.google.com/cast/glossary#c
        
       | _Microft wrote:
       | Just bringing this open source audio streaming solution also to
       | your attention. It says that it supports Snapcast, Spotifyd /
       | Spotify Connect, Shairport Sync / AirPlay and can act as a
       | PulseAudio Sink:
       | 
       | https://cast.otter.jetzt/
       | 
       | According to one of its creators, the device can be ordered
       | partially pre-assembled for $10 and requires additional parts
       | worth another $10 to be soldered on by yourself.
       | 
       | https://twitter.com/JanHenrikH/status/1374098303470682113
        
       | kingosticks wrote:
       | Technically it might be an "open-source Google Cast" alternative
       | but it's definitely not an "Open-source Chromecast" alternative.
       | If it was, I would be able to open any app that supports Google
       | Cast and control a device running this software like I can
       | control a Chromecast. But it doesn't support that, and that's
       | what most people are expecting/wanting. It might be a great
       | project but it's not able to provide the tight integration that
       | makes Google Cast so good.
       | 
       | And this title is misleading.
        
         | akvadrako wrote:
         | On the contrary, an open alternative to Google Cast is very
         | welcome and much better than a Chomecast clone. The protocol is
         | not very good so trying to re-implement it is just asking for
         | trouble.
        
           | crispyporkbites wrote:
           | Yes but it's unusable in 99% of apps, so it doesn't matter
           | how technically brilliant it is
        
             | akvadrako wrote:
             | Chromecast is also unusable for 99% of apps. On Linux,
             | there is no reliable way to use it to play movies with
             | embedded subtitles on your TV. Probably because the
             | protocol is too hard to implement.
        
               | oneplane wrote:
               | Yet Linux is not 99% of the apps, 99% of the apps are the
               | Android and iOS apps used by billions of users.
        
           | colordrops wrote:
           | And even better would be to support the Google Cast protocol
           | to increase adoption while offering a roadmap to transition
           | to a better protocol.
        
             | adinisom wrote:
             | Unfortunately that's not possible for receivers barring a
             | break in crypto. Receivers are authenticated by the sending
             | devices:
             | 
             | https://blog.oakbits.com/google-cast-protocol-receiver-
             | authe...
             | 
             | An alternative Chromecast receiver needs cooperation from
             | the sender one way or another.
        
       ___________________________________________________________________
       (page generated 2021-06-12 23:00 UTC)