150 comments

[ 0.24 ms ] story [ 131 ms ] thread
There was formerly a Google-made addon for this. Now it's integrated into Chrome. There are two features here:

- Chrome can stream its renderer output to a 'Google Cast'-supporting stream sink, like a Chromecast. This option is buried in the hamburger menu.

- websites can be coded against a JS library that's implemented by Chrome [1][2]. Then the 'stream to...' menu is shown as the 'cast' icon near the address bar.

[1] https://developers.google.com/cast/docs/reference/chrome/

[2] https://developers.google.com/cast/docs/chrome_sender

All in an effort to reduce its memory footprint...
It's not all about memory footprint; it's sometimes about just working for the grandmother who buys a $35 Chromecast from Best Buy.
Couldn't they just have the extension pre-installed with the ability to remove?
Then you get people hating "bloatware" and complaining.
And sometimes it's not all about that either, but about vendor lock-in.
Sometimes "making it just work" and "avoiding vendor lock-in" are incompatible. Plus, it's literally called "Chromecast."
The device itself runs chrome. So I don't think of the sender as the influence in the name. Plus chrome has a good mind-share which helps marketing.
Is it vendor lock in if you're casting services like Netflix etc? You can use many different devices to watch your content. We've had a Chromecast since the first version and it has always worked well (with the exception of Netflix lately). I recently purchased a Sony Blue Ray player and was surprised to find Chromecast built in to that.
What he's referring to, is that without the extension, other Chrome-extension-compatible browsers are not anymore usable for Chromecast. You now have to use Chrome.
Assuming they drop support for the Chromecast add-on, doesn't this effectively eliminate the ability for other browsers that can use chrome extensions to cast to a Chromecast? (e.g., Opera, Vivaldi, maybe Chromium)?
That is only going to be a problem if they do not upstream the changes to Chromium.
That's actually a very important question. Is Google opening up casting in the widest sense to 3rd party clients? I know there was some push in this direction when it was launched ( https://en.wikipedia.org/wiki/Discovery_and_Launch ) but I seem to recall hearing that there is now more to Google Cast than DIAL. Does anyone know how interoperable this all is?
DIAL/SSDP is not used anymore (except for legacy apps, like the Youtube one). Now, this is mDNS (good) and proprietary protobuf protocol. There is no documentation for this but several people have reversed-engineered the stuff from the source code of Chromium and the extension to get third-party client (third-party Chromecast is not possible since there is a signature mechanism for clients to check). I have done such an implementation here: https://github.com/vincentbernat/nodecastor (but not really maintained).
That's troubling. Has anyone got any sense about whether interoperability is merely neglected or whether there's strategic reasons for its abandonment (either from Google itself or via pressure from partners with 'premium content')
Shit, I was going to write a DIAL receiver for Windows so I could "share" a YouTube video from my phone and have it start playing immediately.

Hopefully youtube.com/tv still works.

So now its called Google Cast, not Chromecast?
Google Cast is the technology, Chromecast is the device. ¯\_(ツ)_/¯
At first, it was all Chromecast.

The API was even called the Chromecast API.

They changed it to Google Cast last March [0].

[0] http://www.techtimes.com/articles/143386/20160323/google-reb...

The person said the device was still called Chromecast.

https://www.google.com/intl/en_us/chromecast/

https://www.google.com/intl/en_us/chromecast/tv/#?discover

Google is still branding the device as Chromecast and still heavily using the term in the marketing for the actual device.

Also, other companies make Google Cast supported hardware, such as the NVidia Shield.

https://shield.nvidia.com/blog/what-is-googlecast-chromecast

I understood that.

I was just clarifying for obilgic by explaining that he wasn't mistaken until more recently when Google rebranded the API.

(comment deleted)
> So now its called Google Cast, not Chromecast?

The apps and technology have been called that for a while; Chromecast is one of the receiver devices that supports the technology (there are others.)

Looking at WireShark last night Google Cast was reaching out to Google every 30 seconds. I narrowed it down to my web browser, removing it from the toolbar stopped it.
Assuming some of the logic for determining whether a page is castable (or what options to offer) reside server-side then I can imaginez why this might be necessary. However it also might be poor coding.

Was it onerous in terms of resources - or was there any hint of nefarious behaviour? My suspicion is many people will assume the latter despite the rather neutral tone of your post. Therefore I'd be interested to hear more detail.

