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 7

M3U8 streamUrl(s) with QueryStrings causing parse failure

I'm getting "Can't parse feed" errors when trying to provide streamUrls with query strings. Are these not supported? Here's a sample of my m3u8 url.

http://127.0.0.1:8000/abcde78ea80e4afb8 ... ca77e323ac

And without the protocol prefix...

192.168.1.118:8000/abcde78ea80e4afb8f86d935153bb182.m3u8?iph=abcde7c58f8365fbafd7cc4d47d23dff99d4b393e070801c2e125336755e1b78&oid=abcde9e9198f4b16b927c8a5abe3fd5c&cid=abcde78ea80e4afb8f86d935153bb182&exp=1336757011&ct=a&sig=abcde0fc639ac464b6f520632f40c2c2f872a8806e6e953455db9cca77e323ac

We use the query string for token auth, etc. The server is hosted locally on my machine, hence the localhost IP. When the query string is removed the feed parses fine and my channel roPosterScreen is populated as expected.
upLynk
http://uplynk.com
One encode. Many devices.
tyler+roku at uplynk dot com
0 Kudos
6 Replies
Highlighted
Roku Employee
Roku Employee

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

Your server needs to replace the & with &

- Joel
0 Kudos
Highlighted
Roku Employee
Roku Employee

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

Joel is right. And more generally, any XML consumed by your channel must be valid and well formed. This tool is pretty good for validating XML: http://www.w3schools.com/xml/xml_validator.asp
0 Kudos
Highlighted
Level 7

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

Ahh, of course. Thanks!
upLynk
http://uplynk.com
One encode. Many devices.
tyler+roku at uplynk dot com
0 Kudos
Highlighted
Level 9

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

If XML escaping the value is more of a hassle than you'd like, you can also wrap the value in a CDATA tag, so it doesn't require escaping..

Example:
<url><![CDATA[http://127.0.0.1:8000/my?url=with&ampersands=true]]></url>
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
Highlighted
Level 7

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

Thanks for the response endless. Escaping wasn't a big deal at all.

It does appear I'm not out of the woods yet. My newly escaped URLs now of the format...

http://192.168.1.118:8000/abcde78ea80e4 ... f62c910e67

are now throwing a new error. Here's what I believe is the relevant snippet from the debugger output.


showHomeScreen | msg = | index = 0
showHomeScreen | msg = | index = 24
showHomeScreen | msg = | index = 23
showHomeScreen | msg = | index = 23
showHomeScreen | msg = The format is not supported or the media is corrupt. | index = -5
Video request failure: -5 1
showHomeScreen | msg = | index = 0


I'm thinking it's still looking for valid file extensions for the media, or something along those lines. In my case I think it's looking for the .m3u8 to be on the end. My streams that do not require these tokens and consequently do not include query strings playback great, so I know my problem has to do with these query strings.
upLynk
http://uplynk.com
One encode. Many devices.
tyler+roku at uplynk dot com
0 Kudos
Highlighted
Roku Employee
Roku Employee

Re: M3U8 streamUrl(s) with QueryStrings causing parse failur

What happens if you setup an roURLTransfer and use gettofile() to download the .m3u8 to tmp:/

Do you get the file you expect to get?

- Joel
0 Kudos