home-assistant-libs / pychromecast

Library for Python 3 to communicate with the Google Chromecast.
MIT License
2.53k stars 377 forks source link

is_idle is always true #53

Open ethlo opened 9 years ago

ethlo commented 9 years ago

Is there a work-around to discover this?

(Trying to make this work for https://github.com/ethlo/castsaver)

rmkraus commented 9 years ago

Try using the IGNORE_CEC option to ignore CEC data for that chromecast device.

On Tuesday, July 28, 2015, Morten Haraldsen notifications@github.com wrote:

  • Start Netflix
  • cast.media_controller.is_idle == True no matter whether the video is playing or not

Is there a work-around to discover this?

(Trying to make this work for https://github.com/ethlo/castsaver)

— Reply to this email directly or view it on GitHub https://github.com/balloob/pychromecast/issues/53.

Thanks,

Ryan Kraus

ethlo commented 9 years ago

Thanks for your feedback, I tried it, it just changes to be always False, so no luck I'm afraid.

rmkraus commented 9 years ago

I'm sorry, I misread your first post. To get the status of the media player, the call you are using is deprecated, instead use cast.media_controller.status.player_is_idle or cast.media_controller.status.player_state. When playing Netflix, the status should be unknown because Netflix uses a proprietary and encrypted set of commands. I'll confirm tonight that this is the case. It is possible that something changed in the netflix chromecast app to make it always report idle.

The takeaway here is that Netflix is not and can not be fully supported

ethlo commented 9 years ago

I realized that I used a deprecated call, but saw in the source code that it called the correct method. Is there any way to determine if there is any media playing or not in general (regardless of application)?

rmkraus commented 9 years ago

Unfortunately, not really. Netflix works with a nonstandard API and all their calls are encrypted. The nonstandard API isn't a huge problem, but they encrypt it for a reason. It could be reverse engineered, but Netflix would likely change it as soon as it is published.

On Wednesday, July 29, 2015, Morten Haraldsen notifications@github.com wrote:

I realized that I used a deprecated call, but saw in the source code that it called the correct method. Is there any way to determine if there is any media playing or not in general (regardless of application)?

— Reply to this email directly or view it on GitHub https://github.com/balloob/pychromecast/issues/53#issuecomment-125936590 .

Thanks,

Ryan Kraus