The pairing
Your tuner sits at home on the aerial, where it has to. You don't. Flag a film from a phone on the bus, and the box on your network has it scheduled within fifteen minutes — off the same guide, with the same clock corrections, from a line-up that includes every other source you own.
The guide in a browser — your HDHomeRun channels merged with any M3U or Xtream sources, de-duplicated, times already corrected. Press Remind me.
Ingests the line-up and guide, applies per-channel clock corrections, and publishes the watchlist as JSON behind one token.
Polls that watchlist every 15 minutes and schedules the airing.
--record-watchlist
Why bother
None of this is a criticism of the hardware. An HDHomeRun is a very good tuner. It is just only a tuner.
SiliconDust's own listings need a DVR subscription. tvtimes takes XMLTV from wherever you like — a provider's feed, EPG.best, a self-hosted grabber — and matches it to your tuner's channels itself.
Aerial channels live in one app, a provider's M3U in another. tvtimes merges them into a
single ordered grid, de-duplicated, and keys every channel by its own id — so an East and
West feed sharing a tvg-id upstream still resolve to the right listings
downstream.
Set a per-channel offset once and every export writes times already shifted into that
channel's zone with the correct +ZZZZ. Nothing downstream has to know, and
correcting it later re-dates history rather than stranding it.
Watchlists, reminders and what you have already seen sit on a server you reach from anywhere, not in an app pinned to the living room.
The loop
Each is one flag on tvdinner and one feed on tvtimes. Turn on the ones you want; the rest stay off.
| What | Direction | How it behaves |
|---|---|---|
The line-up playlist.m3u + epg.xml
|
to the box | Every enabled source as one playlist and one guide. Provider credentials stay on the server and never appear in the file. |
Your watchlist --record-watchlist
|
to the box | Polled every 15 minutes. Un-flag something and its pending recording goes too. Recordings you scheduled by hand are never touched. |
What you watched --report-watch-state
|
back to the guide | Sent as plain start/stop intervals, never “programme X”. A guide refresh or a corrected clock updates what counts as watched with nothing re-reported. |
Favourites --sync-favourites
|
to the box | Stars set in the browser show in the player's guide. Additive and one-way on purpose — un-starring here won't delete one you set there. |
Be clear about this
Getting there
Both halves are self-hosted and yours. If the tuner is on a different network from the server, a small agent bridges it — outbound HTTPS only, nothing listening, no ports opened.
Add an HDHomeRun source, plus any M3U or Xtream sources you already have. Attach an XMLTV guide if your feed doesn't name its own.
Settings → Export feeds. You get one token and a
tvtimess:// URL that stands in for the whole account.
One command, with the flags you want from the table above. It picks up the line-up, the guide and your watchlist together.