Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chromecast support? #38

Open
pataquets opened this issue Feb 20, 2022 · 5 comments
Open

Chromecast support? #38

pataquets opened this issue Feb 20, 2022 · 5 comments
Labels
enhancement New feature or request

Comments

@pataquets
Copy link
Contributor

Is it supported?
Otherwise, would it be an acceptable feature request?

@alexballas
Copy link
Owner

Chromecast support is something that I would really welcome in this project.

Before we dig deeper into it however, I'd like to give you some info on what protocols there are out there and the current state of device video streaming.

Currently go2tv is based on the DLNA/uPnP specification which is something that all smart TVs and some Audio speakers support. Chromecast is based on a completely different protocol called "castv2". Implementing this from scratch is a beast project on its own. There are some projects out there like the https://github.com/vishen/go-chromecast/ which currently only support a small number of actions.

According to this project's documentation:

Can load a local media file or a file hosted on the internet on your chromecast with the following format:

Supported Media formats:
    - MP3
    - AVI
    - MKV
    - MP4
    - WebM
    - FLAC
    - WAV
If an unknown video file is found, it will use ffmpeg to transcode it to MP4 and stream it to the chromecast.

So in terms of functionality, this project is limited to playing video files from local storage or the internet like go2tv also does (through DLNA/UPNP).

Chromecast devices initially used a different protocol called DIAL (Discovery and Launch) protocol which all smart TVs (and Roku) also support it. This protocol is the one responsible for triggering the applications like youtube, netflix, spotify etc to launch and control them. Chromecast devices still partially support it, but they migrated most of their SDK to the new protocol (castv2).

One nice DIAL project that I recently saw is https://github.com/MarcoLucidi01/ytcast which is just for youtube casting.

When people talk about chromecast support, usually they mean the ability to cast youtube, netflix or spotify content which effectively is the DIAL protocol.

Any thoughts on the above? Is this also your understanding?

@pataquets
Copy link
Contributor Author

Thanks for the detailed answer.
What I was thinking about is more of a generic media URL from anywhere on the net just being pushed to the Chromecast to play. No specific YT, Netflix or other functionality. I'm aware that it is a different beast and I guess it might even require some transcoding.
Also, I didn't know about ytcast. I'll take a look.

@alexballas alexballas mentioned this issue May 20, 2022
@alexballas
Copy link
Owner

I ordered a chromecast. I should (very slowly since I have other priorities) start working on this one.

@alexballas alexballas added the enhancement New feature or request label Jun 19, 2022
@johnd0e
Copy link

johnd0e commented May 7, 2024

Another simple library https://github.com/stampzilla/gocast

@alexballas
Copy link
Owner

thank you @johnd0e. I'll definitely have a look. Last time I used https://github.com/vishen/go-chromecast which was not working great with the Go2TV flows. The challenging part is getting the same experience as you get with UPNP devices. For the user it needs to be a seamless behaviour, regardless of the target device type. If we get that right, I'll call it version 2 :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants