Repository navigation
Home
This wiki shows how to turn a pile of TV shows and movies into your own cable TV network. Channels have schedules. Shows start on the hour. A guide tells you what's on. You can watch it in Emby or Jellyfin, or on a real TV in another room.

It is built on two projects:
- FieldStation42 makes the schedules and plays them like a TV station.
- Station Wrapper 43 (this repo) runs FieldStation42 in Docker. It adds a web dashboard, a channel guide, and a fake HDHomeRun tuner. That tuner is how Emby and Jellyfin see your channels as live TV.
Two computers share the work.
graph TD
nas[NAS: your videos]
server[tv-server: Station Wrapper 43 in Docker]
emby[Emby or Jellyfin]
player[tv-player: Station Wrapper 43 in client mode]
tv[A TV]
nas -->|read-only share| server
nas -->|read-only share| player
server -->|live channels and guide| emby
server -->|schedule copy, every minute| player
player --> tv
- The server does all the planning. It builds every channel's schedule and serves the channels to Emby or Jellyfin.
- The player is a second PC hooked up to a TV. It runs the same Docker image in client mode, copies the server's schedule about once a minute and plays it. Both show the same thing at the same time, just like real TV. It can also show pay-per-view channels, a menu of movies you pick from with the remote.
- Both read the videos straight from the NAS. Nothing gets copied or changed.
You don't need the player. The server works fine by itself with Emby or Jellyfin. Add the player later if you want channels on a TV that has no Emby app, like an old CRT.
The quickest way to set up a player is client mode: the player runs the same Docker image as the server with FS42_ROLE=client, and copies the schedule about once a minute instead of every hour. The Remote Player and Syncing a Remote Player pages show the older, manual way.
The guides use these names and addresses. Swap in your own.
| Name | Address | What it does |
|---|---|---|
nas |
192.168.1.10 |
Holds the videos in a share called media
|
tv-server |
192.168.1.20 |
Runs Docker and Station Wrapper 43 (and Emby or Jellyfin) |
tv-player |
192.168.1.30 |
The PC connected to a TV |
The user on both Linux PCs is tv, so home folders are /home/tv.
Start at the top and work down. Each page says what you need before you start.
- Server Setup: install Station Wrapper 43 and connect it to Emby or Jellyfin.
- Making Channels: build channels from the dashboard or with a script, and keep new episodes coming.
- Client Mode Player: set up a second PC that plays your channels on a TV.
In a hurry? On Linux, one line installs a server or a player and asks you what it needs: curl -fsSL https://raw.githubusercontent.com/austincnunn/station-wrapper-43/main/install.sh | bash. Server Setup and Client Mode Player say what it does and what is left for you.
The older, manual way to a TV: Remote Player and Syncing a Remote Player.
Extras:
- Let an AI Agent Build Your Channels: a prompt to paste into Claude Code or a similar agent. It plans a lineup from your library and builds it after you say yes.
- Block Channels: channels that change shows by time of day, with little "bump" cards between them.
- Web Viewer: let other people watch in a web browser, each with a login and their own channels. The part to put behind a reverse proxy.
- Weather Channel: a retro WeatherStar 4000 channel.
- YouTube Channel: YouTube's TV app as a channel you cast to from your phone.
- Emby Servers: use shows and movies from any Emby or Jellyfin server you can sign in to. Sign in, and each library becomes a list.
- Backups: a nightly backup of your channels and schedules.
- Troubleshooting: problems people hit, and how to fix them.
The scripts these guides use are in the repo's extras folder.
Guides
- Server Setup
- Making Channels (or let an AI agent do it)
- Client Mode Player (the easy way to a TV)
The manual way to a TV
Extras