Hacker News new | past | comments | ask | show | jobs | submit login
Roku releases IDK to allow consumers to develop applications for their Roku (roku.com)
187 points by kaladin-jasnah on Oct 30, 2021 | hide | past | favorite | 92 comments



It's amazing to me that Roku has the plurality of the US streaming market (37%), yet its development ecosystem is so terrible. For those who don't know:

1. The only public development API requires the use of their proprietary language BrightScript which is poorly documented, and for which no official compiler, interpreter, or runtime environment is available. Enthusiasts had to create an interpreter for it (https://github.com/sjbarag/brs) to speed up development time. Previously you had to push your app to a Roku to run it before you could learn of any syntax errors.

2. They do have a C/C++ API, but they limit access to big orgs and require an NDA to use it.

There are plenty of cool projects, like a Prince of Persia port (https://github.com/lvcabral/Prince-of-Persia-Roku).

That they are finally shoring up their poor developer ecosystem with C/C++ and JavaScript APIs is great, but it's unfortunate that they aren't allowing these apps to be distributed through their official store.


> Enthusiasts had to create an interpreter for it (https://github.com/sjbarag/brs) to speed up development time.

Author of that interpreter here - didn't expect to wake up to that repo appearing in a top HN comment! That started as a side project and was maintained with a few coworkers during spare work hours (thanks, Hulu!) for the past 3 years, along with a unit testing framework that runs in it (https://github.com/hulu/roca).

I'm happy to answer any "developing for Roku" questions that come up :)


> It's amazing to me that Roku has the plurality of the US streaming market (37%), yet its development ecosystem is so terrible.

Step 1: be a cheap (the cheapest?) option in the early phase of a market. This way you build up a sizeable customer-base using a market-segment with low/no expectations.

Step 2: app-developers will be forced to support your platform, despite low-quality platform, ecosystem or SDK if they want to be “everywhere”.

Step 3: With better/more popular apps supporting your platform you can start making more expensive devices or even sell/rent your platform to other players needing a checkbox to check before they can launch (ie smart-TVs).

Roku is really crap to use, but by playing by this book they’ve seemingly done well (as a business) so far.


"Roku is really crap to use"

I have used Google TV, Fire TV, Apple TV and Roku. I have used Roku both as a separate device and built into a TV. Out of them all I prefer to use the Roku. I even sold an Apple TV which was given to me and used part of the sale to replace it with a Roku Premiere+ which I found to be a much better experience.


I've used them all as well. I've found the best to be a rooted android TV box. idk if they still make them like they used to, but the Nexus player was by far the best TV box I've used after installing Kodi, adblock, and rooting.

I would love a dumb TV with one of these lil boxes again, but finding dumb TVs is hard and they're usually expensive and for commercial use from what I've found


Apple TV's touch remote is a travesty. Their UI is equally annoying when you realize they advertise the Apple stuff first, and you have to click Home again to get to your main apps. Compare any of them to Roku, and Roku is a barebones, works as expected, channel choosing device.


> touch remote is a travesty

> you have to click Home again to get to your main apps

Both of these are changeable via settings (if you’re talking about the current generation remote, if the old one an Apple TV can be trained to use any other remote). I have a bunch of Roku devices and an Apple TV and typically prefer the Apple TV: the apps are of higher quality, Airplay is a great added feature and most importantly: no ads. Roku used to have barely any but they’re adding more and more and it’s getting obnoxious.


Roku has had airplay for a while now.

Also there's no software configuration to change that terrible touch remote into something usable. Rewinding to catch a missed line is always "I hope it works" moment.


I won’t defend that remote but the good news is that Apple TV doesn’t ship with it any more. It’s back to a much more normal one.


My experience with Apple TV was that Apple advertised their own apps regularly. Also most Roku devices released in the last couple of years including Roku TVs support Airplay.


Where did you see these ads? I see no ads at all on my Apple TV so I’m curious.


My experience reflects OP's as well. It's not "ads", but things like searching using the SEARCH button inside a non-Apple app returns results from the Apple store.

If one uses it in a search box inside the app, it works in the local context. Imagine having to teach one's elderly parents what the difference is when the remote only has something like 5 buttons and one of them doesn't work how it's supposed to in a consistent manner. Local context vs. global context in searches is an absurd concept in the purview of the average consumer. Hell - I can't understand it half the time because it's so counterintuitive.

That's shady behavior and prioritizes Apple's own services over EVERY competitor.

Besides its terrible remote (the gen I have, at least), the usability constraints are insulting.

Roku has other severe limitations, but they don't outright manipulate their UI and their user experience in such an underhanded manner.


I'm confused by this too, and prefer Apple TV because it doesn't display ads. In my experience Roku does continue to display "special" ads, even if you turn off all user-controllable options.

I think parent commenters are referring to how the Apple TV app — which is great, but can be avoided by using the Home screen — aggregates all available content, and has a dedicated Apple TV+ tab. In other words, the Apple TV app is also the Apple TV+ app.


> Apple TV's touch remote is a travesty.

The old one was justifiably maligned, but the current one is great.


I have the latest and most expensive Roku that was available as of a year ago.

The thing struggled to keep sound and video in sync every time I disable or enable captions and then requires a restart to fix the issue.

That’s literally the most basic function this device is supposed to support and it cannot. I have never seen such a problem with any other device I’ve used, including a variety of chrome casts, a fire stick, an Apple TV, an XBox/XBox One, and even XBMC (installed on the original XBox), a variety of RPi solutions, etc.


I've used an old roku express, a roku TV and a new 4k roku (forget what the model was but it was made in 2020) and they all have the same app problems

Disney plus crashes more often than not in any given watching session.

Hbo Max tends to crash on the menu about 50% of the time.

Netflix crashes fairly often but not as bad as those other two.

I think it's still the best single solution for streaming but they really do need some quality control on their apps.

Having to wait for your TV to restart in the middle of a movie is never great.


I have used a Roku Express, Roku Premiere+ and now have 2 4k TCL Roku TVs. I have never had an app crash and use Netflix, Disney+ and HBO Max regularly.


On my 4K TCL TV, I've had quite a few issues with the Roku Netflix and Hulu appa... occasionally in Netflix it will just show garbled data whenever you try and play something, or on Hulu it will just refuse to actually start a show (I've noticed this happens mostly with only very specific series...) Solution is usually to restart the TV. Never had any issues while it's actually in the middle of playing anything though.


This has been my experience as well, at least with my TCLs. Never had a crash despite using Netflix, Disney+ and YouTube.


My second Roku from many years ago (first angry birds one) will crash occasionally using Netflix, will crash hard and reboot itself. Probably a thermal issue. Pretty anemic performance too. I think the software now just stresses the old hardware to the max. But to their credit, it was still receiving updates and worked. Finally retired it and replaced with new version and haven’t had it crash yet.


Are you sure it’s a crash? I used to think my apps were crashing until my remote batteries ran out and I was too lazy to replace them using the phone app instead.

And I noticed the “crashes” disappeared. Turns out there’s a bug with my remote that seems to automatically send a home signal to the device. But it’s also strange because it affected different apps differently.

I rarely saw it with Netflix. But YT was almost guaranteed.


I've experienced the use of about three different Roku TV's and they have a tendency to crash regularly with Netflix. I'm guessing Netflix is sucking up all the limited ram available on these TV's As the App is unbearably sluggish to use.


It is a bit ironic that Roku, which started life as a “Netflix Box” and developed this limited development ecosystem in order to perform on cheap hardware (they always wanted to keep the price under $100) now crashes using Netflix on underpowered devices. Note: as stated above Netflix uses non-public C APIs to run their own engine.


> Roku is really crap to use

I disagree, I find the Roku experience to be quite easy to use and it does what I want with no surprises in the UX.


“Easy” and “enjoyable” are different things. The Roku UI is extremely slow/jittery (even on the fastest models) and the layout of their software keyboard, in combination with the design of their remote (and/or smart TV remotes), makes entering text take an eternity as well. (And their voice support isn’t good enough to rely on in place of it.)

When a Roku is just sitting there doing its thing, it’s fine; but when you have to get it to do something else, it’s like a line at the DMV.


I think the software keyboard is a per app design, which is either a ding or a bonus (dev flexibility). Regardless, if you have to spend time typing/searching, using remote on phone is best, where you can use the phone’s keyboard.


I think they might have meant "crap to develop for"?


I have Roku spread across our entire renovated house including an outbuilding. Rock solid. 4 devices. Teamed up with Plex, and has been a fantastic experience so far (1 year and counting).

Simple. Solid. Works.

Nothing but praise from my side.

Literally, thank Gawd, as native TV smart apps are an absolute waste of time (they might as well retire them all now) and I don't want to get sucked into the other ecosystems.


Roku basically benefitted from 2 things: 1) The constant battles between Apple, Google, Amazon, where removing or not adding their specific media distribution channel to each others platforms was used as leverage in all sorts of unrelated negotiations. This meant that Roku was for the longest time the only device that supported AppleTV, Google, Prime Video.

2) Google’s insistence on it having a physical remote for their Chromecast players which in itself was likely a result of the fiefdoms which led to Chromecast and Google TV being separate products for the longest time.

