npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@whoisjayd/tizenliv

v0.1.1

Published

SonyLIV ad blocking module for TizenBrew.

Readme

TizenLIV

TizenLIV is a standalone TizenBrew site-mod module for SonyLIV ad blocking.

This project is separate from TizenTube. TizenTube was used only as a reference for the TizenBrew module shape and build target.

What it does

  • Blocks known SonyLIV telemetry/ad beacon requests.
  • Opens through a packaged launcher page that tries to set a desktop Chrome user agent before SonyLIV's first page request.
  • Strips the client-side Google IMA bootstrap script that public filter research associates with SonyLIV ads.
  • Presets SonyLIV cookie consent localStorage keys to reduce consent/adblock popups.
  • Hides/removes simple adblock and ad banner overlays.

What it does not do

  • It does not bypass DRM, subscriptions, login, geography checks, or paid access.
  • It does not attempt to decrypt or rewrite protected media streams.
  • It does not include SponsorBlock or YouTube-specific features.

Research notes

The initial rules are intentionally conservative because SonyLIV playback can break if ad scripts are blocked too aggressively:

  • TizenBrew site modification modules require packageType: "mods", appName, websiteURL, and main in package.json.
  • AdGuard public rules note that fully blocking imasdk.googleapis.com/js/sdkloader/ima3.js can break SonyLIV in some app contexts.
  • AdGuard public rules allow ima3_dai.js and SonyLIV player ad manager files to avoid player breakage.
  • AdGuard public rules set SonyLIV cookie consent localStorage keys.
  • AdGuard public rules identify api-godavari.sonyliv.com/beacon as tracking/telemetry.
  • TizenBrew serves package files through http://127.0.0.1:8081/module/<package>/..., so this module starts at launcher.html, calls tizen.websetting.setUserAgentString(...), then redirects to SonyLIV.

Installation in TizenBrew

From npm

  1. Open TizenBrew on your Samsung TV.

  2. Open the module manager.

  3. Add this npm module:

    @whoisjayd/tizenliv
  4. Save/apply the module list.

  5. Restart TizenBrew if it does not refresh automatically.

  6. Launch TizenLIV from TizenBrew.

TizenLIV now opens a small local launcher first. It should immediately redirect to SonyLIV after trying to apply a desktop Chrome user agent. This avoids requiring you to manually change the global TizenBrew user-agent setting.

From source

git clone https://github.com/whoisjayd/tizenliv.git
cd tizenliv
npm install
npm run build

The TizenBrew script entrypoint is dist/userScript.js. The launch entrypoint is launcher.html, which redirects to SonyLIV after applying the user agent.

Development

npm install
npm test
npm run build

Package metadata

{
  "name": "@whoisjayd/tizenliv",
  "appName": "TizenLIV",
  "packageType": "mods",
  "websiteURL": "http://127.0.0.1:8081/module/%40whoisjayd%2Ftizenliv/launcher.html",
  "main": "dist/userScript.js",
  "evaluateScriptOnDocumentStart": true
}

Troubleshooting

  • If the page still times out, the TV may be unable to reach SonyLIV from TizenBrew's WebView because of network, region, TLS, or platform blocking. The launcher can spoof the user agent, but it cannot fix a domain that the TV/browser cannot connect to.
  • If the launcher page stays visible, Tizen WebView may have denied tizen.websetting; wait a moment for fallback redirect or restart TizenBrew.
  • If playback freezes or stays stuck at loading, SonyLIV may require one of its ad manager scripts for player initialization.
  • Keep ima3_dai.js and player.sonyliv.com/.../spnadmanager.js allowed unless manual testing proves they are safe to strip.
  • If ads return, compare the current network calls with uBlock Origin/Brave on desktop and add narrow host/path rules only.