Uncategorized

Developing a Basic Roku Channel


The Roku box is arguably the most influential home entertainment devices created in the last 10 years.  I believe it really catalyzed the video streaming services into the main stream.  It allows for video producers to break free from the limits of streaming video viewing on a computer.  This was extremely important for Netflix as they introduced their streaming services.  It would not have gained the popularity it needed if families could not watch in their living room using their existing televisions.

But creating content for the Roku is not a closed system.  Anyone can create a Roku video channel.  The process is not very intuitive, so I wanted to show step-by-step how to create a basic Roku channel.

Note:  There are several sites that have similar tutorials.  Most are based on the Roku’s own SDK.  Over the course of the upgrades to Roku’s main operating system, some of these tutorials have incorrect information.  I can only attest that this post will stay relevant as long as the Roku system does not introduce a breaking change.

Preliminary Information

Here are some of the things you will need to begin.

  • Roku Developer Account – You will need to sign-up for a developer account with Roku.  This will give you access to download the SDK files and documentation.  Go here to register http://www.roku.com/developer
  • Roku SDK files and documentation – Once you have signed up for a developer account, you need to download the SDK files and documentation.  On the developer home screen, click on the “Download SDK” link to download the ZIP file.  Unzip the folder as we will be using it to develop our basic channel.image
  • Of course, you will need a Roku to develop your channel.  Unfortunately, they have not yet created any type of emulator to develop only on a computer.
  • You must have public internet hosting.  The XML files and video files we use will need to be publicly hosted.  We will explore two ways of hosting videos: with Vimeo and with personal hosting account.
  • You will need some sort of image editor.  Some image files need to be certain sizes and types.

Roku has done a really good job creating the SDK to give developers a good starting point in creating channels.  They have provided several sample channels as long as a host of documentation.  Roku utilizes the BrightScript development language to create channels.  I would bet that most seasoned developers have not used this language.  But no fears as we will not be doing any code writing in this tutorial (we will use an example channel provided by Roku.)  If we did have to do some coding, the BrightScript language is very similar to other Basic-type languages and easy to learn.

If you have time available, I would recommend reading the “Read Me” document that came with the SDK as well as the “Developer Guide” that is in the “documents” folder of the SDK.  Many of the steps in this tutorial can be further explored in the developer guide.

Getting your Roku into Developer Mode

Your Roku player is not setup to have custom channels by default.  You will need to get it into a developer mode to add your new channel.  To get into the developer mode, on the home screen press the following key combination into your Roku remote:

Home (3 times), Up (twice), Right, Left, Right, Left, Right

You will see the following screen appear.  Select the “Enable installer” and your Roku will restart.  Take note of the IP address here as it will be important as we move on.

Photo Jul 18, 2 01 06 PM

Creating Our Basic Channel

There are 4 basic files that are used by the Roku in developing a channel:

  • BrightScript files – these include the code that runs a channel.  They have a “.brs” file extension.  We will be using the scripts included in the “videoplayer” sample provided by the SDK.
  • XML files – the Roku used XML files to gather the metadata for the videos it will pull for a channel.  These are not imbedded in the channel itself, but must be publicly hosted by you.  The good thing about us hosting the XML files is that we control them and can make them dynamic if we would like, thus creating a more useful and continuously updated channel.
  • Image files – image files (i.e. JPG, GIF, and PNG) are used to both create a unique look of your channel but also to have screenshots of our videos.
  • Video files – these are MP4 videos that will be streamed through the channel.  For exact specs supported by the Roku, refer to the developers guide.

We are going to be using the “videoplayer” sample channel provided by Roku.  For this example, I am going to create a channel that has one video.  Go to the “/samples/source/videoplayer/” folder in your Roku SDK folder.

The Images

The first thing we need to do is create the images necessary for our channel.  There are two types of images:  channel look-and-feel and video screenshots.