Both of these things are not true anymore. Roku is no longer a neutral platform. And Google Chromecast now comes with a remote.

I see very little reason to pick a Roku over the Chromecast with Google TV and I suspect that Roku’s disadvantages will only worsen with v2 of the Google device.


I think the Roku Ultra is a great product, can't speak to the other levels, but it works really well in comparison to google's parade of stuff, amazon fire stick, apple tv, and smart tv apps on Samsung, LG, and Sony TVs. Also the remote finder is quite handy.

For me, the best aspect of it was their openness. All of the other competing products had their own streaming services, which meant problems with the other providers- why they spun this off from Netflix in the first place. This means the search will go across the different services to answer the pressing question of the day- which service is this content on and at what price? I was considering starting a company to offer this service until Roku met my need there.

Now though, the battle with Google over YouTube has me suspicious of this status. The temptation to chase recurring revenue streams is quite high.


That's disappointing for sure, but it's worth remembering how TINY Roku is compared to its competitors:

Amazon: about 1,300,000 employees

Google: about 135,000 employees

Roku: about 2,000 employees

Maybe they just don't have the resources to support a rich third-party dev ecosystem


How many of those amazon/Google employees are working on their respective roku alternatives? Your numbers don't really mean anything. For instance, Google could just as well only allocate 10 people to the chrome cast project, turning your statement around.


