Skip to content

MoralCode/FcastReceiverRoku

Repository files navigation

Install

The methods of installing this channel are (from most to least stable)...

Through the roku store

This is not yet published to the roku store. Feel free to contribute if you want to see this!

Through the store with a code

This is not yet published to the roku store. Feel free to contribute if you want to see this!

From Releases tab

To sideload a Roku channel from zip, see "upload your app to the roku". This requires your roku device to be in development mode, the top of the same article walks through how to do this.

Building from source

  1. npm install to install dependencies
  2. npx ropm install To prepare/organize roku packages into the correct place
  3. npm run build to run the production build/generate the .zip
Super-manual stuff

To deploy to a roku device in dev mode manually: bsc --deploy --host <IP ADDRESS> --password <PASSWORD>

Features

Feature Supported Tested by
MP4 playback ✔️ printf + netcat with big buck bunny url from google
DASH playback ✔️ terminal sender, grayjay
seek, pause, stop, resume ✔️ terminal sender/grayjay
set volume terminal sender
report playback progress ✔️ terminal sender/grayjay
V2: set speed terminal sender/grayjay
Image playlist terminal sender
video playlist terminal sender

Setting up the IDE for development

Install the BrightScript language extension for vscode or a compatible IDE (such as Vscodium).

Create a file at .vscode/.env with the following contents

ROKU_HOST=<IP of your Roku>
ROKU_PASSWORD=<development password you set when enabling dev mode>

The build and run and debug tooling within vscode works to allow you build and run (in debug mode) the roku channel on a real device.

Manual builds can be generated for upload to the tv using npm run build:dev. Uploading this way may not provide all of the debugging features, line highlighting on errors, or other niceties of the extension.

Troubleshooting

Sometimes, simply running a dev build can help get things un-stuck if "build and run" from vscode causes the tv to make the "roku bonk" noise but the channel doesn't open. Checking the extension logs are another way to potentially get more info on what happened

Testing Options

Testing protocol support can be done in several ways

printf + netcat with big buck bunny url from google:

printf "\x73\x00\x00\x00\x01{\"container\":\"video/mp4\",\"url\":\"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4\"}" | nc IP_ADDRESS 46899

FCast Sender terminal client (rust):

Using an app with support, such as Grayjay

Credits, Licensing, and Disclaimers

Thanks to FUTO for making the open source FCast protocol!

Thanks to @vadymbl for writing the video player UI(BSD-0 Licensed) and sample channel that was used as the basis for this project's own player UI.

Thanks to the Roku Developers for the documentation of the brightscript language and hello world sample code this channel used to get started.

Minimal or no AI was used in the main branch of this channel (attempts were made and they were not good enough to continue trying).

About

a work in progress roku channel implementing a Receiver for the Fcast protocol

Topics

Resources

License

Stars

Watchers

Forks

Contributors