Tinkering with uncertified Play To devices on Windows 8

Microsoft supports a feature in Windows called Play To that allows you to stream music, video, and photos from your computer to TVs or speakers on your home network. But anyone who has tried using Play To knows it can be an extremely frustrating experience, thanks in part to brittle OEM implementations of the underlying Digital Living Network Alliance (DLNA) spec.

As part of its continuing DLNA compliance push, Windows 8 now requires that Play To devices be certified before use in the new Windows Store application model. (But not via desktop applications.) That is, an uncertified device will not appear in the Devices charm from a Windows Store app (e.g. Video). But for those of us geeks with flaky sort-of-working DLNA devices, we're out of luck.

Or were, anyway.

As part of a Powershell learning experience, I wrote a script that suspends the aforementioned checks in Windows 8 and offers facilities to generate the required device metadata.

Here's a quick run through:

  • Read the readme, just in case.
  • Download the latest playto-tools script + dependencies from my repository.
  • Open an administrative instance of Powershell, in the directory holding all the downloaded files.
  • Dot source the script. (. .\playto-tools.ps1)
  • Call Suspend-CertifiedDeviceChecks to patch the Device Property Manager to accept unsigned metadata.
  • Call Get-MediaRenderers to list the media renderers on your network. You need to grab the hardware ID of the device you wish to enable Play To for.
  • Pass this hardware ID (and the -Install switch) to New-DeviceMetadata to generate and install metadata into the Device Metadata Store.

In my case, I was testing with one device and was able to string everything together:

New-DeviceMetadata (Get-MediaRenderers | Select -First 1 -exp HardwareID) -Install

Alternatively, you could also boot Windows in test mode.