I have been interested in the Hacking Team leak of spyware and hacking tools. I found in the documentation taken from the hacking team website that when you run Wireshark their spyware looks for that and won't install. I have heard of wireshark before but never tried it, once I had it I saw that google chromecast going on it is like a beacon telling Google my ip address over and over again. Seemed like a bad thing. Maybe not all totally logical, why bother, but being logical all of the time is boring!
So will it work on Chrome for Android? It's not been available there yet.
It has been available for quite a while, but only for videos (they added a button in the video player).

If you want to cast a tab, while it's not the optimal solution, you can cast your whole screen using the quick settings tile.

If this means it's in the Chromium source tree, I'm very happy. Then there is an open source Google Cast client maintained by Google proper.

And it looks like that's exactly what they've done. https://cs.chromium.org/chromium/src/media/cast/?q=cast&sq=p...

No more needing to guess how to implement non-deprecated versions of the API when integrating with other players.

This part is here since quite some time (since the introduction of the "new" protocol, two years ago). It is not the complete picture since it's only the low-level view (mDNS and protobuf). It's not sufficient to build a client since you still have to figure out the content of the messages. The gap is the extension that was provided until now (as a minified JS).
Ahh; that explains why performance wasn't awful all this time.
It seems like Cast would be an inferior way to stream HD content to a TV for many users. If the source host is wifi-connected, you're tripling the amount of traffic that's passed through your access points: once from the content source (e.g. Netflix) to the laptop via the AP, then presumably from the laptop to the AP and back out to the Chromecast device.
This is not the case for apps such as Netflix, YouTube, and HBO. They all stream directly to the Chromecast from your internet connection, your browser or app on your phone just acts as a remote.
That's not how it's done. That's a complete fallback.

For Netflix what happens is your browser tells the cast device what URL to go to to play the content. Your browser does not need to steam the video to the cast device. It can fall back to that so you can cast anything, however.

This is true but there are a couple caveats, one being the device playing the content has to already be authenticated properly.

You cannot simply go near a Cast-enabled device and start playing your stuff, unless I am mistaken. If that is the functionality then that would be terrifying as I would be handing my credentials to this Cast-enabled device.

Not sure if it works with desktops/laptops, but there is a guest mode (disabled by default) in the settings (on the Android app) that allows anyone to add thing sto the player queue.

Only app I know for sure it works is Youtube. I'm not sure what other app handles it, maybe GPM and Spotify.

Actually this is how the chromecast works. You never interact with the chromecast directly to configure your Netflix account for example. I assume (hope) they send a URL to the movie it should play with a one-time token to access the movie source.
It is inevitable that plaintext username/password will be used. This is why I am terrified.
Most likely it isn't a username/password but an authenticated URL... https://foo.bar.netflix.com/(UUID-OR-SIMILAR) where that is resolved to a resource, and the user authentication is valid for X hours from start...

There's no need for a plain username+password to be used... it's just an authentication token as the resource or part of the url.

They really just need to send the Netflix cookie from your browser to the chrome cast. But I don't think they do that, like sarnowski said, i believe they put some data in the url thats like a 1 time key for your account and the video you want to watch.
Are you really terrified that your Netflix username and password may be revealed? It's a bit much.
Don't people check their assumptions before asserting them as facts?

I don't know why it's a terrifying concept either.