The point is that Roku are tiny underdogs competing against giants. If Google has only 10 people working on Chromecast, that's a choice they've made, not a resource constraint.


It doesn't matter if it's a choice they've made if they still beat Roku's dev ecosystem hands down. If Google can make a stellar dev experience out of Chromecast/Android TV with 10 engineers but Roku can't with 100 then it's entirely on Roku. The result matters more than whatever happens behind the scenes.


No they aren't, though they like to try to make people feel this way.

Again, I'm not sure how you can consider a company with a market cap of over 40 billion, and making 1.7 billion in revenue, some sort of "underdog competing against giants".

In their space, it's more like giants bumping each other around.


> a company with a market cap of over 40 billion, and making 1.7 billion in revenue

That's basically the definition of an underdog if you have a fraction of the number of resources (employees).


Well, i mean, technically the definition of an underdog is ": a loser or predicted loser in a struggle or contest"

Which is not about the resources at all but about viewpoint on success.

So i'm going to say "no, it's not basically the definition of an underdog".

Even in slang, you aren't an underdog if you could have whatever you need, but choose not to. You might be one if you need something, don't have the resources to get it, and have to make do anyway.

That is not the case for Roku - they could hire as many people as they like.


Roku has a market cap of >40billion, and >1.7billion in revenue. They have the resources to do whatever they want.

These are also not reasonable comparisons since the vast majority of the numbers in the other two companies are not on the software/hardware development side.

I would actually guess if you compared "the size of the team working on Google TV/Amazon Fire TV/etc", Roku is probably bigger (or the sizes were very close).

I would be shocked if it was "tiny" in comparison.


Which perhaps reinforces the idea that they should have leaned on open-source instead of proprietary tech?


If anything, their track record seems to reinforce the opposite idea. Their company is tiny but has a 37% market share according to previous comment, all while having a shitty and closed down developer ecosystem.

