What it is
Tvheadend is an open-source TV streaming server and digital video recorder for Linux. It lives in the Linux media and streaming ecosystem, and it is written in C under the GPL-3.0 license. The project provides a server that can receive television signals and streams from many input types, then make those channels available over the network.
The concrete problem it solves is the need to turn local tuner hardware, network streams, and pipe-based sources into a single TV service that can be watched, browsed, and recorded. Instead of leaving each input source behind a separate interface, Tvheadend supports ATSC, DVB-C/C2, DVB-S/S2, DVB-T/T2, HDHomeRun, IPTV, UDP, HTTP, SAT>IP, and Unix pipe inputs. It also supports HTSP, HTTP, and SAT>IP outputs, and its topics include EPG and DVR.
Key capabilities
- Tvheadend acts as a TV streaming server and DVR, with topics for EPG and DVR.
- It accepts broadcast inputs such as ATSC, DVB-C/C2, DVB-S/S2, and DVB-T/T2.
- It accepts network and pipe inputs such as HDHomeRun, IPTV, UDP, HTTP, SAT>IP, and Unix pipe.
- It provides output protocols including HTSP, HTTP, and SAT>IP.
- It is built from source with ./configure, make, and ./build.linux/tvheadend.
- Settings are stored in $HOME/.hts/tvheadend.
- Docker deployment is available with the image ghcr.io/tvheadend/tvheadend:latest.
Who uses it and how
- Operators with Linux tuner hardware use it to expose DVB or ATSC channels over HTTP or HTSP.
- IPTV users use it to combine UDP, HTTP, SAT>IP, and Unix pipe sources into one service.
- Recording users rely on its DVR and EPG topics to record and browse television content.
- Docker users run the ghcr.io/tvheadend/tvheadend:latest image on a Linux host.
- Users can seek support through the forum at https://tvheadend.org or the #hts IRC channel on Libera.Chat.
Getting started
Build from source by running ./configure, make, and ./build.linux/tvheadend, install it with sudo make install, or run the Docker image ghcr.io/tvheadend/tvheadend:latest. Consult the documentation at https://docs.tvheadend.org for distribution-specific installation steps.
When to use it — and when not to
Tvheadend fits self-hosted Linux deployments where the user controls tuner hardware, network stream sources, or pipe-based inputs. It is less suitable when a managed hosted option is required, because the README mentions no hosted service. The self-hoster must operate the Linux server, provide input sources, maintain settings in $HOME/.hts/tvheadend, and handle source builds or Docker deployment, while the repository lists 107 open issues.
project readme (upstream, from github) — read inline



Tvheadend
Tvheadend is the leading TV streaming server and Digital Video Recorder for Linux.

It supports the following inputs:
- ATSC
- DVB-C(2)
- DVB-S(2)
- DVB-T(2)
- HDHomeRun
- IPTV
- SAT>IP
- Unix Pipe
It supports the following outputs:
- HTSP (native protocol)
- HTTP
- SAT>IP
Documentation
Tvheadend documentation can be found here: https://docs.tvheadend.org.
Support
Please triage issues and ask questions in the forum: https://tvheadend.org or use the #hts IRC channel on Libera.Chat to speak with project staff: https://web.libera.chat/#hts.
Please report triaged bugs via GitHub Issues.
Building for Linux
First you need to configure:
$ ./configure
If build dependencies are missing the configure script will complain or attempt
to disable optional features.
To build the binary:
$ make
After compiling the Tvheadend binary is in the build.linux directory.
To run the Tvheadend binary:
$ ./build.linux/tvheadend
Settings are stored in $HOME/.hts/tvheadend.
To install the newly compiled Tvheadend binary and associated files onto your system:
$ sudo make install
Running on Linux
Instructions for popular distributions are in our public documentation.
Running in Docker
Running in Docker can be as simple as:
$ docker run --rm ghcr.io/tvheadend/tvheadend:latest
See README.Docker.md for more details.