Skip to content

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

License

Notifications You must be signed in to change notification settings

MoralCode/FcastReceiverRoku

Repository files navigation

Install

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

Building and installing from source

THis install method will require your roku device to be in developer mode.

npm install

To just run a non-development build/generate the .zip to install via developer mode: npm run build

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

Releases

No releases published

Contributors