Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
keeptalking
Level 7

Using xml from remote server

Hi all,

I am trying to understand and alter the sample code from the "videolist" example. I want to change it so it gets the xml video listing from my own remote server rather than having it hard coded into the app. I know I need to change this section to point to my server:

      m.readVideoContentTask = createObject("RoSGNode","VideoContentReader")
      m.readVideoContentTask.observeField("videocontent","showvideolist")
      m.readVideoContentTask.videocontenturi = "pkg:/server/videocontent.xml"
      m.readVideoContentTask.control = "RUN" 


Unfortunately my level of understanding is still poor and I cannot figure out how to alter the code.

I will be eternally grateful if someone can help!

Many thanks,

Mark
0 Kudos
7 Replies
renojim
Level 8

Re: Using xml from remote server

Change:
m.readVideoContentTask.videocontenturi = "pkg:/server/videocontent.xml"

to:
m.readVideoContentTask.videocontenturi = "http://yourserver/yourcontennt.xml"

where yourserver and yourcontent are obviously dependent on your situation.

-JT
0 Kudos
keeptalking
Level 7

Re: Using xml from remote server

For some reason this doesn't work - Roku fails to load the xml. The server is working fine (I'm also streaming the test videos from it), and the path to the xml file is definitely right.

Any ideas welcome!

Thanks,

Mark
0 Kudos
EnTerr
Level 8

Re: Using xml from remote server

"keeptalking" wrote:
Hi all,
I am trying to understand and alter the sample code from the "videolist" example. I want to change it so it gets the xml video listing from my own remote server rather than having it hard coded into the app.

What "videolist" example? Give exact URL! This is important.

PS. I looked inside the VideoListExample.zip from RTFM https://sdkdocs.roku.com/display/sdkdoc/Media+Playback+Markup#MediaPlaybackMarkup-VideoListMarkup and that is NOT what you are using. What are you using?!
0 Kudos
keeptalking
Level 7

Re: Using xml from remote server

Hi,

Thanks for your help.

I am using this example:

https://sdkdocs.roku.com/download/attac ... 629&api=v2

Cheers,

Mark
0 Kudos
EnTerr
Level 8

Re: Using xml from remote server

"keeptalking" wrote:
I am using this example:
https://sdkdocs.roku.com/download/attac ... 629&api=v2

Good grief, yet another copy of that - but slightly different. Why are RokuCo's examples such a mess?!
Why are there multiple copies in multiple places - how is one to know which is what, where is the consistency, where is  a "catalog" to pick and choose?

@keepTalking - look inside videoContentReader.xml of "your" zip:
      ' uncomment/conditionalize for development package XML transfers (pkg:/server/foo.xml)'
      xmlstring = ReadAsciiFile(m.top.videocontenturi)
      videocontentxml.parse(xmlstring)

      ' uncomment/conditionalize for published channel Internet XML transfers (http://serverdomain/foo.xml)'
      ' readInternet = createObject("roUrlTransfer")'
      ' readInternet.setUrl(m.top.foocontentxmluri)'
      ' foocontentxml.parse(readInternet.GetToString())'

Comment out the first part, un-comment the 2nd. 
Oh, and change foocontentxml -> videocontentxml, foocontentxmluri -> videocontenturi
Oh, and it's up to you to add code to check if the URL xfer has failed.
The Story of O... 
0 Kudos
keeptalking
Level 7

Re: Using xml from remote server

Hi,

Many thanks for this - it now works perfectly. Maybe Roku can offer you a job rewriting their docs?  Smiley Wink

Your help is greatly appreciated.

Mark
0 Kudos
norcaljohnny
Level 7

Re: Using xml from remote server

This unfortunately does not work for me. Im stumped. Sadly, this is why so many use sample templates untouched because docs are outdated, depreciated or flat out do not work. Sighs....

Ok. So for me,
 djusting these lines worked.
readInternet.setUrl(m.top.videocontenturi)
videocontentxml.parse(readInternet.GetToString())

      m.readVideoContentTask.observeField("videocontent","showvideolist")
      m.readVideoContentTask.videocontenturi = "http://your-domain/videocontent.xml"
      m.readVideoContentTask.control = "RUN"
0 Kudos