I'm generally pro-open source, so this is not coming from a place of shooting down open source, I'm just reading the context in this thread.


To me Roku seems like they are trying to modernize the TV cable industry rather than revolutionize it. They are following a different business model than most modern tech companies.


Wikipedia has a history of carriage disputes between the company and other companies. Sure, the recent Google spat could have been a one-off thing, but they seem to have an issue with a lot of folks.

My personal experience is that when one individual has a bunch of problems with a number of others, it is probably the one individual that’s the problem.


I find your presentation of this argument disingenuous and in bad faith.

> they seem to have an issue with a lot of folks

https://en.wikipedia.org/wiki/Roku#Carriage_disputes

4. They have 4 listed disputes in Wikipedia: NBC/Universal, HBO, Spectrum, and Google; the first three were resolved (the first one the same day as the grievance).

https://channelstore.roku.com

There are hundreds (if not hundreds upon hundreds) of services provided over the Roku hardware/service including it's direct competitors (Amazon Prime TV / Fire stick), more than I can sit here and count without wasting my life.

You would have readers believe that Roku is out there pissing everyone off, being the bad kid on the block, making demands and being a troublemaker. They have had 4 disputes. 4. Out of hundreds of partners. 4.


You don't mention the current disputes with YouTube and Amazon. If we look at top streaming players Roku has had a dispute with, they've almost collected the whole set!

And do consumers benefit from access to 300 "screen savers" but no HBO Max or other service they've paid for but cannot access on Roku? (Note: the HBO dispute was resolved and is now fully supported on Roku, but during its launch, was not available on Roku) Roku wants us to think so, but my family simply says "Let's just get a Google or Fire stick".

The partner count is specious. The real question is whether Roku provides access to the partners each person wants. Removing, or threatening to remove, top players for whatever intention does not engender trust.

Every TV in my house had a Roku a year ago. Post covid, we now have just one. All those tiny partners and apps on the Roku catalog couldn't offset the fact that what the family wanted to see either wasn't on Roku, or was on some corporate gamesmanship countdown.

And it's so disappointing. They were the player without a bias, providing open access to the TV screen to any tiny niche media player. But they changed. Can't blame them, but it feels like this short term money grab of making media and forcing higher fees for access is the first step on the path to being the next Tivo or WebTV.


It's just because they had a massive head start and targeted an older generation. Also if that 37% includes smart tv's with "roku" built in that is artificially inflating the number.


Roku was a sign company, they made digital sign software. They just converted their existing setup to TV video streaming.

Why redo everything?


Not enough resources to support third party dev, but plenty enough to invest in their own programming language seems like odd priorities to me.

But it does seem like they are fairly successful regardless.


2000 employees is pretty huge for a company that just makes a streaming box isn't it? Amazon and Google do way way more things.


Roku will ban you from installing custom apps if your device has ever installed an app that’s been removed for TOS violations. My account was permanently blocked from side loading because I had downloaded & tried a M3U player.

The demise of this company is long overdue.


Thanks for sharing. I'm not a regular Roku user but I do have one and I was thinking about hacking on it. Knowing that Roku can ban you from installing custom apps on the device I purchased is enough to make me spend my time elsewhere.

I'm really glad that companies like pine64, frame.work, and purism, etc are starting to emerge. The Roku, Apple, John Deere etc user-hostile approach of "you don't own it, we do. You're renting it from us and we will tell you what is permitted" needs to be defeated.


Which makes "your device" a misnomer here. Roku clearly still owns it.


Generally if you pay for a device then it really should be “your device”. Nobody goes around saying the owner of an iPhone is Apple (colloquially).


That may be a reflection of your circle. I say that all the time, and many of the people I talk to about it agree completely :-)


> Nobody goes around saying the owner of an iPhone is Apple (colloquially).

I do.


Something I haven't really seen discussed anywhere since I first saw this earlier:

>Sunsetting non-certified channels

>With the release of the IDK and beta channels, Roku will remove non-certified channels from the platform by March 2022. The Roku IDK and beta channel feature will facilitate broader innovation, improve beta testing, and offer a better development experience and a more standardized development process across streaming platforms.

So basically, channels via code seems like it's going away. I hope they have a suitable replacement in mind with the IDK


