October 2012 Entries

Sky doesn't seem to understand what their own errors mean, so I cobbled together an understanding from some other posts and managed to get it working.

When you see the error [t6013-c1501] instead of your TV programme in Sky Go, it seems to mean:

'You registered a device, but then changed the hardware, so now I'm confused!'

In other words, the Digital rights management (DRM) used between Sky Go and Silverlight stored an old fingerprint of your PC, but rather than recognising this and allowing you to remove the device, it just disappears from the 'Manage Devices' page.

DISCLAIMER: Perform the following steps at your own risk. It worked for me, but I didn't care if it broke stuff. If you care....don't do it!

So, to fix this I did the following:

1. Login to Sky Go and click 'Watch live TV' from the home page. It will attempt to show Sky News and fail with the error [t6013-c1501].

2. Right click on the error and you should see the Menu option 'Silverlight'. Select this and a dialog should appear. Click the 'Application Storage' tab and delete any entry that relates to sky go. Click OK to close the dialog.

3. Close the browser (if you don't the next bit will fail as it will be using the file you need to rename).

4. Open explorer and navigate to the folder C:\ProgramData\Microsoft\PlayReady

Note: This folder might be hidden on your PC, if so in explorer select Organize->Folder and Search Options->View->Show hidden files and folders and click OK.

5. Rename the file mspr.hds to mspr.hds.OLD

Note: Don't rename/delete the folder C:\ProgramData\Microsoft\PlayReady or you will get the error [t6000-c1501]. The folder must exist in order for the new file to be created by Silverlight.

6. Log back into Sky Go and click 'Watch live TV', this time you should see a message saying something like downloading security components.


Techie talk:

So whoever wrote the code to create a new mspr.hds file didn't write code to check the folder existed causing what I assume is a generic error t6000, probably something like:

catch (Exception ex) { WriteToLog("Oops, something broke!"); }