Anyway, Chromecasts can be configured to allow guest access at the device level. Phones that are even on distinct networks can still guest-Chromecast via ultrasonic noises emitted by the Chromecast. It's pretty nifty. It's nice to have a bunch of people over and have a shared YouTube queue. For more details (https://support.google.com/chromecast/answer/6109297?hl=en) expand the section "How do mobile devices connect with a Chromecast in guest mode?".

> It seems like Cast would be an inferior way to stream HD content to a TV for many users. If the source host is wifi-connected, you're tripling the amount of traffic that's passed through your access points:

That's a fallback method, but the expected methods for most sources is that the you send the Google Cast receiver (chromecast, etc) a URL for the media, and it goes and streams it directly.

Which sadly is default/enforced behaviour. One day I downloaded something on Play Movies, and moved to another location that has Chromecast connected via a 3g access point. I expected the movie to play from the cached file, but no - it just silently downloaded a new version. Most expensive streaming session ever...
I don't know if it's related but chromecast was a bit buggy. Reboot level buggy.
videostream mobile and chromecast for the win.
I have a Roku and casting YouTube and Netflix works great.

One caveat is Netflix doesn't autoplay to the next episode after casting a video.

I really wish it had Google Play Music though.

Google Play Music support was one of the main reasons I added a Chromecast to my setup. It's a frustrating gap in the wide variety of content that Roku can handle.
Can't say I'm surprised. It's built into android now too, and the cast extension has been showing a lot of change recently.
Looking forward to some standardization/interop coming out of this. There's Presentation API[1], which spec's a web API, but that still leaves open the question of coordination between a controller (browser) and display. Chrome's working on it[2], and I'd guess would target Cast, so web pages might be able to request their own casting, but it doesn't seem like anything other browsers could compete/cooperate openly with atm.

[1] https://www.w3.org/TR/presentation-api/

[2] https://bugs.chromium.org/p/chromium/issues/list?q=component...

Not sure how related this is, but my parents have a one or two year old Samsung "Smart" HDTV. It doesn't have Chromecast built in, but it does have Youtube, Netflix, and a few other "apps".

I thought it was really cool one time when I was visiting during a SpaceX launch and experimental sea landing because I was able to swap from watching live via Youtube on my laptop to casting it to their HDTV. That was just by pressing the cast button and selecting their TV, which was automatically in the list without me doing anything.

It's awesome that Google's made this more convenient and I think it'll be something useful for a lot of people.

Those are YouTube-specific hacks, as I understand it. My Oppo Blu-Ray player also shows up as a cast-to destination in the YouTube application, but it doesn't show up anywhere else that has the casting ability.
I believe that this is the DIAL (http://www.dial-multiscreen.org/) protocol. I know Netflix and YouTube use it, as well as I presume others. Personally I don't think it is as cool as Google Cast as it requires an app/server installed on the target, where as Cast can open any website.
Oh, in that case I had no idea what I was talking about. Still a pretty useful 'feature' in any case.

Carry on...

I am unable to mirror Chromecast from my Mac. Basically, it mirrors the video but does not mirror the audio.
Assuming you're talking about casting from a chrome tab, I thought i had this issue, but it's a simple fix.

After you start casting, click the cast button again. You should see a volume slider that you can adjust.

It is not a question of volume. It just does not play on the TV. Here's the error I get.

http://imgur.com/a/Hpzmb

Weird. I'd take a look at your Mac audio settings (System Prefs -> Sound -> Output) and any weird applications you've installed with access to sound output.

Also try quitting all apps except chrome and see if the problem persists.

I have no apps that have access to the sound output. The problem persists even if I run ONLY Chrome.

I am not the only one - you can see such an issue on the Chromecast support forums for many users. I have tried all recommended solutions like media router enable/disable etc. including using the Canary version. No luck! I have also raised this with the Chromecast support team like 2 weeks ago. I haven't heard from them since then.

I think as of this July post, you can't send audio when mirroring your Desktop from a Mac: https://productforums.google.com/d/msg/chromecast/jGSayxcIng...

"Grace Y. said: Hello,

Thanks for your patience. Currently, audio is not supported when casting your desktop from a Mac computer/laptop. However, casting a tab does support audio. We're always looking for ways to improve, so your feature request has been duly noted.

Best, Grace"

Thanks! I noticed some people on the forum were able to cast audio by changing "chrome://flags/" but I could not.
Thank you for the extra and unnecessary bloat on the main browser I use for work.
Safari has gotten quite good, btw, if you're on a mac. I mentioned this to a guy on the original Chrome team, and he said he wouldn't be surprised if it were faster now.... Chrome used to be all about speed but now it's about features.
Safari dev tools kills adoption for me, specifically the styles inspector and the lack of an individual input/focus state for the property and value.
Does Chromium include this "feature" ?

Would be nice to have a barebones Chrome.

For anyone who hasn't seen it, check out the "peerflix" project on github. It's an amazing way to stream torrents, and you can easily cast them from chrome.

Basically you just do:

    peerflix 'magnetUrl'
And then navigate to http://localhost:8888 and cast the tab.

Unfortunately it only works with MP4. There may be some workarounds with an ffmpeg command in the middle, but I haven't experimented with it much.

Although I've been waiting for wireless screen-sharing between TV and PC for a long time, that sounds much more difficult than a simple HDMI cable to my laptop. It's actually one of the reasons I continue to buy laptops.
Just to point out, the 'difficult' step here is really the torrent download. If you already have the file locally, you can send it to your tv in a couple clicks using Videostream. Assuming everything works as you hope, it's more convenient than plugging in a cable for me at least.
The thing about chromecast is the need of a local wi-fi connection. Which I don't have. It's a shame bluetooth isn't more capable in this department.
I think what may drive that will hopefully be better auto UX interfaces for devices...
Put.io will do this too and even convert to mp4 for you, but it costs $9/mo.
Put.io is amazing and worth the money
Oh for sure - it's definitely the best execution of cloud torrenting that I've seen to date.

I wish they'd do a blog post or two about how they handle their file structure.

Can't be much, can it?

They store everything on some leaseweb disks. They use transmission behind the scenes.

Too bad it's never that simple.

But maybe they use md5 checksums to only store one copy of the same file for thousands of users. Or maybe that's violating some legal shield they have within their TOS.

Either way their MP4 conversion is waaaay too fast for some of the more popular files, and those aren't a part of the torrents.

I'm sure they check against the checksums when providing you a file that already exists. Doesn't make sense to waste bandwidth (hey there, Kim)

I think in their FAQ they mention that they have some dedicated nodes that do the MP4 conversion. I completely agree with you though, the conversion is unreal.

Since Google Cast has been open-sourced (upstreamed to Chromium), does this make it the de-facto alternative to Miracast? My Roku supports screen mirroring, but the fact that apps and companies are more keen on supporting ChromeCast has been frustrating.
It appears that Google will eliminate Chrome "packaged apps" in the next year; do I understand these to be locally installed apps? (I don't know Chrome). All apps after that must be on (a service?) the web. What could be the reason behind this?
Chrome is deprecating Chrome Web Apps in favor of native Web Apps. Essentially it's a push towards a more open web now that the APIs have caught up. It really has nothing to do with services.
Since this has happened my (gen 1) chromecast experience has gone almost totally to crap.

The built in functionality is supposed to be smart about down scaling for wifi speed, and thus has removed all options to do it manually; unfortunately it utterly fails (I believe because wifi speed is fine but the bitrate is too high for the hardware).

Lots of people don't like this update. https://productforums.google.com/forum/#!msg/chromecast/5IG1...

Streaming from my android is also much worse, with high bitrate streams that I used to consume regularly no longer working at all (e.g <1 fps).

I have been extremely happy with my chromecast until the last few months, and it honestly has become something I really dislike now.

I'm hoping that the Sonos event tomorrow includes an announcement about supporting the audio portion Google Cast.
How open is Sonos' API? I've been thinking about investing in some of their audio hardware.
There is a PulseAudio extension that writes to both Sonos speakers and Chromecast:

https://github.com/masmu/pulseaudio-dlna

DLNA is some sort of standard, maybe that's what Sonos uses. I personally just use their phone app though.

That is an awesome find, thanks!
Not very, but I they've been opening up more. Just today they announced they were adding spotify connect support, and amazon echo voice control support.
Nice job, thank you! Now... how can I disable it? Next time I'm on a public wifi network, this is going to be sending out probes for Chromecast devices, and it's only a matter of time before someone finds an exploit.
> only a matter of time before someone finds an exploit.

Chrome is looking ripe for exploitation. IIRC the default install includes an mDNS responder. Check out the guy who has every Chrome instance on his network crash at the same time: https://redd.it/4xej0p

  "people have casted more than 38 million times from
   Chrome, watching and listening to more than 50 million
   hours of content."
So Google is monitoring your watching habits. What other information do they collect as part of this? Are these details documented in a privacy policy somewhere?

The setting chrome://flags/#disable-cast-streaming-hw-encoding only appears to toggle hardware encoding or not. Can it be disabled altogether?

Generic usage time is probably the least surprising thing google is tracking.
There is a "Automatically send usage statistics and crash reports to Google" checkbox right in the settings. It even asks you during the install. Just uncheck the box to disable.

They also recorded this data as part of the Chrome extension, not natively. If you want to see more about the native metrics Chrome sends to Google, check out "chrome://histograms/"

I really want a feature that would allow me to cast from my phone to my desktop. I have a big TV plugged into my desktop but I can't cast to it from my phone, I have to remote in and manually control the desktop, it's painful.
Windows 10 added a built-in Miracast receiver, that works well with Android 6.