Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
MarkConiglio
Visitor

Request: Remove Connect to Internet Requirement

Dear All,

My name is Mark Coniglio, and I am a media artist who recently used 3M Streaming Projector powered by the Roku Streaming Stick to create an interactive dance performance. In this piece, I was generating a live http stream interactively in real time based on activity in the performance space. This all worked great, and the ROKU SDK made it easy to accomplish using the SimpleVideoPlayer as a model.

(A review and photos of the performance are here http://www.herald-dispatch.com/news/briefs/x262021230/Troika-Ranch-presents-light-dance-performance.)

But what had me tearing my hair out was the requirement that the ROKU connect to the internet at startup. (As I understand it, the streaming stick must ping api.roku.com before it will acknowledge a valid connection.) We were performing at at university, and. as is typical at universities, their internet was locked down tighter than a drum with 802.1X security. To to get around their security and get the projectors online required a super awkward configuration of multiple computers.

So I'm giving my pitch here to add a way to remove the connection requirement, at least when the development mode is turned on. If I could have just turned on the stick and starting streaming my source, I would have a few less grey hairs than I do now. 😉

Failing that, it would be good to know if the stick is just pinging api.roku.com, or actually requesting proprietary information. I suppose it would be possible to set up a DNS on my local server and fake out api.roku.com so that a ping would work. But some insight from the engineers on what the projector expects to "see" would be welcome if it's not top-secret info.

I know supporting crazy artist types like me is not the main focus of a company like Roku. But I would offer that when the XBox Kinect camera got opened up to the artistic world, a lot of amazing and innovative stuff happened. Maybe that will inspire you to consider my request.

Thanks for a great product and a easy-to-use SDK.

-- Mark
0 Kudos
3 REPLIES 3
RokuJoel
Binge Watcher

Re: Request: Remove Connect to Internet Requirement

Pressing:
Home 5x then ff play rew play ff

will bring up a screen where you can disable network pings. We suggest you don't click any of the other items on that screen.

- Joel
0 Kudos
MarkConiglio
Visitor

Re: Request: Remove Connect to Internet Requirement

Dear Joel,

Thanks a million! I give it a try.

Best Wishes,
Mark
0 Kudos
MarkConiglio
Visitor

Re: Request: Remove Connect to Internet Requirement

Dear Joel & All,

Thanks again for the telling me how to disable network pings. It works! I am now able to stream to the Roku using an ad-hoc network connection on my Mac. I assume one could do the same with Windows as well, but I'm a Mac guy so the instruction below will get you going on Mac OS.

Basic Assumptions

These instructions assume:

1) You already have a valid web server running on your computer. (Mac OS makes it pretty easy to run a local web server; see the Sharing item in the System Preferences under "Web Sharing" or, if using 10.7 or after, follow these instructions: http://reviews.cnet.com/8301-13727_7-57481978-263/how-to-enable-web-sharing-in-os-x-mountain-lion/.)

2) On that web server, you should have a folder containing a valid "index.html" file, an ".m3u8" file describing the live http stream, and the accompanying media files (which will have the ".ts" extension.)

In my case, I had a folder inside /Library/WebServer called "stream1". Inside that was the "index.html" file, a file called "live.m3u8" and the necessary".ts" files. For the setup described above, my "index.html" file looked like this:

<source src="http://10.0.2.1/stream1/live.m3u8" />

Regardless of the name of your stream's directory and/or the exact name of the m3u8 file, you must use an IP address of 10.0.2.1 -- that's based on the address the Mac OS Internet Sharing will provide to the Roku Streaming Stick.

3) Finally, you will need to have built your own channel based on the simplevideoplayer channel from the Roku SDK. The key here is that the IP address given by the "urls" parameter in the ".brs" file points to 10.0.2.1/stream1, where "stream1" is the name of the folder with your "index.html" file, ".m3u8" file, and the ".ts" files with the media.

Once this you made sure of all of this, follow the remaining steps to start streaming from your Mac to the Roku Streaming Stick.

Part I: Disable Network Pings on your Roku Streaming Stick:

1) From the main menu, click these buttons on the remote:

Home 5x, then ff play rew play ff

2) On the page that appears, choose the "Disable Network Pings" option. (Once you've done this, the text will change to "Enable Network Pings.")
3) Reboot the Roku. (I don't know if this is required, but I did it anyway.)

Part II: Setup Mac OS Internet Sharing:

1) Open the System Preferences and click Network
2) From the "Location" menu choose "Edit Locations..."
3) Click the "+" button and create a new location called "Roku"
4) For all potential devices except AirPort and Ethernet, select that item and click the "-" button to delete it. When you're done, you should only have AirPort and Ethernet left in the list.
5) Click the Ethernet item. Next to "Conigure IPv4" choose "Manually"
6) In the text box next to "IP Address", enter 10.0.2.10
7) In the text box next to "Subnet Mask" enter 255.255.255.0
😎 Leave the "Router" and "DNS Server" items empty

NOTE: You do not need to plug anything in to the Ethernet port on your computer. In fact, these instructions may not work if your Ethernet port is connected to a router. Leave it disconnected!

Part III: Enable Mac OS Internet Sharing

1) Click "Sharing" in the System Preferences
2) Click on the words "Internet Sharing" (don't click the checkbox yet.)
3) Next to "Share your internet connection from:" choose "Ethernet"
4) Next to "To Computers Using:", enable (check) the check box next to Airport
5) Click the button labeled "AirPort Options"
6) Create a name for your network, and a password with five letters/numbers. (Hint: make the network name short, because it's a bit of a hassle to enter lots of letters via the Roku Remote.)
7) Set WEP Key Length to 40 Bit
😎 Click OK
9) Enable (check) the check box next to "Internet Sharing"
10) When the confirmation dialog appears, click "Start"

Part IV: Fix Internet Sharing Bug in Mac OS X

(Note: You only need to do this procedure once. In finding this solution I have heard tell that the most recent versions of Mac OS do not require this mod. If you're using 10.8 or 10.9, you may want to try skipping to Part V to see if the Roku will connect without performing this modification. If not, come back to this step.)

If you are on a Mac and intend to use Internet Sharing to create an ad-hoc network, it will not work unless you make a modification to the bootpd.plist file. You can find the instructions here

http://michaelleo.com/blog/2011/02/eye-fi-upload-via-mac-os-x-internet-sharing/

in the section labeled reply_threshold_seconds Follow those instructions carefully to set the reply_threshold_seconds setting to 0, otherwise the Roku will refuse to the connect to your ad-hoc network.

Part V: Connnect the Roku

1) From the main menu on the Roku Streaming Stick, choose Network. Find your ad-hoc network in the list, and select it.
2) The Roku will check the connection. It will fail the last step (showing a red "X") but it will nevertheless connect to your ad-hoc network.
3) Upload your channel using the instructions in the part 7.3 of the Roku Developer Guide
4) After you've successfully uploaded your channel, it will automatically appear with the play option pre-selected. Click OK on the remote to start playing the stream.

If all is well, you'll see your stream on the Roku.

Thanks again to Joel at Roku who shared the hidden feature that allowed me to disable the network pings.

Have Fun,
Mark
0 Kudos