Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Level 10

video node setting header is not working

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
0 Kudos
3 Replies
Highlighted
Level 7

Re: video node setting header is not working

You need to call m.video.AddHeader("headername", "header value") instead
0 Kudos
Highlighted
Level 10

Re: video node setting header is not working

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
0 Kudos
Highlighted

Re: video node setting header is not working

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"
}
 
vidContent.streamformat = "dash"
vidContent.drmParams = drmParams
 

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"
0 Kudos