YouTube app for webOS TV with ad blocking and other enhancements

[!NOTE] Press the 🟩 Green button on your remote to access the configuration screen.
You can install the app using one of the following methods:
.ipk file from the Releases page.To enable autostart, run the following command needs to be executed on the TV via SSH or Telnet:
luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"youtube.leanback.v4","pigImage":"","mvpdIcon":""}'
This allows the app to show up as an input source and launch automatically if it was the last used app. It will remain active in the background for faster startup (minor increase in idle memory usage).
To disable autostart:
luna-send-pub -n 1 'luna://com.webos.service.eim/deleteDevice' '{"appId":"youtube.leanback.v4"}'
devEngines in package.json for the minimum version.Node.js, you can have it automatically setup by running corepack enable.Clone the repository.
git clone https://github.com/webosbrew/youtube-webos.git
cd youtube-webos
Install dependencies.
pnpm install
pnpm run build:dev
pnpm run package
The .ipk file will be generated in the project root directory. You can stop here if you're fine with installing the IPK via the webOS Dev Manager app. Alternatively, continue below if you want to make it so you can install the IPK on your TV with one command.
[!IMPORTANT] If your TV is rooted, follow the alternative setup section instead and then skip to installing to the TV
pnpm exec ares-setup-device
Follow the prompts:
Verify:
pnpm exec ares-setup-device --list
Sample output:
name deviceinfo connection profile passphrase
-------------- ----------------------------- ---------- ------- ----------
mytv (default) prisoner@192.168.137.102:9922 ssh tv EF32E8
pnpm run deploy # Installs to the default device selected via `ares-setup-device`.
webOS supports the standard Chrome Devtools Protocol which allows you to inspect the app.
ares-inspect -d <device_name> --app youtube.leanback.v4
Or if you've set your TV as the default device:
pnpm run inspect
Enable SSH via Homebrew Channel
Generate SSH key:
ssh-keygen -t rsa
Copy id_rsa to ~/.ssh (Windows: %USERPROFILE%\.ssh)
Append id_rsa.pub to /home/root/.ssh/authorized_keys on the TV
Set up device:
ares-setup-device -a webos \
-i "username=root" \
-i "privatekey=id_rsa" \
-i "passphrase=SSH_KEY_PASSPHRASE" \
-i "host=TV_IP" \
-i "port=22"
pnpm run build:dev && pnpm run package && pnpm run deploy && pnpm run launch
To launch a specific video directly:
pnpm run launch -- -p '{"contentTarget":"v=F8PGWLvn1mQ"}'
JavaScript
75.6%
TypeScript
21.0%
CSS
3.3%
YouTube app for webOS TV with ad blocking and other enhancements

[!NOTE] Press the 🟩 Green button on your remote to access the configuration screen.
You can install the app using one of the following methods:
.ipk file from the Releases page.To enable autostart, run the following command needs to be executed on the TV via SSH or Telnet:
luna-send-pub -n 1 'luna://com.webos.service.eim/addDevice' '{"appId":"youtube.leanback.v4","pigImage":"","mvpdIcon":""}'
This allows the app to show up as an input source and launch automatically if it was the last used app. It will remain active in the background for faster startup (minor increase in idle memory usage).
To disable autostart:
luna-send-pub -n 1 'luna://com.webos.service.eim/deleteDevice' '{"appId":"youtube.leanback.v4"}'
devEngines in package.json for the minimum version.Node.js, you can have it automatically setup by running corepack enable.Clone the repository.
git clone https://github.com/webosbrew/youtube-webos.git
cd youtube-webos
Install dependencies.
pnpm install
pnpm run build:dev
pnpm run package
The .ipk file will be generated in the project root directory. You can stop here if you're fine with installing the IPK via the webOS Dev Manager app. Alternatively, continue below if you want to make it so you can install the IPK on your TV with one command.
[!IMPORTANT] If your TV is rooted, follow the alternative setup section instead and then skip to installing to the TV
pnpm exec ares-setup-device
Follow the prompts:
Verify:
pnpm exec ares-setup-device --list
Sample output:
name deviceinfo connection profile passphrase
-------------- ----------------------------- ---------- ------- ----------
mytv (default) prisoner@192.168.137.102:9922 ssh tv EF32E8
pnpm run deploy # Installs to the default device selected via `ares-setup-device`.
webOS supports the standard Chrome Devtools Protocol which allows you to inspect the app.
ares-inspect -d <device_name> --app youtube.leanback.v4
Or if you've set your TV as the default device:
pnpm run inspect
Enable SSH via Homebrew Channel
Generate SSH key:
ssh-keygen -t rsa
Copy id_rsa to ~/.ssh (Windows: %USERPROFILE%\.ssh)
Append id_rsa.pub to /home/root/.ssh/authorized_keys on the TV
Set up device:
ares-setup-device -a webos \
-i "username=root" \
-i "privatekey=id_rsa" \
-i "passphrase=SSH_KEY_PASSPHRASE" \
-i "host=TV_IP" \
-i "port=22"
pnpm run build:dev && pnpm run package && pnpm run deploy && pnpm run launch
To launch a specific video directly:
pnpm run launch -- -p '{"contentTarget":"v=F8PGWLvn1mQ"}'
JavaScript
75.6%
TypeScript
21.0%
CSS
3.3%