philippe_44 wrote: 
> Could you give me a few pointers ?

Below is a copy of Chromecast related resources which I have noted
whenever I come across it .  Not sure how useful they will be to you.

Receiver application wre written in javascript but most are then
processed by Closure to obscure them.
For gapless I have been looking at media_player.js sourc ebecause I
understand DASH protocol and it is only concerned with creating an audio
stream from many http GETs.
The Google Play Music receiver app is quite complicated as it it now
only plays audiop it also seems to write html dynamically.

Also at end is the Python code used to discover Chromecasts using mDNS


---------------------------------------------------------------
SDK Examples https://github.com/googlecast
Examples docs https://developers.google.com/cast/docs/downloads

Google cast issue list SDK
https://code.google.com/p/google-cast-sdk/issues/list

Stackoverflow chromecast
http://stackoverflow.com/questions/tagged/chromecast

Google developer group edu - sample chromecast
https://github.com/GDGOakdale

Chromecast developer slides
http://html5devconf.com/slides/GoogleCast-kevinnilson.pdf
PoC for Presentation API https://github.com/webscreens/slidyremote
https://github.com/mfoltzgoogle/presentation-cast

Media Playing lab - https://developers.google.com/cast/docs/player  also
contain URL to js for HLS/DASH

Receiver app are written in Javascript but then passed through Closure
which means code is has been mininmised (sensible long names replaced by
short two letter, code optimised etc) 
Other Receiver code URLs
http://www.gstatic.com/cast/sdk/libs/mediaplayer/1.0.0/media_player.js
http://www.gstatic.com/cast/sdk/libs/receiver/2.0.0/cast_receiver.js
https://www.gstatic.com/cast/sdk/libs/games/1.0.0/cast_games_receiver.js

Meshblu chromecast has a list of registered chromecast receiver apps
https://github.com/octoblu/meshblu-chromecast/blob/master/chromecast-apps.json

Use Chrome developer tools to monitor network comms when using Chrome
Google Cast Extension 

Some old chromecast hacking
http://fiquett.com/2013/07/chromecast-traffic-sniffing/

Details on how CC is configured from chrome -
http://192.168.1.58:8008/setup/eureka_info?params=version,name,setup.setup_state,net.ethernet_connected,net.ip_address,device_info.ssdp_udn,device_info.capabilities.display_supported,setup.ssid_suffix,setup.tos_accepted

http://192.168.1.58:8008/setup/eureka_info?params=device_info
http://192.168.1.58:8008/setup/eureka_info?params=setup
http://192.168.1.58:8008/setup/eureka_info?params=net
http://192.168.1.58:8008/setup/eureka_info
http://192.168.1.58:8008/setup/eureka_info?options=detail
http://192.168.1.58:8008/setup/eureka_info?options=sign
http://192.168.1.58:8008/setup/supported_locales
http://192.168.1.58:8008/setup/supported_timezones
http://192.168.1.58:8008/setup/eureka_info?params=build_info.cast_build_revision,device_info.mac_address,detail,net.ip_address,settings.country_code,settings.locale,settings.timezone,settings.time_format,opt_in.stats,wifi.ssid,wifi.wpa_id
http://192.168.1.58:8008/setup/eureka_info?params=build_info,device_info,detail,net,settings,opt_in,wifi

Groups which mention Chromecast
https://groups.google.com/a/chromium.org/forum/#!topicsearch/chromecast

Chromecast network deployment issues
http://www.cisco.com/c/en/us/td/docs/wireless/controller/technotes/7-6/chromecastDG76/ChromecastDG76.html


Code:
--------------------
    
  #!/usr/bin/env python
  """Discovers Chromecasts on the network using mDNS/zeroconf."""
  from six.moves import input
  from zeroconf import ServiceBrowser, Zeroconf
  
  
  class MyListener(object):
  
  def __init__(self):
  self.services = {}
  
  @property
  def count(self):
  """Number of discovered cast services."""
  return len(self.services)
  
  @property
  def devices(self):
  """List of tuples (ip, host) for each discovered device."""
  return list(self.services.values())
  
  # pylint: disable=unused-argument
  def remove_service(self, zconf, typ, name):
  """ Remove a service from the collection. """
  print("Service %s removed" % (name,))
  self.services.pop(name, None)
  
  def add_service(self, zconf, typ, name):
  """ Add a service to the collection. """
  info = zconf.get_service_info(typ, name)
  print("Service %s added, service info: %s" % (name, info))
  service = None
  tries = 0
  while service is None and tries < 4:
  service = zconf.get_service_info(typ, name)
  tries += 1
  
  if service:
  ips = zconf.cache.entries_with_name(service.server.lower())
  host = repr(ips[0]) if ips else service.server
  print("\n\n\nService %s added, host %s  port %d" % (name, host, service.port))
  
  self.services[name] = (host, service.port)
  
  
  zeroconf = Zeroconf()
  listener = MyListener()
  browser = ServiceBrowser(zeroconf, "_googlecast._tcp.local.", listener)
  try:
  input("Press enter to exit...\n\n")
  finally:
  zeroconf.close()
  
--------------------


------------------------------------------------------------------------
bpa's Profile: http://forums.slimdevices.com/member.php?userid=1806
View this thread: http://forums.slimdevices.com/showthread.php?t=104383

_______________________________________________
discuss mailing list
discuss@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/discuss

Reply via email to