gomad
August 6, 2018, 11:31am
1
Hi,
I have a stream with widevine drm, i am doing the following (pseudo code):
drmParams = {
“keySystem”: “widevine”,
“licenseServerURL”: “https://mylicenseserver.net ”
}
ContentNode_object.streamformat = “dash”
ContentNode_object.url = “https://mydashmanifest.mpd?asdas ”
'setting header and drm params
ContentNode_object.HttpHeaders = [“mydata:licensekey”]
ContentNode_object.drmParams = drmParams
m.video.content = ContentNode_object
I get the following error:
inside video state: error
inside video errorCode: -6
inside video errorMsg: ignored
I see that the license server is not getting the headers.
Any ideas?
regards,
Gokul M
You need to call m.video.AddHeader(“headername”, “header value”) instead
gomad
August 13, 2018, 4:56am
3
this is what worked for me:
hvideo = CreateObject(“roHttpAgent”)
vheaders = {“h1”:“value”}
hvideo.SetHeaders(vheaders)
and before setting the content
m.video.setHttpAgent(hvideo) ’ settting headers
Hi gomad,
I have implemented like as yours . but i am still not able to play with DRM encrypted content.
can you help me out where i am stuck.
following are the errors i am getting:
m.video.errorMsg: Protected content license error.
m.video.errorStr: decoder: pump: DRM exception: decrypt error: DRM failed:extra:clip_id: 0
following are the code for it:
vidContent = CreateObject(“RoSGNode”, “ContentNode”)
drmParams = {
keySystem: “Widevine”
licenseServerURL: “https://wv-keyos.licensekeyserver.com/ ”
}
vidContent.streamformat = “dash”
vidContent.drmParams = drmParams
vidContent.url = “https://cdn.streamlytv.com/streamly/ngrp:AETVP.stream_all/manifest.mpd ”
httpAgent = CreateObject(“roHttpAgent”)
httpAgent.SetCertificatesFile(“common:/certs/ca-bundle.crt”)
httpAgent.InitClientCertificates()
httpAgent.EnableCookies()
httpAgent.AddHeader(“X-Roku-Reserved-Dev-Id”, “”)
headers={
“customdata”:“PD94bWwgdmVyc2lvbj0…” ’ 64 bit encoded key string passing in header
}
httpAgent.setheaders(headers)
m.video.enableUI = false
vidContent.live=true
m.video.content = vidContent
m.video.setFocus(true)
m.video.control = “play”
You could simply do that by setting
videoNode.httpHeaders = headersKeyValueMapObject
These headers are passed in requests made by the player.
If you want custom headers only to be passed in the DRM request, the new drmHttpAgent available from. 9.3 will do the purpose.