/r/RokuDev

Photograph via snooOG

/r/RokuDev

1,947 Subscribers

1

Digital signage vimeo showcase solution

Hey everyone.

We want to display a Playlist of videos in our many offices around the globe. A lot of them have rokus. We'd like to setup a private channel with a vimeo Playlist or showcase (we are enterprise pricing tier). I think the big issue is we can only have like 15 viewers total for a private channel?

If that's the case is there another solution for this issue within roku? We don't want to make the channel public for obvious privacy issues. So just curious for your thoughts.

Any and all help is appreciated.

3 Comments
2024/10/20
01:42 UTC

1

Searching for a new Job

Hi everyone, does anyone know of a company looking for a Roku developer? I have 4 years of experience as a Roku developer and a degree in software engineering. Thanks!

1 Comment
2024/09/24
17:25 UTC

1

Unity game to Roku

Hey, I have developed games on android platform via unity. Can someone share some knowledge if, and how, i can convert those unity projects to publish on roku?

Also, if anyone has related source where I can research on it further that would be great. I tried to find some info online but couldn't get much of use as I'm fairly new for Roku development without prior experience

4 Comments
2024/09/11
17:05 UTC

1

Creating App that displays data from API

Hello,

I'm new to brightscript and scenegraph, and am running into the first step in my project which is to get data from an API to display on screen. I'm making a train tracking app, where I want to display live train times, refreshing every 30 seconds.

So far I have the code below, which I'm testing on another api. I'm happy if someone has some boilerplate code to get the api response displayed on the roku app - I can then work on parsing it.

Any ideas on my scripts?

manifest

title=CTA Train Tracker
subtitle=Live train arrival times

major_version=1
minor_version=0
build_version=00001

mm_icon_focus_hd=pkg:/images/focus_icon2.png
mm_icon_side_hd=pkg:/images/side_icon.png

screen_savers_needed=false
splash_screen_fhd=pkg:/images/splash.png
splash_screen_hd=pkg:/images/splash.png
splash_screen_sd=pkg:/images/splash.png

splash_color=#189950
splash_min_time=1000

ui_resolutions=hd

require_aacsdk=false
bs_libs_required=roku_ads_lib

MainScene.brs

sub init()
    print "MainScene.brs init() started"
    m.label = m.top.findNode("label")
    m.fetchTask = m.top.findNode("fetchTask")

    ' Set up message port for communication between task and scene
    m.port = CreateObject("roMessagePort")
    m.fetchTask.setMessagePort(m.port)
    
    ' Start the task to fetch data
    m.fetchTask.control = "RUN"
    print "Fetch task started"

    while true
        msg = wait(0, m.port)
        print "Message received: " + msg.ToStr()
        if type(msg) = "roSGNodeEvent" and msg.getNode() = m.fetchTask then
            if msg.getField() = "content" then
                data = msg.getData()
                print "Data received: " + data.ToStr()
                if data <> invalid and data <> "" then
                    m.label.text = data.headers["User-Agent"]
                    print "Label updated with User-Agent"
                else
                    m.label.text = "Failed to fetch data."
                    print "Failed to fetch data"
                end if
            end if
        end if
    end while
end sub

main.brs

sub main()
    m.top = createObject("roSGScreen")
    m.port = createObject("roMessagePort")
    m.top.setMessagePort(m.port)

    print "Script started"

    ' Create and display the main scene
    m.top.createScene("MainScene")
    m.top.show()
    print "screen shown"

    while true
        msg = wait(0, m.port)
        print "waiting"
        if type(msg) = "roSGScreenEvent" then
            print "screen close"
            if msg.isScreenClosed() then
                exit while
            end if
        end if
    end while
end sub

MainScene.xml