The channel look-and-feel images are located in the “images” folder.  The Roku sample is using the “Ted Talks” images.  I am going to change the images to be a different color to give it a unique feel.

MainMenu_Icon_CenterFocus_HD

The video screenshot images will be taken while playing the video I want to stream.  I wait until the I get the scene I want as the screenshot and then take a system screenshot.  I then use my image editor to crop out only the video section.

image
whole page

image
video screenshot cropped from page above

There are two sizes of images that needs to be created.  One is used for SD televisions and the other is for HD televisions.  Below are their sizes:

  • HD – 290px width by 218px height
  • SD – 214px width by 144px height

video_hd
HD video image

video_sd
SD video image

Please see the Design and Artwork guideline documents to see full details on images in your channel.

The Video

There are two ways that you can host videos.  One is to just put the video file on your public hosting where the Roku can access it.  The second is to use a video sharing service such as Vimeo.  We are going to use Vimeo for this as there are several advantages.

Not all video services can be used.  The one thing that these services have to offer is a MP4 downloadable version of the video.  Vimeo does support this.  We will need to get the download link for the video we want to use.  On Vimeo, if a user has given download rights to a video, you will see a “Download” link under the video itself.  Clicking this link gives you the video options.

This is where I had to fight with Vimeo a little.  We want to use the “SD .MP4 file” link.  But the link provided is not exactly what we need.  What we have to do is right click on the “SD .MP4 file” link and copy the link address.  You then paste this into your web browser’s address bar and go to the link.  You will see that Vimeo now changes the link address to the REAL link we want.  You will copy this new link in the web browser address bar into the “themind.xml” file discussed in the section below.

image

The XML files

All video information is inputted into XML files.  The XML files for this sample can be found in the “xml” folder of the “videoplayer” channel.  We will only be modifying two files:  “categories.xml” and “themind.xml”.

The “categories.xml” file contains the information of all the selectable categories in the main channel homepage.  Behind each channel can be a number of videos (or episodes.)  We will want to modify the XML file to the setup below.  You will need to replace the “MYDOMAINNAME” with your public hosting.  Take note of the folder layout.  You can make this anything you want, just make sure it is represented in file correctly.

image

The “themind.xml” file has the information on our individual videos.  We want to modify it to look like the text below.  The “sdImg” and “hdImg” tags hold the location of the screenshots we created earlier.  Also the “streamUrl” is the location of the video.

Also note that the “contentQuality” and “streamQuality” are set to “SD”.  You will want to set this to what television you are using.  I just happen to be using an old 4:3 television so I need to set my quality to “SD”.  If you have a newer widescreen television, you can set this to “HD”.

image

BrightScript Source Files

We are not going to be writing any code in our BrightScript files.  But we do need to modify where our channel looks for the “categories.xml” file on the internet.  In the “source” folder, we need to modify the “categoryFeed.brs” file.  Look for the InitCategoryFeedConnection function and change the UrlPrefix to point towards the XML folder on your public hosting.

image

The Public Hosting Setup

We now need to setup our public hosting to contain the files that will get served to our channel app.

Here is a screenshot of what I have uploaded to my public hosting.

image
GUI folder

image
Images folder

image
XML folder

Packaging Channel

We will be uploading a single ZIP file that contains everything needed for the channel.  The sample channel we have been using is already pretty much setup to be compressed and uploaded, but lets look at a couple of things on how this works.  The metadata of the channel is contained in the “manifest” file.  Opening this file in our text editor shows the following:

image

The only thing I changed was the title.  We can also change the subtitle.  These two are what shows up for our channel when we are on the Roku home screen.  It also points to a couple of images that are used.

To create the channel zip file, we will add the “artwork” folder, “images” folder, “source” folder, “xml” folder, and manifest file to a zip file.  I just named the zip file “videoplayer.zip”.

Uploading the Channel

Now that we have our zip file and our XML and video files out on the internet, we can now upload our channel to our Roku.  It helps to be in front of your television and Roku during the rest of the install and testing.

