Skip to content

Tapanila/SharpCaster

Repository files navigation

Icon

SharpCaster

Currently Supported Platforms

.NET

SharpCaster is Chromecast C# SDK any platform support .net standard 2.0.

The nuget package NuGet Status

https://nuget.org/packages/SharpCaster/

PM> Install-Package SharpCaster

Getting started

Finding chromecast devices from network

IChromecastLocator locator = new MdnsChromecastLocator();
var source = new CancellationTokenSource(TimeSpan.FromMilliseconds(1500));
var chromecasts = await locator.FindReceiversAsync(source.Token);

Connecting to chromecast device, launch application and load media

var chromecast = chromecasts.First();
var client = new ChromecastClient();
await client.ConnectChromecast(chromecast);
_ = await client.LaunchApplicationAsync("B3419EF5");

var media = new Media
{
	ContentUrl = "https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/mp4/DesigningForGoogleCast.mp4"
};
_ = await client.MediaChannel.LoadAsync(media);

SharpCaster Demo

SharpCaster Simple demo

Adding support for custom chromecast channels

  • In Chrome, go to chrome://net-export/
  • Select 'Include raw bytes (will include cookies and credentials)'
  • Click 'Start Logging to Disk'
  • Open a new tab, browse to your favorite application on the web that has Chromecast support and start casting.
  • Go back to the tab that is capturing events and click on stop.
  • Open https://netlog-viewer.appspot.com/ and select your event log file.
  • Browse to https://netlog-viewer.appspot.com/#events&q=type:SOCKET, and find the socket that has familiar JSON data.
  • Go through the results and collect the JSON that is exchanged.
  • Now you can create a new class that inherits from ChromecastChannel and implement the logic to send and receive messages.