sub init()
    print "MainScene.brs init() started"
    m.label = m.top.findNode("label")
    m.fetchTask = m.top.findNode("fetchTask")

    ' Set up message port for communication between task and scene
    m.port = CreateObject("roMessagePort")
    m.fetchTask.setMessagePort(m.port)
    
    ' Start the task to fetch data
    m.fetchTask.control = "RUN"
    print "Fetch task started"

    while true
        msg = wait(0, m.port)
        print "Message received: " + msg.ToStr()
        if type(msg) = "roSGNodeEvent" and msg.getNode() = m.fetchTask then
            if msg.getField() = "content" then
                data = msg.getData()
                print "Data received: " + data.ToStr()
                if data <> invalid and data <> "" then
                    m.label.text = data.headers["User-Agent"]
                    print "Label updated with User-Agent"
                else
                    m.label.text = "Failed to fetch data."
                    print "Failed to fetch data"
                end if
            end if
        end if
    end while
end sub

FetchApiTask.brs

sub Run()
    print "Running fetch task"
    url = "https://httpbin.org/get"
    transfer = CreateObject("roUrlTransfer")
    
    if transfer = invalid then
        print "Failed to create roUrlTransfer object"
        m.top.content = invalid
        return
    end if
    
    ' Set the custom User-Agent header
    userAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36"
    headers = { "User-Agent": userAgent }
    transfer.SetHeaders(headers)

    print "Setting URL: " + url
    transfer.SetUrl(url)
    response = transfer.GetToString()

    if response <> invalid then
        print "API response: " + response
        jsonData = ParseJSON(response)
        print "Parsed JSON: " + jsonData.ToStr()
        m.top.content = jsonData
    else
        print "Failed to fetch API data"
        m.top.content = invalid
    end if
end sub




0 Comments
2024/08/29
02:13 UTC

1

Want Roku app for my website members, is this possible?

I have a small wellness website full of video content. I have subscribers who would like to watch this content on their Smart TVs. Is it possible to build a Roku app that has an authentication layer that allows me to confirm that someone is signed up on the website before giving them access to the video content (hosted on AWS)?

How does this work with Roku's TOS regarding their "cut" of subscriptions?

0 Comments
2024/06/02
15:46 UTC

1

How do apps get brightscript mac address?

Hello everyone, I noticed that some apps can obtain a Mac address with it, you can use the web interface to make settings on the player and add a playlist, for example

your mac address: 55:01:87:12:03:53 (Only example)

So far so good, but I couldn't find in the documentation how to get this Mac, the most interesting thing is that even after reinstalling the app the Mac remains the same, so it doesn't seem to be anything fictitious, randomly generated

Could anyone help me with something similar?

apps for example on Roku channel: Lumina player, IBO player pro

0 Comments
2024/05/04
03:17 UTC

1

Game Maker -> Roku app?

Is it technically possible to create a game in Game Maker, export it as a Javascript game and embed it using bright script?

3 Comments
2024/04/10
22:20 UTC

1

Wanting to create a Roku app with Vimeo as the video host.

Hey everyone,

Just looking to get some guidance with creating my Roku app with Vimeo as the hosting site. I have a Vimeo Pro account if that matters. I am wondering what is the easiest way to get my videos from Vimeo to my Roku app. Would it be creating a script to get my showcase/channel videos and turning that into a JSON format then hosting that document somewhere, or trying to use the Vimeo inside my app to communicate directly with the Vimeo API to pull the video data. If the second option is easier, does anyone have any insight to the code to make this possible? I've tried that method for days and I can't seem to get it, I make an API call with my client ID and secret to get the oAuth key then return that encode it and send it to Vimeo for an API call to get the video data. Then I am lost from there on the code to pull down that data, parse it and put it into the GridView. if anyone could help even a little bit that would be awesome.

I tried the DP2SceneGraph app but I couldn't get that to work because it doesn't like my Vimeo Showcase feed URL... If there's another tool that can take my Showcase feed URL and just spit out a generic channel that I can edit, that would also be great.

Thank you!

8 Comments
2024/04/02
19:26 UTC

2

Where can I find a Brightscript course?

I want to develop apps for Roku devices, but I can't find a Brightscript interpreter or compiler. I also can't find a course. Where do I start? I already found an example program with a hello world message. But where can I run/edit/compile this program? Where can I find a beginner's course?

13 Comments
2024/03/31
21:39 UTC

3

Looking for Community Testers for a Roku App in Development

Hi everybody, we are developing an app for Roku, and we would like to have its beta version tested by the community. It is something we think you would enjoy seeing, and we would definitely appreciate the feedback. Anybody interested please send us a DM. Thank you!

