0

I want to code an SmoothStreaming Player in NodeJS. I am watching TV on a streaming platform, but i would like to use my Raspberry Pi to watch TV on it using the HDMI. The player is written in C#, and is a Silverlight Player.

I want to implement the LicenseAcquirer and SmoothStreamingMediaElement of C# to play the video with the Raspberry Pi. I think that it should be possible, but i don't know how start, i don't know how LicenseAcquirer works to prepare the request to the license server, and how use the DRM key to decrypt the video.

The idea is to get license, download video chunks, decrypt video chunks and play using omx player, for example.

Is it possible? Where can i get information about LicenseAcquirer and SmoothStreamingMediaElement?

Thanks! :)

Alberto Segura
  • 437
  • 4
  • 9

1 Answers1

0

I'm not exactly sure what you are trying to do but you cannot decrypt video chunks yourselves - that is the whole point of DRM protection.

DRM is a black box shipped with the platform. Silverlight has Microsoft PlayReady DRM bundled and it can decrypt and render protected content for you. You are not supposed to get access to decrypted content.

LicenseAcquirer is a class in Silverlight's System.Windows.dll assembly. If you want to see its content you can use some reverse engineering tool like Reflector or DotPeek. Its purpose is to be interface for Silverlight to request license from the server. It does not generate license request itself, neither it processes license response itself. It is just a wrapper for native code implemented in agcore.dll.

The whole point of changing LicenseAcquirer logic may be adding some additional data. For example streaming service requires some information identifying customer to know if customer has access to licensed content or not.

SmoothStreamingMediaElement is the whole Silverlight player implementing Microsoft Smooth Streaming Protocol and using Microsoft PlayReady already implemented in Silverlight. You just need to give it URL to Smooth Streaming manifest for protected content and it can play it (unless there is some additional protection to access the license).

SmoothStreamingMediaElement is not standard part of Silverligh. It is part of Smooth Streaming Client SDK which is available as a (not maintained) source code.

Ladislav Mrnka
  • 360,892
  • 59
  • 660
  • 670