Shortly after updating tvhProxy, an effort on the tvheadend side was made to include HDHomeRun emulation in TVHeadend itself. I was hoping this would eventually obsolete the need for tvhProxy.
Unfortunately that pull request had a few major issues and was never merged. One of it’s biggest issue was that it implemented its own authentication bypass to get around the issue that HDHomerun clients like Plex don’t have any type of authentication when connecting to the tuner.
Tvheadend already has it’s own way of managing access controls without any explicit authentication (relying on the IP of clients), but unfortunately the PR was never adjusted accordingly.1
As I dusted off my IPTV setup recently (dockerizing Tvheadend as well as the tv7 EPG Parser), I thought it was a good time to retire tvhProxy for good.
So undertook an attempt to cleanup the previously rejected pull request an fix the major issues:
Changes compared to the previous pull request included the two points that prevented it from being merged:
- I removed all code related to the authentication bypass
- harmonized the comment format.
My original fork of tvhProxy included a few additional fixes:
- Adding SSDP discovery to avoid the tuner from being dropped in Plex
- Filling in dummy EPG data for channels without EPG.
I retested this and it turns out that Plex doesn’t need either anymore - I guess they fixed it on their side in the past few years. So the simple integration is enough.
TvHeadend Permissions Setup
To setup the correct access, I have added a user with the following configuration - check out the Tvheadend wiki for more details on how to configure access controls.
Dockerized Setup
If you use dockerized tvheadend and want to test this, I forked the linuxserver.io container to redirect to my branch. Currently I’m using the following docker-compose.yml to test this for a few days:
version: "2.1"
services:
tvheadend:
# image: lscr.io/linuxserver/tvheadend:latest
build:
context: https://github.com/chkuendig/docker-tvheadend.git
args:
- TVHEADEND_COMMIT=81981d6b95c5103a959d7b03719b04ecf3876162
container_name: tvheadend
environment:
- PUID=1000
- PGID=1000
- RUN_OPTS= #optional
volumes:
- <...>hts/.hts/tvheadend:/config
- <...>hts/recordings:/recordings
network_mode: host
restart: unless-stopped
You can use this with docker-compose build tvheadend instead of docker-compose pull tvheadend and it should work just as well as the regular container.
-
You can read the whole discussion at . ↩︎