Wait does this mean unlisted/private channels are going away? That effectively kills sideloading


https://developer.roku.com/docs/developer-program/idk/idk-ge...

> IDK applications are for personal use only; they can only be run after being sideloaded on an IDK-supported Roku streaming player running Roku OS 10.5 (or later).

So IIUC the IDK explicitly allows consumers to sideload apps.


But it seems to be an all-new API, so existing sideloadable apps are not trivially migratable?


If you can convert BrightScript to C++, then that's half the battle already.


The Roku interface is great and I would much prefer it over the likes of Apple TV.

However, Roku collects your viewing data (including by taking screenshots) and anything else it can about you (eg. the TCL Roku TVs have mics) and sell it to its valued partners.

This is all in the EULA.


From [1]:

> On Roku-powered smart TVs, you can turn off ACR by going to Settings > scroll down and select Privacy > Smart TV Experience.

> Next, uncheck “Use Information for TV Inputs” to disable ACR. Although this will stop your Roku TV from identifying your content on the pixel level, Roku can still collect data about the Roku TV streaming channels you’ve installed and use.

> To prevent personalized ads on your Roku profile, go to Settings > Privacy > Advertising, then check “Limit ad tracking.” Note: This setting is also available on Roku streaming gadgets.

---

> (eg. the TCL Roku TVs have mics)

Is there any evidence that they transmit anything from the mics?

[1] https://www.komando.com/tech-tips/stop-smart-tv-tracking/544...


> IDK applications cannot be run on Roku TVs, Roku streambars, or updatable/legacy streaming player models.

This is unfortunate. I was only interested in the IDK because roku is built in to my tv.


At least some of them do appear to support sideloading, for example my TCL 43" from 2019. I haven't tried loading anything yet, but following the "Enable Developer Mode" process described in the Roku docs [1] does yield the option to enable the dev server, and I don't know that there's any reason to suspect IDK apps won't run if loaded. (Might need to update the OS, though; I haven't done that in a while.)

[1] https://blog.roku.com/developer/developer-setup-guide


What is the model # of your TV? I tried searching several of the TV model #s listed in their matrix and nothing came up.


The IDK docs list several supported Roku TB models (not mine, though)...


All apparently first-party by the product names, though, which mine isn't.

I'm going to try building and sideloading one of the IDK sample apps today. If it works, I'll update with details including the TV make, model, and OS version; if not, I'll...just update with that, I guess.


0 for 2. The first-party stick with OS 10.5 gives an "IDK applications are not supported on this device" dialog; the TCL TV, with OS 10.0 and no update available, just black-screens and stays that way till I hit Home.

I'm not really sure what the point is here, if I'm honest. Why even bother releasing an SDK with such limited device support, especially pitched at hobbyists who can be assumed to have (and want to support) the widest device range of any developer segment? It's not as if I'm going to buy new hardware just to look at my calendars and other day-planning info over coffee on my kitchen TV rather than my phone...


So, roku started out as a democratic middleman offering access to multiple streaming players. But it's devolved into another turf war, where it now continually threatens it's purchasers with loss of access, today Youtube, tommorrow Amazon Prime Video.

From such heights, it's really becoming very disappointing.


Actually Roku started as a "Netflix Box" meant to stream Netflix content, and funded by Netflix.


That was year one-ish. Within a very short period, Roku expanded well beyond that, as it was the only small box and soon stick with an OS, vs. Chromecast, Intel WiDi/Miracast, and other tech that tried to become a remote display, and the myriad of tv boxes that faded out or got commoditized (a zillion tv boxes running android). Replay, TiVo, WebTV, most of the standalone boxes had faded by that point, and Roku, from the bones of Replay, quickly became the place to have "channels" separate from a cable or YouTube/Metacafe/Dailymotion/Vimeo controlling platform etc.

So, yeah, early early days were Netflix bound, but with 1200 channels in 2013 and over 3000 by 2015, Roku was clearly showing more than just Netflix. At that time, sounded like Roku was the open door to distributing content to a group of hungry viewers...

