# About LoopTV

> How LoopTV provides random continuous playback from a checked-in catalog without an account or runtime API key.

Canonical: https://tv.significanthobbies.com/about/

[← LoopTV](https://tv.significanthobbies.com/)

## Channel-surf YouTube like it's TV.

LoopTV groups public YouTube channels into topic stations and plays random clips nonstop — no account, no API keys, no algorithm deciding what's next. 16 stations, 122 channels, 8,786 videos in the catalog today.

[Start watching](https://tv.significanthobbies.com/)[Browse stations](https://tv.significanthobbies.com/channels)

## Why LoopTV

### Stations, not a feed

16 hand-built stations grouping 122 YouTube channels by topic — science, comedy, tech, talks, and more. Pick one and it plays.

### Random, nonstop playback

No autoplay rabbit hole, no recommendation algorithm. Clips shuffle within the station you chose, like flipping to a channel and leaving it on.

### Yours, on your device

Watched history, blocked sources, and your Smart Mix profile all live in your browser's localStorage. No account, nothing leaves your device.

## How it works

- 1

### Build the catalog

A weekly GitHub Action runs yt-dlp against each channel and merges new videos into a static catalog file. No YouTube API key needed.

- 2

### Tag with NER

HuggingFace NER (dslim/bert-base-NER) runs over untagged entries so videos pick up topic chips automatically.

- 3

### Press play

The frontend is a static Astro site with React islands. Videos play through the public YouTube IFrame player — blocked embeds are skipped automatically.

## Tips

- `→` or `n` — next video.

- `/` — search across the catalog.

- [/random](https://tv.significanthobbies.com/random) — bounces to a random station.

## Add your own station

Fork the repo, append a station to `stations.json`, run `pnpm run build:catalog` (requires `yt-dlp`), and deploy. That's it.

Ready to leave something good on in the background?

[Open LoopTV](https://tv.significanthobbies.com/)
