Backend Server
Node.js server that discovers HDHomeRun devices, provides REST APIs, converts recordings to HLS format, and maintains a SQLite database of your content.
View on GitHub →Stream your HDHomeRun DVR content on all your devices
TVHomeRun is a family of apps for managing and streaming content from your HDHomeRun DVR devices. It consists of a backend server that automatically discovers your DVR devices and converts content to streaming-ready formats, plus native applications for all your devices and the web.
With TVHomeRun, you can watch live TV and your recorded shows as well as schedule and manage your recordings. Enjoy your content with quick, responsive, native apps on Apple TV, iPhone, iPad, or any web browser.
Node.js server that discovers HDHomeRun devices, provides REST APIs, converts recordings to HLS format, and maintains a SQLite database of your content.
View on GitHub →Native SwiftUI application for iPhone and iPad with touch-optimized interface, grid browsing, video playback with resume support, and progress tracking.
View on GitHub →Apple TV application built with SwiftUI, featuring a custom video player with quick skip controls, remote-optimized navigation, and seamless episode transitions.
View on GitHub →Modern web application with responsive design for desktop, tablet, and mobile. Features HLS streaming, keyboard shortcuts, and a tvOS-inspired dark theme.
View on GitHub →Why not just use the official HDHomeRun apps?
The official HDHomeRun iPhone, iPad and AppleTV apps are not optimized for responsive playback. TVHomeRun converts HDHomeRun content into HLS streams which are much more suitable for low latency streaming. For example, when skipping forward in the HDHomeRun apps, typically after a short delay the audio will be the first to advance while the video stays frozen for a second or two. While not the end of the world, this makes quickly skipping forwards and backwards to the spot you want very laggy. TVHomeRun works like old TiVo devices which were optimized for fast scrubbing.
Additionally, the HDHomeRun is designed to only work on the local network, making it extremely difficult to work over VPNs or the Internet. With TVHomeRun, only the backend server needs to be on the same network as the HDHomeRun. All other components can be anywhere that the backend server can be reached.
What is required for TVHomeRun to work?
You must at least run tvhomerun-backend and one of the frontend apps. The backend must be on the same local network that the HDHomeRun is on. The frontends such as tvhomerun-ios can be run anywhere that has direct IP connectivity to the backend. Typically, tvhomerun-backend and thhomerun-web are run on a server that stays on all the time. The frontends run on iPhone, iPads, AppleTV and web browsers which may come and go as needed.
tvhomerun-backend requires Node.js and ffmpeg and requires enough disk space to store the streaming cache. tvhomerun-web is also a Node.js application but requires very little disk space. tvhomerun-ios and tvhomerun-tvos are native Swift applications and are available on the App Store.
Your HDHomeRun device with DVR subscription recording content on your local network.
Node.js server running on your network (e.g., Raspberry Pi, NAS, or PC).
Access content from Apple TV, iPhone, iPad, or web browser.
# Clone the backend repository git clone https://github.com/anders94/tvhomerun-backend.git cd tvhomerun-backend # Install dependencies npm install # Start the server (default port 3000) npm start
Requirements: Node.js v14+ and at least one HDHomeRun device
with DVR on your local network. The server will automatically discover your HDHomeRun
devices and sync content every hour. Access the API at http://your-server-ip:3000
tvhomerun-tvos repositorytvhomerun-ios repositorytvhomerun-web repositorynpm installnpm starthttp://localhost:8080
Or configure backend URL: npm start -- --backend http://server-ip:3000
Backend automatically finds HDHomeRun devices using UDP broadcast and network scanning
Pick up exactly where you left off on any device
Visual indicators show what you've watched and what's new
Native HLS format for smooth playback on Apple devices and browsers
Content syncs every hour to keep your library up to date
SQLite database enables browsing even when devices are offline
Network device with recorded content
Node.js + Express + SQLite
SwiftUI + AVKit
SwiftUI + AVKit
JavaScript + HLS.js
TVHomeRun is an open-source project. Contributions, bug reports, and feature requests are welcome on any of the repositories.