Many of our clients ask how to put their live stream on Roku like a regular TV channel. The good news is you can do it with your Hosting Marketers streaming service using a small Roku app that plays your HLS (.m3u8) link.
Below is the exact process, start to finish.
1) Decide what you’ll stream
- Live streaming from OBS, vMix, Wirecast, etc.
- On-demand MP4 files hosted on your server.
If you’re unsure about bitrate or viewer caps, we can customize your package.
>> Wowza Streaming Engine plans
2) Find your HLS link in the control panel
Roku plays HLS. Grab your playlist URL from the control panel:
- Log in to your Wowza RTMP control panel.
- In the left menu, open Widgets & Links.
- Copy the HLS / playlist.m3u8 URL.
Example:
https://5caf24a595d94.streamlock.net:1937/ajewxuqktbm/ajewxuqktbm/playlist.m3u8
Tip: Ensure the stream is public (no token/IP lock) while testing.
3) Prepare your Roku developer environment
You need a Roku device and a free developer account.
- Sign in: https://my.roku.com/signin
- Join Developer Program: https://developer.roku.com/overview
- Enable Developer Mode (guide):
https://developer.roku.com/docs/developer-program/getting-started/roku-dev-prog.md
When you enable Developer Mode, write down the device IP (e.g., http://192.168.1.25) and the password shown on your TV.
4) Download the Roku example app (template)
Use a ready-made SceneGraph example and swap the demo URL for your HLS link.
Unzip it on your computer. You’ll see:
manifest– app metadatasource/– BrightScript files (e.g.,MainScene.brs,main.brs)components/– UI elementsimages/– icons and splash screens
5) Insert your Hosting Marketers HLS link
Open /source/MainScene.brs and replace the demo URL:
videoContent.streamFormat = "hls"
videoContent.url = "https://5caf24a595d94.streamlock.net:1937/ajewxuqktbm/ajewxuqktbm/playlist.m3u8"
videoContent.title = "Live Stream"
If the template also references a URL in /source/main.brs, replace it there too.
6) Update channel info and images
Edit the manifest file:
title=Hosting Marketers Live
description=Live streaming powered by Hosting Marketers (Wowza)
provider_name=Hosting Marketers
major_version=1
minor_version=0
build_version=00001
Replace images in /images with your branding using Roku’s sizes:
| File name | Resolution |
|---|---|
| icon_focus_hd.png | 290×218 |
| icon_focus_sd.png | 246×140 |
| splash_fhd.jpg | 1920×1080 |
| splash_hd.jpg | 1280×720 |
| splash_sd.jpg | 720×480 |
7) Sideload the app to your Roku (test build)
Create a ZIP of the app contents (not the parent folder):
Windows/macOS example:
zip -r my-roku-channel.zip manifest source components images
- Open the Roku developer web address (e.g.,
http://192.168.1.25) in your browser. - Log in as rokudev using your password.
- Click Upload, select your ZIP, then Install.
- Your channel launches—verify the stream plays smoothly.
8) Package for publishing
- From the Roku developer page (on the same device), create a signing key.
- Use Packager to generate a
.pkgfile. - In the Roku Developer Dashboard: https://my.roku.com/signin >> Developer Dashboard >> Public Apps >> Create Channel.
- Complete your Store Listing, upload the
.pkg, run Static Analysis, and Schedule Publish.
9) Recommended encoder settings for Roku
- Video codec: H.264 (Baseline/Main)
- Audio codec: AAC (44.1 or 48 kHz)
- Bitrate: 800–1500 kbps for broad compatibility
- Frame rate: 25–30 fps
- Keyframe interval: 2 seconds
If InstantTV/Roku warns about bitrate, lower to ~1000–1200 kbps and retry.
10) Optional: test the same link on other players
Your HLS URL also works in InstantTV, VLC, iOS/Safari, and most Smart TVs.
Paste it into “Add Stream” or “Custom URL.”
FAQ
My live video won’t play on Roku. What should I check?
Most issues are bitrate related. Try 800–1500 kbps, H.264 + AAC, keyframe 2s. Always use the HLS (.m3u8) link from Widgets & Links, not RTMP.
Where do I find the Roku-compatible link again?
Control panel >> Widgets & Links >> copy the HLS / playlist.m3u8 URL.
Do I need adaptive bitrate (ABR)?
Not required. Single-rendition HLS works. ABR improves experience on slow networks and can be configured on request.
Can I submit a private channel instead of public?
Yes. You can sideload for testing and also publish unlisted/private channels for controlled access.
Try it free
Want to test first? Grab a free demo account and try HLS + Roku with no risk.
https://hosting-marketers.com/customers/index.php/store/rtmp-server/demo-account
End-to-end: from OBS to Roku (InstantTVChannel + Roku Developer)
Prereqs
- Live encoder (OBS) pushing RTMP to your Hosting Marketers / Wowza endpoint.
- Your HLS playback URL (from Widgets & Links in the control panel). Example:
https://5caf24a595d94.streamlock.net:1937/ajewxuqktm/ajewxuqktm/playlist.m3u8 - InstantTVChannel.com access (client login).
- Roku Developer account access: https://developer.roku.com/apps
Step 1 — Verify your HLS link
- Start the stream in OBS (green “LIVE” indicator).
- Test the HLS in a player (VLC >> Media >> Open Network Stream >> paste URL).
If it plays in VLC, it will play on Roku.
Screenshot placeholder: “VLC playing the HLS link (proof the feed is live).”
Alt text: “VLC window showing live HLS playback from Hosting Marketers stream.”
Step 2 — Open the channel in InstantTVChannel
- Log in to InstantTVChannel.com.
- Go to Channels and click the channel name (e.g., The Hip Hop Garage).
Screenshot placeholder: “InstantTVChannel >>> Channels page with the target channel selected.”
Alt text: “InstantTVChannel channel list highlighting the selected Roku channel.”
Step 3 — Add the live item under Content
- Left menu >> Content.
- In the tree, select the Live folder (or create a new one: Cmds >> New Category/Folder >> name it “Live”).
- Right-click that Live folder >> Cmds >> New Content Item.
- Click the new item and fill the fields:
- Title: Live Stream
- Content / Stream URL: paste your HLS
.m3u8
Example:https://5caf24a595d94.streamlock.net:1937/ajewxuqktm/ajewxuqktm/playlist.m3u8 - Content Type / Format: HLS / HTTP Live Stream
- Bitrate (kbps): 1000–1500 (start with 1200 for Roku stability)
- Audio: AAC
- Is Live: Yes
- (Optional) Add a poster: 1280×720 or 1920×1080, HTTPS URL.
Note: If you see a red “Cannot load poster image” warning, it’s only the image URL — it doesn’t affect video playback. Replace or remove the poster URL.
Screenshot placeholder: “Live content item open with Stream URL set to the HLS and a playing preview.”
Alt text: “InstantTVChannel content editor showing HLS URL and live video preview.”
Step 4 — Build and download the Roku package (.pkg)
- Left menu >> Channels.
- Click the Pkg icon (yellow cube) for your channel.
- Click Download Pkg to download the
.pkgfile.
Screenshot placeholder: “Channels page with the yellow Pkg icon and Download Pkg button.”
Alt text: “InstantTVChannel channels page showing the package download button.”
Step 5 — Upload the package in Roku Developer Dashboard
- Go to: https://developer.roku.com/apps and click your channel name.
If you land on Static Analysis, click the channel name in the breadcrumb (e.g., Public apps / The Hip Hop Garage / Static analysis >> click The Hip Hop Garage). - Open the Channel Package section and Upload package (.pkg) you downloaded.
- Click Save, then Run Static Analysis.
Warnings are normal (auth/billing libraries, memory events, ads libs). Errors must be fixed.
Screenshot placeholder: “Roku Static Analysis page showing warnings only.”
Alt text: “Roku Developer static analysis report with non-blocking warnings.”
Step 6 — Schedule publishing
- In the channel sidebar, open Schedule Publish.
Direct link pattern (replace APPID):https://developer.roku.com/apps/public/APPID/schedulePublish - Enter short Release notes (example):
“Updated live stream source and optimized bitrate for Roku playback; verified HLS via Hosting Marketers.” - Confirm to Schedule (or Publish Now, if available).
Screenshot placeholder: “App scheduled for publishing confirmation screen.”
Alt text: “Roku Developer confirmation message stating app scheduled for publishing.”
While Roku reviews
- Keep the HLS reachable (leave OBS running a loop if needed).
- Don’t edit anything in the channel until the status changes (edits can cancel the schedule).
- Typical approval: same day to 1 business day.
Recommended encoder settings for Roku
- Video: H.264 Baseline/Main
- Audio: AAC 44.1/48 kHz
- Bitrate: 1000–1500 kbps
- FPS: 25–30
- Keyframe interval: 2 seconds
Common pitfalls
- Zipping the wrong level (for Roku SDK builds): manifest must be at the ZIP root.
- Using RTMP URL instead of HLS. Roku requires .m3u8.
- Too-high bitrate (over 2–3 Mbps) causing stutter or playback errors.
Helpful links
- Roku Developer Dashboard: https://developer.roku.com/apps
- Schedule Publish (replace APPID):
https://developer.roku.com/apps/public/APPID/schedulePublish - Test a free demo (Hosting Marketers): https://hosting-marketers.com/customers/index.php/store/rtmp-server/demo-account