8 Comments
2024/03/24
23:28 UTC

2

Looking for Roku Developer for simple IP stream app.

Hey there,

I'm looking to see what it would take to develop a (in my head, could be totally wrong here) simple roku app. The goal is to be able to display a single HLS, TS, or RTMP stream. The app would just need to be able to automatically load the stream when launched. The stream does not need to come from the internet. Just the local network.

I'm trying to find an easy solution to access local IP streams that are made by IP encoders on the local network.

After proof of concept being able to add extra "channels" would be a bonus, with a default stream being selected when the app is launched.

1080p resolution should be more than enough for this use case/application, though future support for 4k would be nice down the road.

The only settings needed to start would to be able to change the stream url.

Thoughts?

Cheers

6 Comments
2024/01/30
19:19 UTC

1

ECP for "Play on Roku" like behavior?

I want to be able to us ffmpeg to render a video and then send it to the Roku as a home automation feature. Anyone every try something like this? I'm considering trying to do network capture to reverse engineer the "Play on Roku" functionality but that may be app-only functionality.

Thanks in advance for any pointers!

0 Comments
2024/01/11
16:03 UTC

3

Looking for a Roku Dev to build an app [crosspost]

EDIT: FILLED

Hey everyone,

Don't see any restrictions against this, so thought I'd crosspost it here.

I just posted a /r/ForHire posting looking for a Roku Dev to build an app. Remembered this subreddit existed as well.

Anyway, if anyone is interested, the full details are:

Looking for an individual, not an agency to help me build a Roku app for a very small streaming media company we are helping. They previously had one through Maz systems, but it went away when they canceled service with them

There already is an existing website in use with registration, login, and subscriptions using Stripe. The inner streaming site looks fairly similar to most streaming sites like Netflix, etc.

This new Roku app will not offer registration or subscription options. These will only happen via the website. So text should be included that says that they need to login to the website to modify subscriptions or register.

Details about the Roku App:

It doesn't need to look very high end. Basic is fine.

It will call already existing API endpoints being used by website.

Logged out user only sees splash screen to click login button.

Login form displays email address / password. Login uses existing API endpoint to login.

User can add/remove videos from a watchlist. (There is a watchlist endpoint)

Logged in area should look like a fairly standard streaming app.

Big image at top for featured video with title, play now button, add/remove from watchlist.

Then show the several rows of video thumbnails and title with the section header above each. Left to right scroll for each content row. (Content rows has an endpoint)

Clicking a video thumbnail should take you to the detailed page about that specific video

Detailed page has main big image, title, description, play button, and add/remove watchlist button.

Clicking a Play button starts the video.

The above are suggestions, but seem pretty standard for most Roku streaming apps I have used.

Possible to include? Login using code. Display a code that the user can input inside web app to log them into Roku. If so, the website will be updated to handle this feature.

Make sure to include the phrase "RKO" in your DM so I know you read this.

I don't really have any idea how much this would cost, but thinking they have a budget range of flat USD ~$3k or so.

There is potential for additional future work if this works out.

DM me if interested and a quote if possible.

BTW, I'll be helping you the admin side of this as I have setup Roku apps in the past. I just don't have the full time to do this right now. Ultimately, you will just send over a zip file of the app to me and I'll handle the submission to Roku.

Please include if you have built a Roku app before and example links to them if you can.

Thanks

4 Comments
2024/01/11
22:44 UTC

7

SDKconverter.com (Convert Your Roku Channel)

We made a Free Direct Publisher to SDK converter for the upcoming deprecation
We developed an SDK converter that takes the same JSON input as Direct Publisher and outputs the SDK for you to upload to Roku.

The short story is we had a client with a bunch of channels that needed this work done, so in creating the process to seamlessly let them migrate, we sort of realized this would be a nice tool for anyone to have.

There's a free version and paid (non-recurring, one-time) versions for monetization options, VAST Tag, etc.

We can also do the migration for you and build in any customization options you need.
Without further ado: https://sdkconverter.com/

3 Comments
2024/01/08
21:27 UTC

1

Development Application Installer

Hello. I am trying to add some stuff onto my roku tv but when i go to do so it never shows up i was thinking it could have something to do with this error --> Install Failure: No manifest. Invalid package. But im not sure because right above it it says --> Application Received: 2443854 bytes stored. (im not sure what all this means its my first time using the Application installer)

6 Comments
2024/01/04
18:10 UTC

1

Editing Menus in Roku SDK

I'm trying to convert my Direct Publisher channel into an SDK. I'm using the Direct Publisher to SDK template found here: https://github.com/rokudev/rdp-to-scenegraph-channel-template. Is there a simple way to create menus to organize my content based on their "tags"? Thanks for any help that you can provide.

1 Comment
2024/01/02
00:01 UTC

2

For those wanting to dabble in Roku dev now that Direct Publisher is gone...

Perhaps you've used the DP2SceneGraphWizard to convert your DP channel to SDK, or you're starting with some of the templates on Roku's GitHub page.

If so, I’ve come up with a streamlined development environment for those who are not as code-savvy as others.

Requirements:

• Roku Unit, with developer mode enabled.

• Windows (tested) or macOS (should work).

VSCode.

Roku Advanced Layout Editor (RALE)

• ZIP file from DP2SceneGraphWizard (easier) or Roku Sample templates from GitHub (more difficult)

  1. Unzip the DP2SceneGraph ZIP into a local folder. Let’s call it “workarea”. It should contain the components, images, and source folders, plus your manifest file. If you know what you’re doing, you can take a Roku Sample template from GitHub and place it in this folder instead; but you’ll need to do a bit more code work, including the manifest file. This is outside the scope of this workflow overview.
  2. Open RALE. Connect to your Roku.
  3. In RALE, click “Select Channel”, then “Directory”, not “ZIP”. Point to the “workarea” folder, and click the upload button. Your channel will be sideloaded, and your RALE interface should show your Roku channel UI.
  4. Open VSCode. Open the “workarea” folder.
  5. Manipulate the values in RALE until you get what you like. Because RALE is limited to what XMLs it will output (“Default nodes could not be exported. Only created nodes that were added by RALE will be exported.”), you need to manually make the code changes in VSCode. I know, this sucks.
  6. Save the changed file(s) in VSCode.
  7. In RALE hit the “Refresh” circle icon. This will force the code to be re-sideloaded into the Roku unit. Because you have changed the files in VSCode, the updated code is what will be pushed to your Roku.
  8. Rinse, repeat.
  9. Bonus: Save the “workarea” folder as a “workspace” in VSCode. If you have CoPilot, you now can ask CoPilot about your code and even have it generate updated code. This has saved me hours already!

I wrote this out of frustration of a very limited Roku dev environment. I hope this helps other new folk!

7 Comments
2023/12/24
22:48 UTC

1

Does a BrightScript Codepad exist ?

There are numerous JavaScript Codepad IDE's that exist. Is there one available for BrightScript ? I kind of want to do LeetCode type challenges using BrightScript but I'm not sure if there is a code pad that exists for brs where I could try this out.

0 Comments
2023/12/18
18:59 UTC

1

Changing playlist title from "shortFormVideos"

Hi all!

I am a complete novice looking to build a Roku Channel. I've hit a brick wall trying to change the title of the content feed in my application. It currently reads "shortFormVideos", as it does in the example screenshots at the link below:

https://developer.roku.com/docs/direct-publisher/rdp-sdk-coversion-guide.md

I am using DYNTube as a media source host. I have looked in every single file provided in the SDK conversion .ZIP (from link above) and have looked everywhere on DYNTube too. Cannot for the life of me work it out, I'm sure it's very simple but any help is appreciated!

Thank you.

3 Comments
2023/11/20
16:10 UTC

1

SceneGraph video player not working with certain M3U8 URLs

The SceneGraph video player (CreateObject("roSGNode", "Video")) appears to be unable to handle HLS via certain M3U8 URLs. I can get other web-based/HTML5 players, as well as Apple's AVPlayer (tvOS and iOS) to accept and stream from the URL just fine, but whenever I try to feed it to the video player in my Roku app, it errors almost immediately with an error complaining about no valid bitrates:

errorCode: -5
dbgmsg: "buffer: Loop: demux: Errors seen on all bitrates: extra: type:buffer:is_init:0: lasterror: 970: retry:0"
errorMsg: "no valid bitrates"

When I test with the Roku Stream Tester, I get a similar error: "Video PlayBack Error: no valid bitrates". I have also verified in all of Roku's sample video player apps, so I'm relatively certain it's not a client side code issue. I can reproduce on multiple devices.

I cracked open the m3u8 and am wondering if it's an encoding issue? Maybe Roku isn't playing nice with these codecs?:

#EXT-X-STREAM-INF:AVERAGE-BANDWIDTH=361293,BANDWIDTH=1335394,RESOLUTION=1280x720,CODECS="mp4a.40.2,avc1.640020"

The URLs are coming from a third party, so I don't have access to the manifest or any ability to change encoding.

Is this a bug or am I missing something? Thanks!

1 Comment
2023/11/19
14:40 UTC

1

Could it be possible to write a web browser in BrightScript?

0 Comments
2023/11/13
07:37 UTC

1

Managing 1000s of Channels

I work with a small business who has a couple hundred channels and scaling to thousands. Today it seems really inefficient and I haven’t spent much time looking at solutions but what are people using to manage thousands of channels?

In this case our client signs an agreement and they are setup under our developer account but technically my folks seem to be manually managing the channels.

Any help would be much appreciated.

2 Comments
2023/11/10
18:31 UTC

1

Uploading/Replacing ZIP FILE

Anytime I try uploading/replaceing a Zip I seem to not be able to successfully install and if it does it seems like I get it by luck. Other than that it just says “Replacing Application, Please Wait...”

2 Comments
2023/11/03
17:28 UTC

1

Content question

I was looking to open a Roku channel and wondered if I could get content to put on there like A fistful of dollars or Twister? If they are available, how much does it cost each time it airs, just ball park figures.

2 Comments
2023/11/03
12:50 UTC

2

Urgent API error

In view of the rule restrictions for "Search examples->keyword" in the developer documentation, we found that there was a problem in calling the API for the search function in the external-control-api in the latest system. When I call: 8060/search/browse?keyword=film through the description in the document, the page result I get is always keyword, but when I change the call content to: 8060/search/browse?film=keyword, the result I get is film. , I hope you can fix this BUG as soon as possible!!!!!!!!!

0 Comments
2023/11/03
10:36 UTC

3

IDK Fork

Heya, did anyone keep a copy of the Roku IDK around? They pulled all the source code and docs

2 Comments
2023/11/02
19:24 UTC

1

Roku developer mode website always keeps saying "The website experienced an unexpected problem" for a week straight. I can't sign up for developer mode because of this.

Can't sign up for Roku developer mode cause the website keeps saying "The website experienced an unexpected problem".

3 Comments
2023/10/19
04:08 UTC

2

Screensaver Static Analysis, and what's wrong with roku?

I have written a roku screensaver, but have am stuck in the static analysis. Some of the requirements seem to be contradictory to the requirements of a screensaver. For example, I cannot get the "AppLaunchComplete" beacon to fire when using RunScreenSaver(). The beacon will fire with either Main() or RunUserInterface(), but these are prohibited in a screensaver and bring up a new error about overriding the current screensaver. The second wants me to add supports_input_launch=1 to the manifest, however doing so creates the error that deep linking is not allowed on screensavers. I am new to this and understand I may be doing something wrong, however there seems to be a contradiction with this and screensavers. Also roku has been weird with me. I asked partner success about they returned only a blow off answer that did not actually answer anything. So I took it to the roku developer forum, only to be banned for no apparent reason. So I asked roku support about this only to be told that my email was not in the banned list. Is this a secret society and no one remembered to tell me? Feeling weird...

0 Comments
2023/09/27
11:15 UTC

2

Roku Developer cannot access Stats.

I am running two ROKU channels for a couple of years. We went down for a month but are back up and working now.

https://www.rokuguide.com/channels/coloradowebcamnet

But my Statistics for the channels both say for a while now..

503 Service Temporarily Unavailable

Is this just me or is everyone unable to see the channel statistics any longer.

1 Comment
2023/09/02
16:52 UTC

Back To Top