Reference homepage
Clarify backend startup instructions
Add README
A web app that lets you control Roku devices on your local network
https://git.sr.ht/~pistos/remoteku
As per the Python documentation, create a Python virtual environment:
python3 -m venv venv
Enter the Python virtual environment:
. venv/bin/activate
Install the dependencies:
python -m pip install -r requirements.txt
Install the dependencies:
cd frontend
npm install
Two daemons need to be running: the backend and the frontend.
Start the backend (from the root of the repository, and within the Python virtual environment):
./start-server.sh
Start the frontend (in another shell/terminal):
cd frontend
npm run serve
Visit http://ip.of.serving.host:8080 in a browser.
As per Vue CLI documentation and webpack documentation, a different frontend port than 8080 can be specified thus:
npm run serve -- --port 8081
Upon visiting the web app, the app scans the local network for Roku devices, and lists them by IP address. Choose one, and then a graphical representation of a physical Roku remote control will be presented. Below the remote control is a text field used for quick text entry on the Roku. Below that is a grid of Roku apps that are installed on the chosen Roku.
For most buttons on the virtual remote, clicking/tapping on them will send the button press to the Roku. (At this time, not all button presses are implemented.) The keyboard of the browsing device can also be used; see Keyboard Shortcuts section, below.
After a text field is activated on the Roku, the text field in the remoteku web app can be used to quickly send keystrokes to the Roku (in a batch) to fill in the text field on the Roku.
Key | Button pressed |
---|---|
Up arrow | Up |
Down arrow | Down |
Left arrow | Left |
Right arrow | Right |
Enter | OK |
Backspace | Back |
Esc | Back |
Space | Play/Pause |
Page Up | Rewind |
Page Down | Fast Forward |