And today? Still tons of "channels"... but instead of the garden of a million flowers, we instead have the top line players offering the most requested media, and so 3000 or 30000 makes little difference. In addition, a quick perusal of https://channelstore.roku.com/ reveals that past the first few "most popular" options, it's a desert out there. Lots of screen savers and public domain streamers, and little else.

So, what are Roku's options? It can promise that all can play with carriage fees reflecting consumption. It can offer it's own content (The Roku Channel) to compete. It can offer an advertising service to allow monetization of channel/media creators. And/Or, it can decide that it owns it's viewers, and instead of being an open gateway, it's a closed wall. And that's where we are: It's not easy to be a slightly-smart pipe, so Roku punted. Open no more.

I'll never get rid of all the Rokus, for hope that they'll come back around. But thinking back, the power of those early days in 2012-2015 when you got a Roku because you wanted to see almost everything without having to get a sketchy box from who knows where and have it pull torrents in the background... well, those were the days, indeed.


Did it? The earliest recollection I have of Roku is of the SoundBridge, a music player released before Netflix streaming was even a thing. It seems the company was reincorporated after they hooked up with Netflix.


I'm guessing this is in response to the fact that Google won't maintain an official YouTube app for them anymore? It's a shame that companies are only interested in releasing SDKs when they can eke out a petty win (not to mention their hardware is basically irrelevant by now) but it's nice to have nonetheless, I suppose.


Someone else mentioned it but under the surface there are killing the ability to add private channels via codes. Those channels were not in the Roku store and could have allowed Google to work around the ban.

https://www.azukisystems.com/blog/roku-private-channels/

In this post there is a unofficial twitch app and an unofficial iTunes podcast app. That type of thing would not be allowed in the Roku channel Store.


I feel like it'd be compelling to some enthusiasts because of the low barrier (well, minus learning the IDK) to developing something they'd like for a Roku.

Although if you're going to… develop something for a Roku, I feel like a Raspberry Pi might be easier.


But Roku already has some things already built in. Including a very functional remote. Sure all of that can be created on a raspberry pi - but is it really worth the effort? Plus cost wise, Roku would be cheaper than a raspberry pi by the time you add up the cost of all the individual components.


Yeah, I've gone the raspberry pi route for a tv connected home media center, I'm much happier with a bunch of Rokus & a remote Plex server. It's 100x more polished than even the best open source projects, and it is no effort on my part to keep them up to date and functional. Just one less thing to think about, making room for other fun projects.

I'm excited about this being released.


Plus, a lot of people already own a Roku and not a Raspberry Pi.


+it's quite nice not to have to fiddle with your TV inputs.


CEC can help you here :)


A raspberry pi (a PC running Linux) can't do 4K Netflix or HBO.


It's not a surprise that companies won't compete unless they are forced to. I'm glad they choose to make a more open platform their competitive strategy.


I'd say Android TV is far more open than Roku.


I’m skeptical this will amount to much.

Their current developer platform is just awful to work with. I don’t have faith this will be adopted.


With all the complaints I'm seeing here about lack of documentation, calling it an "IDK" feels like some sort of meta joke.


tbf, 'D' is 'developer', not 'documentation'


Do these community supported SDK/APIs ever work? In my experience (Strava and Spotify APIs) it's an excuse for the company to release a load of half-baked crap and then wash their hands of supporting it. Allowing them to tick the box that they offer a public API and make themselves look better. Despite members of the public donating their time to help each other, without participation from the company itself it's all trial and error development with everyone running into the same bugs that never get fixed.

It's great that some companies have finally recognised the value in providing public SDK/APIs but they should be investing in supporting them also.


This is a nice throwback to the time Roku has a public SDK for their HD1000 https://web.archive.org/web/20040605002125/http://www.rokula...


Curious about making an app that plays shows on a schedule just the way old tv worked. And my kids can watch their shows but not on demand


I hate Roku. I bought a Roku tv and it started putting advertisements on the Home Screen.


When I had bought my Samsung TV in 2017, I too got advertisements in the home bar. I got livid and disconnected it from the internet, and connected my Chromecast and Apple TV to it. Never looked back since.


roku, go all in on it, show them your teeth. but seriously, when the brand came out, it actually become a huge part of my family right away, everyone was talking about it. this was like the first year, fond memories


I’m waiting for flutter support for roku apps




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: