twitch-adfree-webos

Twitch AdFree

A webOS application that enhances your Twitch viewing experience by blocking ads, automatically claiming channel points, bypassing subscriber-only VOD restrictions, and providing additional features like emote support and improved chat styles.

Based on youtube-webos

Features

Note: Configuration screen can be opened by pressing 🟩 GREEN button on the remote.

Screenshots

Settings Screen

Contribution

We welcome contributions of any kind — code, documentation, bug reports, or feature suggestions.

If you find this project helpful and want to support its development, consider making a donation.

Your support helps keep the project active and maintained. Thank you! 🙌

Cryptocurrency Donations

You can also support the project with cryptocurrency:

Installation

Configuration

Configuration screen can be opened by pressing 🟩 GREEN button on the remote.

Autostart

In order to autostart an application the following command needs to be executed via SSH or Telnet:

luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"twitch.adamffdev.v1","pigImage":"","mvpdIcon":""}'

This will make “Twitch AdFree” display as an eligible input application (next to HDMI/Live TV, etc…), and, if it was the last selected input, it will be automatically launched when turning on the TV.

This will also greatly increase startup performance, since it will be runnning constantly in the background, at the cost of increased idle memory usage. (so far, relatively unnoticable in normal usage)

In order to disable autostart run this:

luna-send-pub -n 1 'luna://com.webos.service.eim/deleteDevice' '{"appId":"twitch.adamffdev.v1"}'

Building

git clone https://github.com/adamff-dev/twitch-adfree-webos.git
cd twitch-adfree

# Install dependencies (need to do this only when updating local repository / package.json is changed)
npm install

npm run build && npm run package

Development TV setup

Configuring webOS TV CLI tools with Developer Mode App

This is partially based on: https://webostv.developer.lge.com/develop/getting-started/developer-mode-app

ares-setup-device -a webos -i "username=prisoner" -i "privatekey=/path/to/downloaded/webos_rsa" -i "passphrase=PASSPHRASE" -i "host=TV_IP" -i "port=9922"
ares-setup-device --modify emulator --info "host=TV_IP"

Configuring webOS TV CLI tools with Homebrew Channel / root

ares-setup-device -a webos -i "username=root" -i "privatekey=/path/to/id_rsa" -i "passphrase=SSH_KEY_PASSPHRASE" -i "host=TV_IP" -i "port=22"

Installation

npm run deploy

Launching

npm run launch

Launching directly to a specific channel

You can launch the app and navigate directly to a specific Twitch channel using the channel parameter.

Using luna-send (SSH/Telnet)

Connect to your TV via SSH or Telnet and run:

luna-send -n 1 -f luna://com.webos.applicationManager/launch '{"id":"twitch.adamffdev.v1","params":{"channel":"CHANNEL_NAME"}}'

Using URL parameter (Development)

If you’re testing locally or via CLI:

npm run launch -- -p '{"channel":"CHANNEL_NAME"}'

Build, deploy and launch

The following one-liner is convenient for debugging because it chains together all the essential steps — building, packaging, deploying, and launching — into a single command:

pnpm run build && pnpm run package && pnpm run deploy && pnpm run launch