First you will need to open up your web browser and type the IP address to your Roku such as http://192.168.0.105.  You will get a screen as shown below.

image

Click on the “Choose File” button.  You will then be shown an open box in which you need to navigate to where you’re your channel zip file is located, select it, and then choose open.  The zip file name is now be shown next to the “Choose File” button.

image

Click on the “Install” button to install the channel.  You should hear a noise come from the television as the Roku verifies the channel install.    The Roku will also now show you a record on the website representing your new channel.

image

If you scroll to the end of your channel list on your Roku, you new channel should now be visible.  At this point, your channel is complete and ready to be used!  Congrats!

Images of Navigating Custom Channel

Photo Jul 18, 7 15 07 PM
Roku home screen with custom channel.

Photo Jul 18, 7 15 17 PM
Custom channel home screen with “Technology” category.

Photo Jul 18, 7 15 26 PM
Technology category selected, showing “Video 101” video icon.

Photo Jul 18, 7 15 35 PM
“Video 101” selected, shows details such as running time and synopsis.

Photo Jul 18, 7 15 59 PM
Playing video. Roku video buffering screen.

Photo Jul 18, 7 15 43 PM
Video is playing.  Hosted on Vimeo.

When Things Don’t Work

As with all software development, sometimes we run into issues and things just do not work as expected.  Even when I was creating this tutorial, I ran into issues that had to be diagnosed and fixed.  Since the number of issues that could come up are impossible to account for, I am just going to go over the bugs I had and how I fixed them.

The Roku Debug Console

The Roku is setup to be able to give us some help when trying to diagnose issues we are having.  To get to the debug console, we will need to telnet into our Roku box. Open up a command console and telnet into your Roku box’s IP address over port 8085:

telnet 192.168.0.105 8085

By default, the debugger is running.  If your channel is installed, anything you do inside that channel will start to print debug information into the console window.

image
Debug console running when custom channel is being used.

Reloading a Channel After a Change

If you are fixing a video or XML file, you will only need to update your public hosting and your channel should accept the changes by going all the way to the Roku home page and re-entering your channel.  If you have to change a file inside the channel zip file (such as a BrightScript file) you will need to re-upload your channel.  On the Roku webpage, click the “Delete” button next your channel.  You can then repackage your channel zip file and upload as described above.

Bug:  My channel would not open.

The first bug I experienced was that I could not open the channel.  Not a good way to start!  The first thing I did was check all the URL’s that are in the XML and BrightScript files to look for a typo.  Sure enough, in the “categoryFeed.brs” file I forgot to put the “.com” at the end of my URL to the XML folder on my public hosting.  Since this was a fix in a BrightScript file, I had to re-upload the channel.

Bug:  My episode list would not appear.

When I clicked on my “Technology” category, I would get a blank “Receiving…” screen (see image below.)

Photo Jul 18, 7 48 42 PM

This was a little harder to fix.  What I was seeing was the Roku was having difficulties parsing the “themind.xml” file (see last line of image below.)

image

At this point, I wanted to verify that the “themind.xml” file was valid XML.  Most web browsers can verify XML files.  Sure enough, when I opened up the XML file in my web browser, I had made a mistake in typing my XML file (see image below.)

image

I made the appropriate changes and fixed the XML file.  All I had to do was replace my existing XML file on my public hosting with the new file (no channel re-upload was required.)

Bug: My video would not play

Once I was able to get to the video screen, the video would not play.  Unfortunately, the debug screen did not give me any instant help on this one.  It only gave me an obscure error message.  The error was: “Video request failure: –5 7” (see last line of image below.)

image

This is where Google comes to the rescue.  I searched for the specific error and was taken to the Roku developer forums that explained that you have to set the content and stream quality in the “themind.xml” file to match the television you are watching the video on.  Once I made this change, all was well.

About Hosting Video on Your Public Hosting if using IIS

In this tutorial, I showed how you can use Vimeo to host your videos.  But you may want to host the video files yourself.  Since I am a Microsoft .Net developer, all of my personal hosting is through Microsoft IIS.  What I did not realize is that IIS by default does not know how to serve an MP4 video file.

To fix this, you will need to add a new MIME type to your website.  The new type should be extension “.mp4” and the type should be “video/mpeg”.

That is the end of this tutorial.  I hope you have fun getting into Roku channel building.  As you can tell, there is much more that can be done.

Happy coding!

Uncategorized
Personal Hedgehog?
Roku Development
Common Media for Roku Development
  • ArunArun

    Author Reply

    very nice tutorial, i red few of them but non them had so detailed explanation. can you please add a tutorial of Hosting Video on Your Public server and how once can convert flash based web stream into Roku based MP4 and play


    • Thanks for the comment. The videos are just files accessible via a public address on the Internet. This could be a server you control, Vimeo (as shown), or even cloud storage via Amazon/Dropbox/Skydrive/etc….

      I do not have any experience converting flash to mp4. But I am sure Google would be able to answer that question for you.


  • If you are a developer who needs more options than the Roku SDK videoplayer Brightscript example has, http://www.InstantRokuChannel.com has some nice features. It’s a cloud-based tool specifically designed for creating Roku channels without Brightscript coding or XML editing.


    • Thanks for the link. I am not familiar with that site, so I cannot attest to it personally. But worth a look.


  • JohnJohn

    Author Reply

    I’ve meticulously gone through the Roku instructions, but when I upload my app to the IP (Roku) – it times out but appears to take, but locks up my Roku and I need to reset it every time. Then I have to redo Genkey, and the Roku no longer shows evidence for my uploaded app. I have no clue what to do next. I’ve even tried with Rokus simpleplayer app with only image and link (video) changes but it also locks up my Roku, then back in circles again. Any idea what is causing this?


    • Not sure what might be locking up your Roku. You will want to make sure that you have your Roku up-to-date with its software. It is possible I guess that your Roku has is corrupt. In that case you can reset to factory and see if that helps. For programming errors, I would recommend you look into using the debug console to see Brightscript running in real-time. More info can be found here http://sdkdocs.roku.com/display/sdkdoc42/Brightscript+Debug+Console


  • JohnJohn

    Author Reply

    Can I test Roku without loading anything into my server? (website files) When I upload my app, as soon as the app upload “times out” the Roku locks up. I wonder if the issue is webserver xml files, etc.


    • It is possible to have an app that runs without the need of a web server. BUT…. the nature of using a Roku is to have it communicate and pull dynamic XML and video sources from the internet. When it comes to Roku development there are really two realms that need to be mastered. One is the Roku application itself, and the other is the delivery of content from a web server.

      If you are having troubles with a web server (as I did during when making this post) that should not completely break your Roku app. It just wont display any information because it cannot receive anything. As I mentioned in my reply to your other comment, the Roku debug console is VERY helpful in communication issues with web servers.

      For example, in the very last section of the post I mentioned a web hosting issue where the MIME type for MP4 videos was being handled correctly by my web server. I was able to diagnose that issue through the debug console.

      Happy coding!


  • JohnJohn

    Author Reply

    Roku software is current. This is the 2nd Roku (new) that is locking up. I even packaged simplevideoplayer (zipped) and uploaded it, but the upload timed out – I was still able to package it – but the Roku onscreen locks up after the timeout and I have to reset it all over again, new Genkey, etc.


    • John,

      Have you tried not signing the app? Just uploading the ZIP file directly to the Roku?


  • JohnJohn

    Author Reply

    I just uploaded SIMPLEVIDEOPLAYER (zipped) from SDK and SUDDENLY it appeared on the screen! WOW! Their video played. Now I’m going to test one of my own, after changing some file codes. THANKS! After a week of struggling, PROGRESS! Have to take Connie to the doc, and later will test more! THANKS AGAIN!


  • JohnJohn

    Author Reply

    Quickly did my own test video – WORKED!


  • JohnJohn

    Author Reply

    Thanks, Trey. When Roku support answers my ticket I’ll discuss the Genkey problem. YOu are a blessing. Let me know if we can connect somehow on the Networks – I’m on LinkedIn if you send me a request we’ll connect there also.


    • John,

      Glad I was able to help. No problem connecting through LinkedIn. You can find a link to my LinkedIn page through the “About Me” link in the top menu.


  • DanDan

    Author Reply

    Thanks for the great, simple tutorial. I have been meaning to add a couple of custom channels for my videos and build one for a friend’s movies. Just a question for you or anyone else. I’m using Vimeo to host the files for now. Has anyone had any luck streaming their videos on their custom channel more than once using Vimeo? I get a single pay from the video and token passed out in the download link and then it’s a dead link.


    • Dan,

      If you are looking at Vimeo as a primary source, you will probably have to upgrade to their paid services to get a permanent link to videos. According to some discussions, Vimeo will actually block IPs that they find that are trying to use them as a video host without using their built in player (I assume this only relates to non-paying, free account holders.) Source: http://stackoverflow.com/questions/4460394/how-can-i-find-download-links-for-vimeo-videos

      Probably something you will need to ask Vimeo about.


  • oisioisi

    Author Reply

    Hi,
    Great tutorial! I have a vimeo pro account with acces to the advanced api would there be a way to use the vimeo xml feed for the channel?


    • I am not familiar with what is available through the Vimeo Pro accounts. If they make available perminate links for your videos (without embedded session it’s) you can always use those as your video links in the XML file. If you would like to use a standard Vimeo XML format, you will need to change the parsing code in the Example video player BrightScript files to match the XML schema.


  • I used to simple video player snd got my video working on my box. Do I now upload the zip file via my developers account?


  • I used the simple video player and got my videos working locally on my box. How do I package for uploading via my delevlopers account. When I use the zip file, I am getting an error message.


  • Ok guys, I got it all sorted out now.


    • Stephen, glad you were able to get it figured out. I am actually looking to create additional Roku dev posts in the future and one was using the Roku developer portal for new channels.


  • How do I change the video that I am streaming without having to re-load my application the Roku. Can I make the change on the server only?


  • The video location and list is kept in the XML file “themind.xml”. This file is kept on your server and is meant to be the dynamic file that can change to fit your video list.


  • That is how I understood it, but I have deleted both of those files from my server and I am still getting the video to play.


  • The only thing I would say is to make sure all the file locations are set correctly. The categoryfeed.brs points to the categories.xml file. The categories.xml file points to themind.xml file. Anything incorrect with these links can cause issues.


  • mikemike

    Author Reply

    Read this with great interest. Launching a channel soon. Xml proving tricky but had great help from http://www.flvhosting.com where i host videos for 30a TV
    I had to learn a new way to export the videos to Roku strict encoding practices
    once mastered, a breeze


  • Hi Tery,

    is there a way to add the 2 links like nowheretv so that we can have link from server1 and 2nd link from server 2.
    one may be live and other may be time shift? i checked in google but there are no example.


    • Unfortunately, I am not familiar with nowheretv. With Roku, the XML files can include any information you need. The videoplayer channel is just one way of developing. By evaluating the code that parses the XML, you will be able to see how you can add additional information into the XML file and then pull that information inside the channel code.


  • TimTim

    Author Reply

    Hi Trey,

    Your guide has been very helpful. Any idea how to add a feed url to a podcast of mp4 files that auto updates on your Roku channel without manual intervention?


    • Well, any feed that you reference will be pulled each time the channel is opened (or when the specific screen that pulls a feed is opened.) As for auto-refreshing, anything is possible. You would have to write the auto-refresh code yourself. You might find it interesting to dig into the videoplayer code to look at how the feed is pulled and translated to the screen. You can then start to figure out how you want to update the screen. Note, that if you start changing things on the screen willy-nilly, you might frustrate and confuse your users. Maybe a “refresh” button/screen?


  • TimTim

    Author Reply

    Meant to specify an RSS feed


  • TimTim

    Author Reply

    Thanks Trey, although not exactly sure of the process for adding the feed url to the xml file. Tried adding a feed url and the channel just sat there loading and never opened. Can you point me to an example xml that has a working rss feed. Spent all day searching for this and there is not much information out there… It would be nice to have my channel content update by feed rather than me having to go to the original RSS and add the new mp4 link every time they update the RSS file to the xml file on my server.


    • Oh I think I am understanding you now. You want to move away from the specific XML file used in the example and use a more standarized RSS feed. Correct? If so, that would mean that you would need to re-write the XML parsing in the channel code itself. Unfortunately, you actually have to build the code to parse through the XML file to get the elements that have the data you need. RSS is just a standard way to form the XML.

      The two source files you will need are the “categoryFeed.brs” and the “showFeed.brs” files. Here is a quick description of what is going on.

      In the load_category_feed function…

      m.Timer.Mark()
      xml=CreateObject("roXMLElement")
      if not xml.Parse(rsp) then
      print "Can't parse feed"
      return invalid
      endif
      Dbg("Parse Took: ", m.Timer)

      this is making sure the feed is XML.

      m.Timer.Mark()
      if xml.category = invalid then
      print "no categories tag"
      return invalid
      endif

      this is checking to make sure there is a “category” tag/element.

      topNode = MakeEmptyCatNode()
      topNode.Title = "root"
      topNode.isapphome = true
      print "begin category node parsing"
      categories = xml.GetChildElements()
      print "number of categories: " + itostr(categories.Count())
      for each e in categories
      o = ParseCategoryNode(e)
      if o <> invalid then
      topNode.AddKid(o)
      print "added new child node"
      else
      print "parse returned no child node"
      endif
      next
      Dbg("Traversing: ", m.Timer)

      this is where it is going through all the categories to be displayed.

      To get this to work with a standard RSS feed, you will need to traverse the RSS feed looking for the elements that are unique to that setup. The reason it was hanging on you was because it was looking for a specific XML file unique to the videoplayer example.

      Hope this helps.


  • TimTim

    Author Reply

    Thanks Trey your awesome! This is exactly what was happening and really appreciate the clarification.


  • Hi;

    Your tutorial is great. Thank you for your help. I followed all your instructions to modify the videoplayer. The manisfest file was included in the zip file. Nevertheless when I tried to upload the zip file to roku I got a message indicating that Manifest file is missing or invalid. Do you know how to correct it? Thank you


    • F. Ramos,

      Assuming that the manifest file is not missing, you probably have a typo in the file. Without seeing it, it would be hard to know if that was the case.


  • Great, it was a typo. Thank you. I have to replace the link of the video because after uploading the channel and trying to watch the video the channel suddenly closes when trying to charge the video. I will try using a video from Vimeo. Also, how do I add this channel a private channel? How do I assign a vanity code?

    Thank you.


    • Just remember that I had some issues with Vimeo because they do not really support a direct link to videos. They have a changing key attached to the video link that expires pretty quickly. As for private channels and vanity codes, it is not something I have covered so far and would take more than this comment to describe. I would direct you to Roku’s documentation, specifically the “Channel Packaging and Publishing Guide” contained in the SDK download from their developer site.


  • Ok, thank you Trey. You have been very helpful. Great blog.


  • Trey do you know How to bypass the initial category page to the Leafs? I have only one category and makes no sense to have a extra click. thnx


    • Noisette,

      You would need to modify code the runs at the beginning of the channel to instead go to a specific category list (instead of the list of categories.) You can start in the “showHomeScreen” function in the “appHomeScreen.brs” file.


  • Hello Trey,

    This is definitely a helpful page. I will pass this info to my wife. We are looking to set up our own Roku channel. You had mentioned Vimeo as a Host/Server (I assume the Pro Package would be best for this?) to link the videos to the Roku channel. Is there any other reasonably cost servers/hosts that we could look into for linking the video to a Roku channel? Right now I’m using You Tube as a link for my web page, but my eventual goal is to get a Roku page started.


    • Jack,

      It reality, Vimeo is actually a very poor host for Roku. The reason is that their links to actual MP4 files include an expiring token. Meaning you cannot get a permanent link to your video file. I hear on the grapevine that they are changing this, but until then I would steer clear.

      As for cheap alternatives, almost any file hosting service would work. You just need to be able to access the file over the public internet. While I have not tried it, you could even use the Amazon cloud storage. If you already have a web hosting provider, you could try to create a folder on that hosting and start loading video files up there. Just make sure you read the fine print of your hosting for limits on the file storage space and bandwidth.

      If you want something beefier, you can start looking at the CDN providers out there.

      GOOD LUCK!


  • Hey Trey,
    I have a new web series that is called “Hole in the Zone”. I would like to start my own Roku channel. Would you be interested in getting the channel started for me? If so, let me know how much it would cost to get it up and running and how much to keep it going for at least 3 years?
    I have other content as well. If you would like to check out some of the work, please go to web site listed below.


  • Since the artwork is hosted by me, Do I have to include the artwork file when I am zipping the channel to uplaod.


  • Stephen,

    No, the artwork file is not needed in the zip file. The img folder is needed, but not artwork. You are correct that the artwork will be pulled from your hosting.


  • Thanks


  • Hi Trey, is there anyway that I can get three or four videos to play one after the other without the viewer having to select them.
    I can’t seem to find that code anywhere.


  • Stephen,

    That isn’t something I have done before. But this Roku forum thread Might help.

    http://forums.roku.com/viewtopic.php?f=34&t=32501


  • Congratulations on this blog!

    This is probably the best article describing how to create your own Roku channel without having to read the entire Roku SDK documentation.

    For those broadcasters interested in delivering their message through their own Roku channel but without the time, technical knowledge or patience to build it on their own, Frontlayer is an AWS-powered cloud video platform that bundled the development, web-based management, content hosting and CDN distribution into a single service:

    http://www.frontlayer.com/roku-channels

    It may even be of great interest for developers who have created and published their own Roku channels, but are looking for an easy way to manage all of their content, both VOD (pre-recorded) and live, from a single web-based interface, with direct cloud storage, CDN integration and instant channel updates already bundled.


    • Daniel,

      Thanks for visiting and you find it useful. Your technology and services look interesting and would definitely be worth a look for roku devs.

      Thanks again!


  • Hi Trey, I was able to get my first channel approved and it is now in the channel store.
    I am however having problems with my second channel.
    The changes I am making are not showing up when I sideload. I am still seing the graphics that came with the example, not the new graphics that i inserted. Do I need to reset the Roku Box.


    • Stephen,

      Congrats on your first channel! As for your issue, it could be the case that you might need to reset. If you have pushed multiple versions up, it might work to remove it completely, and then reload new.


  • jasonjason

    Author Reply

    Great tutorial, but the images don’t seem to be showing any longer? Any chance you would fix?


    • @jason sorry for the image issue. I recently switched hosting and it messed up the images. It is fixed now.


  • Cool tutorial

    I’m fighting with “can’t parse feed” error

    I wrote some software that genned the XML from a database – getting close!

    On your comment to F Ramos on June 5 – if he or she zipped up the application from the folder (and not the individual files and subdirectories) they will get the Manifest Missing error.

    You can’t zip up the whole folder – you have to do it so the manifest file is in the root of the zip package.

    Jeez there are a LOT of missing, finicky, ill explained things in the ROKU docs – thankfully there are people like you to help us muddle through.

    just an FYI


  • Hello Trey,
    I created a channel using videoplayer to stream live and vod contents. When streaming live content I keep getting 0m on my screen.
    Here is a part of my xml code.

    Live Stream
    10003
    Live
    SD
    hls

    hls
    SD
    0
    http://golive24.christianworldmedia.com:1935/emmanuelstream/emmanuelstream/playlist.m3u8

    Live Stream
    Live
    Live

    Is there a way to fix this. Thanks for your help.


  • I am new to development and I found this tutorial to be straight forward and awesome. Thanks!


  • BillBill

    Author Reply

    Interesting information. I got into making my own roku channels about 4 years ago. I have two in the channel store. Military Chronicle and Tips For Survival. I also have several private channels. One of them is John 3:16 channel which features sermons by John C. Vaughn.


  • Thanks for the help here, I was hoping to use Videos I have on YouTube, will this be possible? I see you advise to use Vimeo,.
    Thanks
    Kevin


  • MikeMike

    Author Reply

    Thank you for this Cool Tutorial.
    I was very happy to create my first channel using the tutorial.
    It was successfully published to Roku.

    While I was learning with roku, I found a very useful website that creates Roku channel without any complex configurations and no need to side load, they called it Channel Maker http://www.findstep.com I’ve created more channels here and published also to roku.

    But without this tutorial, might be my mind will not be opened with the possibilities. Thanks


  • CrisCris

    Author Reply

    Hi Trey, I made a Roku channel following your directions and it works great (IN HD). But as soon as I go to roku>settings> and change the screen size to 4:3 SD for testing the channel, my channel loads, but the videos won’t play. So, my channel only works in HD. I am using Vimeo Pro, and the videos do work in HD mode, so I don’t think that’s the problem. Do you know how I can solve this issue? I am using the videoplayer from the Roku SDK.


  • AlexAlex

    Author Reply

    Nice tutorial, but the part on Vimeo needs to be updated. First, the method of getting the actual URL would not work because the resulting URL uses SSL. Even if it did work, it would expire and stop working after a while. The trick is to obtain the actual URL to the mp4 file from the redirected URL (which does not change) using BrightScript, and then pass this URL to the player.
    If you could update the article to show how to use Vimeo as the streaming server, that would be great.


  • Hi Trey,

    I built the Roku Channel and it got published. We want to incorporate our Live365 radio stream. We want to have a category for it, then when they click the category it goes to our radio stream. Roku said that we need to use a roAudioPlayer but I have no idea how to make that work for us. The Categories work off an XML manifest, they said springboard to the roAudioPlayer but I don’t have that file in my manifest either. Can you help?


  • ArunArun

    Author Reply

    i wish to write a web browser for roku. can you point me to some development links.


  • ArunArun

    Author Reply

    i wish to write a web browser for roku can you point me to developer links


  • Hello colleagues, how is the whole thing, and what you would like to
    say regarding this paragraph, in my view its actually awesome in support of me.


  • BonBon

    Author Reply

    My doubt is as simple as launching a web URL. Do we have a container or component like web view to wrap the web content or does it need to be parsed and re written using script ?


  • BonBon

    Author Reply

    Hi ,

    My issue is as simple as launching a web url. Do we have some container or component like web view for same or some other work around ?


  • ChrisChris

    Author Reply

    Hello, can someone help me on modifying my monthly subscription channel to check the users account to see if the subscription is still active at launch please? currently my channel is installed starting the monthly subscription but when the month runs out and they have canceled, the channel still works 🙁 Thank you


  • Hi Trey Gourley … your tutorial is really nice for a basic or new roku developer .. i need more information about roku . Brightscript working and the methods using


  • Hi guys, I hope that this forum remains active. It was a great help to me when I was building my channels.