Install
openclaw skills install @deepseekoracle/lygo-tvLYGO TV — the free TV player at https://chatagent.ca/sources/, plus the embed code that runs the same player on a website: Rumble room first, channels taken from the public LYGO catalog. Use when the request names LYGO TV or /lygo-tv, or explicitly asks for the LYGO TV player or its embed code. Not for general video or music requests, not for IPTV piracy or pirated playlists, and not for generic media widgets.
openclaw skills install @deepseekoracle/lygo-tvTwo ways to hand someone LYGO TV. Point them at the player, or give them the player — the same player, the same catalog, running on their own page.
Bookmark that URL (or install the page as an app). That is the in-browser player.
Signature: Delta9Phi963-LYGO-TV-v1.3.1
Install (pinned): npx clawhub@0.23.3 install deepseekoracle/lygo-tv@1.3.1
Print the embed: python scripts/lygo_tv.py embed
Audit: https://clawhub.ai/deepseekoracle/skills/lygo-tv/security-audit
Emblem: overlapping gold rings + cyan meridian (emblem.svg; live at https://chatagent.ca/sources/emblem.svg)
This package holds two different things, and the audit asked for the difference to be stated plainly instead of hidden behind one "no network" claim:
| This folder's scripts | The shipped embed | |
|---|---|---|
| What it is | scripts/lygo_tv.py, scripts/self_check.py | embed/* — the player, for a human's website |
| Network | none — no urllib, requests, http.client, no fetch | yes, in the visitor's browser |
| Runs where | wherever you installed the skill | on the embedding site, in each visitor's browser |
| Filesystem | reads its own files, writes nothing | none |
| Shell / subprocess | none | none |
The scripts print URLs and code; they never fetch. The embed is active web code, and its behaviour is the embedding site's decision, not this package's. Neither half proxies a stream, decrypts one, or stores one.
| Origin | When | Pinned? |
|---|---|---|
chatagent.ca | always — player JS/CSS and sources/catalog.json | assets carry a version query (?v=8); the catalog is mutable by design |
cdn.jsdelivr.net | only when an HLS channel is played — hls.js 1.5.18 | Subresource Integrity sha384-R2JqybiEexSXz60H6Zz28MdsqWWnMQlP+NDb7nIhDHWxx6sM7Otw7OWCq9EBCPsz |
rumble.com, player.kick.com, player.twitch.tv, youtube-nocookie.com | whichever platform the channel belongs to | that platform's embed, that platform's terms |
| the stream's own host | only for a plain-stream channel | named by the catalog; https only, no credentials |
Catalog entries are validated, not trusted. Before anything is framed or played, an entry must be https,
without credentials, and an embed must sit on its own platform's domain — a catalog entry cannot point the
frame or the video at an arbitrary origin. window.LYGO_TV_ALLOWED_URL(url, kind) runs the same check if you
want to inspect it.
The catalog is a public read. The FAST/world lists inside the player UI wait for a per-session Terms tick; the embed neither adds nor bypasses a gate.
/lygo-tv, or the embed, use it; otherwise leave it alone.The whole install is three lines. It opens on the steward's Rumble room by default and reads the channel catalog in the visitor's browser — no build step, no key, no proxy, nothing to sign up for.
<link rel="stylesheet" href="https://chatagent.ca/assets/lygo-tv-ninja.css?v=8">
<div data-lygo-tv></div>
<script src="https://chatagent.ca/assets/lygo-tv-ninja.js?v=8" defer></script>
| Default channel | rumble_live — Excavationpro Rumble LIVE (https://rumble.com/embed/v7b5p30/) |
| The pool | about 12,000 channels, walked with Prev and Next, counter title · 3 / 12156 |
| Feed | https://chatagent.ca/sources/catalog.json — served Access-Control-Allow-Origin: *, so any origin may read it |
| Sound | a Sound button; starts off, because browsers block unmuted autoplay with no gesture |
| Branding | the player's own bar reads LYGO TV and links to the full player |
| Licence | MIT-0. Restyle it, ship it, keep the LYGO TV name and the link back |
Files that ship this:
embed/lygo-tv-embed.html — a complete branded page, with a visible What this player loads section to copy.embed/lygo-tv-ninja.js + embed/lygo-tv-ninja.css — the player, self-hostable, byte-identical to what
the site serves. Verify before use: sha256-5t6Gc5TAM3WvRTF51cBuqA3PjiS65GJmhMvsoGsVdBQ= (js) and
sha256-oqJabOyasBTBrwHmXHihIInv7XjlpAHc1NqpFhuhe0o= (css). Self-hosting the code does not cut the catalog
feed, and a vendored copy goes stale.embed/README.md — both install paths, the contacted origins, a Content-Security-Policy that works, the
theming variables, and the honest limits.If a human asks you to put TV on their site: paste the three lines, keep the attribution, and tell them
what the page will contact — point them at embed/README.md. Do not wrap it in a proxy, do not re-host the
catalog as your own, do not strip the name.
embed/README.md for the origins, the CSP, and the limits.https://chatagent.ca/sources/catalog.json is RESOURCE. Dual ledgers / eggs / Star Chart stay CANON. Do not ingest the catalog into the live chart.catalog.json. No silent git / HF / ClawHub / social publish from this skill.| Role | URL |
|---|---|
| Player (bookmark this) | https://chatagent.ca/sources/ |
| Catalog JSON | https://chatagent.ca/sources/catalog.json |
| Player script (embed) | https://chatagent.ca/assets/lygo-tv-ninja.js |
| Player stylesheet (embed) | https://chatagent.ca/assets/lygo-tv-ninja.css |
| Terms | https://chatagent.ca/terms.html |
| TV disclaimer | https://chatagent.ca/sources/disclaimer.html |
| Emblem | https://chatagent.ca/sources/emblem.svg |
| Player source | https://github.com/DeepSeekOracle/chatagent/tree/main/sources |
| Skill source | https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/clawhub/mirrors/lygo-tv |
| Catalog mirror | https://github.com/DeepSeekOracle/lygo-protocol-stack/tree/main/docs/free-sources |
| Witness | https://chatagent.ca/witness/ |
| Listen | https://asiancoastline.com/listen.html |
| ClawHub | https://clawhub.ai/deepseekoracle/skills/lygo-tv |
| Security audit | https://clawhub.ai/deepseekoracle/skills/lygo-tv/security-audit |
npx clawhub@0.23.3 install deepseekoracle/lygo-tv@1.3.1
cd path/to/lygo-tv
python scripts/self_check.py
python scripts/lygo_tv.py plain
python scripts/lygo_tv.py embed
python scripts/lygo_tv.py urls
python scripts/lygo_tv.py map
python scripts/lygo_tv.py bookmark
| Command | Output |
|---|---|
plain | Human directions to the player |
embed | The three-line embed, what the visitor's browser then contacts, and the limits |
urls | Canonical URL list |
map / demo | JSON pointer card |
bookmark | Player URL to save |
donate | PayPal / Patreon / Rumble |
No network, no subprocess, no disk writes. Versions are pinned: the CLI to 0.23.3, this package to its own
version, so an install cannot silently pick up newer code.
| Surface | Role |
|---|---|
lygo-public-witness | Public feeds = reference |
lygo-excavationpro-music-lattice | Music / live rooms |
lygo-site-card | Pulse the live page if asked to verify |
See references/SECURITY.md and references/SKILLSPECTOR_AUDIT.md.
Δ9Φ963 — point to the player · or paste the player, and say what it loads · bookmark the URL · do not proxy streams · empty beats fake.