[ Suggestion ] Hypnotix + HDHomerun

Suggestions and feedback for Linux Mint and the forums
Forum rules
Do not post support questions here. Before you post read: Where to post ideas & feature requests
Post Reply
duracell80
Level 3
Level 3
Posts: 111
Joined: Fri Sep 23, 2022 5:51 pm

[ Suggestion ] Hypnotix + HDHomerun

Post by duracell80 »

TV Tuners are still kicking around and local TV can be recieved even without an internet connection. In fact part of the reason SlingTV is a lot cheaper than YouTube TV and others is because they don't carry local channels and offload that to their own network attached antenna box the AirTV. Silicon Dust are supporting ATSC 3.0 already also and NextGenTV ads are picking up to get us onto 4K over the air. The picture quality is so much better than IPTV on the main channels. There are other network attached tuners also though I'm not sure how it is in Europe.

Here in the states HDHomerun is still going strong. I watched World Cup games on Hypnotix without using Internet data.

These devices essentially have no HDMI output and sit on a LAN and act as an IPTV provider, mine has two tuners, some have four.

This gist is a great example of what could be done by obtaining an M3U of an attached tuner.
https://gist.github.com/aaearon/3e1d495 ... 15da7d86b4

Code: Select all

#
# this script will convert the hdhomerun listings (channels) to
# m3u format for use with external media players. before running
# this script, be sure to modify the <<config>> variable settings
# below.
#
# Suggested Usage: This script should be run on a cron to keep
# the channel lineup to date. Below is an example of how to execute this script:
# python /path/to/script/hdhomerun-prime-listings-to-m3u.py > /path/to/playlist.m3u
#
# @author Josh Kastang (josh[dot]kastang[at]gmail[dot]com)
# @tested Python 2.7, but should work with Python 2.6 as well.
#

import requests
import json
from pprint import pprint

# * hdhr-ip: ip address of your hdhr prime unit
# * duration: the duration the stream should play for. some
# players seem to require this while others do not. default
# is set for 7200 minutes (2 hours)
config = {
    'hdhr-ip'   : '192.168.2.221',
    'duration'  : '7200',
}

hdhr_url        = "http://{0}/lineup.json?show=unprotected".format(config['hdhr-ip'])
response_obj    = requests.get(hdhr_url)
listings_res    = response_obj.text

print "#EXTM3U"
listings = json.loads(listings_res)
for l in listings:
    channel = l['GuideNumber']
    name    = l['GuideName']

    #print "#EXTINF:{0},{1}: {2}".format(channel,channel, name)
    print '#EXTINF:-1 tvg-name="{1}" tvh-chnum="{0}",{1}'.format(channel, name)
    print "http://{0}:5004/auto/v{1}?duration={2}".format(
            config['hdhr-ip'],
            channel,
            config['duration']
    )
Once the m3u exists, the channels aren't going to change all that much so it can easily be set as a provider and used on a 1:1 basis. So one hypnotix gets to view the one tuner.

Code: Select all

HYP_GET=$(gsettings get org.x.hypnotix providers)

# SET AS HYPNOTIX PROVIDER
if [[ $HYP_GET == *"homerun"* ]]; then
    exit
else
    HYP_SET=$(gsettings get org.x.hypnotix providers | sed "s|:']|:', 'HDHomeRun:::local:::file://${HOME}/Videos/iptv-hd-homerun.m3u:::::::::']|" | uniq)

    gsettings set org.x.hypnotix providers "${HYP_SET}"
fi

Code: Select all

#EXTM3U
#EXTINF:-1 tvg-chno="2.1" tvg-name="WKRN-DT",WKRN-DT
http://192.168.2.221:5004/auto/v2.1?duration=7200
#EXTINF:-1 tvg-chno="2.2" tvg-name="SPORTS",SPORTS
http://192.168.2.221:5004/auto/v2.2?duration=7200
#EXTINF:-1 tvg-chno="2.3" tvg-name="CRIME",CRIME
http://192.168.2.221:5004/auto/v2.3?duration=7200
#EXTINF:-1 tvg-chno="2.4" tvg-name="REWIND",REWIND
http://192.168.2.221:5004/auto/v2.4?duration=7200
#EXTINF:-1 tvg-chno="4.1" tvg-name="WSMV-HD",WSMV-HD
http://192.168.2.221:5004/auto/v4.1?duration=7200
#EXTINF:-1 tvg-chno="4.2" tvg-name="Escape",Escape
http://192.168.2.221:5004/auto/v4.2?duration=7200
#EXTINF:-1 tvg-chno="4.3" tvg-name="COZI",COZI
http://192.168.2.221:5004/auto/v4.3?duration=7200
#EXTINF:-1 tvg-chno="4.4" tvg-name="CourtTV",CourtTV
http://192.168.2.221:5004/auto/v4.4?duration=7200
#EXTINF:-1 tvg-chno="4.5" tvg-name="Circle",Circle
http://192.168.2.221:5004/auto/v4.5?duration=7200
#EXTINF:-1 tvg-chno="4.6" tvg-name="GetTV",GetTV
http://192.168.2.221:5004/auto/v4.6?duration=7200
#EXTINF:-1 tvg-chno="4.10" tvg-name="WSMV-HD",WSMV-HD
http://192.168.2.221:5004/auto/v4.10?duration=7200
#EXTINF:-1 tvg-chno="4.20" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v4.20?duration=7200
#EXTINF:-1 tvg-chno="4.30" tvg-name="COZI",COZI
http://192.168.2.221:5004/auto/v4.30?duration=7200
#EXTINF:-1 tvg-chno="4.40" tvg-name="CourtTV",CourtTV
http://192.168.2.221:5004/auto/v4.40?duration=7200
#EXTINF:-1 tvg-chno="4.50" tvg-name="Circle",Circle
http://192.168.2.221:5004/auto/v4.50?duration=7200
#EXTINF:-1 tvg-chno="5.1" tvg-name="WTVF-HD",WTVF-HD
http://192.168.2.221:5004/auto/v5.1?duration=7200
#EXTINF:-1 tvg-chno="5.2" tvg-name="NC5+",NC5+
http://192.168.2.221:5004/auto/v5.2?duration=7200
#EXTINF:-1 tvg-chno="5.3" tvg-name="Bounce",Bounce
http://192.168.2.221:5004/auto/v5.3?duration=7200
#EXTINF:-1 tvg-chno="5.11" tvg-name="WTVF-HD",WTVF-HD
http://192.168.2.221:5004/auto/v5.11?duration=7200
#EXTINF:-1 tvg-chno="5.12" tvg-name="NC5+",NC5+
http://192.168.2.221:5004/auto/v5.12?duration=7200
#EXTINF:-1 tvg-chno="5.13" tvg-name="Bounce",Bounce
http://192.168.2.221:5004/auto/v5.13?duration=7200
#EXTINF:-1 tvg-chno="6.1" tvg-name="Daystar",Daystar
http://192.168.2.221:5004/auto/v6.1?duration=7200
#EXTINF:-1 tvg-chno="6.2" tvg-name="WRTN",WRTN
http://192.168.2.221:5004/auto/v6.2?duration=7200
#EXTINF:-1 tvg-chno="6.3" tvg-name="CMC",CMC
http://192.168.2.221:5004/auto/v6.3?duration=7200
#EXTINF:-1 tvg-chno="6.4" tvg-name="ClasTV",ClasTV
http://192.168.2.221:5004/auto/v6.4?duration=7200
#EXTINF:-1 tvg-chno="6.5" tvg-name="TuffTV",TuffTV
http://192.168.2.221:5004/auto/v6.5?duration=7200
#EXTINF:-1 tvg-chno="6.6" tvg-name="ClasMov",ClasMov
http://192.168.2.221:5004/auto/v6.6?duration=7200
#EXTINF:-1 tvg-chno="6.7" tvg-name="Info",Info
http://192.168.2.221:5004/auto/v6.7?duration=7200
#EXTINF:-1 tvg-chno="8.1" tvg-name="NPT-1",NPT-1
http://192.168.2.221:5004/auto/v8.1?duration=7200
#EXTINF:-1 tvg-chno="8.2" tvg-name="NPT-2",NPT-2
http://192.168.2.221:5004/auto/v8.2?duration=7200
#EXTINF:-1 tvg-chno="8.3" tvg-name="NPT-3",NPT-3
http://192.168.2.221:5004/auto/v8.3?duration=7200
#EXTINF:-1 tvg-chno="8.4" tvg-name="NPT-4",NPT-4
http://192.168.2.221:5004/auto/v8.4?duration=7200
#EXTINF:-1 tvg-chno="15.1" tvg-name="WTNX-LD",WTNX-LD
http://192.168.2.221:5004/auto/v15.1?duration=7200
#EXTINF:-1 tvg-chno="15.2" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v15.2?duration=7200
#EXTINF:-1 tvg-chno="15.3" tvg-name="COZI",COZI
http://192.168.2.221:5004/auto/v15.3?duration=7200
#EXTINF:-1 tvg-chno="15.4" tvg-name="CourtTV",CourtTV
http://192.168.2.221:5004/auto/v15.4?duration=7200
#EXTINF:-1 tvg-chno="15.5" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v15.5?duration=7200
#EXTINF:-1 tvg-chno="15.6" tvg-name="Comet",Comet
http://192.168.2.221:5004/auto/v15.6?duration=7200
#EXTINF:-1 tvg-chno="17.1" tvg-name="FOX17",FOX17
http://192.168.2.221:5004/auto/v17.1?duration=7200
#EXTINF:-1 tvg-chno="17.2" tvg-name="CW",CW
http://192.168.2.221:5004/auto/v17.2?duration=7200
#EXTINF:-1 tvg-chno="17.3" tvg-name="Antenna",Antenna
http://192.168.2.221:5004/auto/v17.3?duration=7200
#EXTINF:-1 tvg-chno="17.4" tvg-name="TBD",TBD
http://192.168.2.221:5004/auto/v17.4?duration=7200
#EXTINF:-1 tvg-chno="20.1" tvg-name="WNPX-LD",WNPX-LD
http://192.168.2.221:5004/auto/v20.1?duration=7200
#EXTINF:-1 tvg-chno="20.2" tvg-name="LATINO",LATINO
http://192.168.2.221:5004/auto/v20.2?duration=7200
#EXTINF:-1 tvg-chno="20.3" tvg-name="BRAZIL",BRAZIL
http://192.168.2.221:5004/auto/v20.3?duration=7200
#EXTINF:-1 tvg-chno="26.1" tvg-name="WNTU-LD",WNTU-LD
http://192.168.2.221:5004/auto/v26.1?duration=7200
#EXTINF:-1 tvg-chno="27.1" tvg-name="HRTLND",HRTLND
http://192.168.2.221:5004/auto/v27.1?duration=7200
#EXTINF:-1 tvg-chno="27.2" tvg-name="RTV",RTV
http://192.168.2.221:5004/auto/v27.2?duration=7200
#EXTINF:-1 tvg-chno="27.3" tvg-name="REVN",REVN
http://192.168.2.221:5004/auto/v27.3?duration=7200
#EXTINF:-1 tvg-chno="27.4" tvg-name="Action",Action
http://192.168.2.221:5004/auto/v27.4?duration=7200
#EXTINF:-1 tvg-chno="27.5" tvg-name="Family",Family
http://192.168.2.221:5004/auto/v27.5?duration=7200
#EXTINF:-1 tvg-chno="27.6" tvg-name="Revival",Revival
http://192.168.2.221:5004/auto/v27.6?duration=7200
#EXTINF:-1 tvg-chno="28.1" tvg-name="ION",ION
http://192.168.2.221:5004/auto/v28.1?duration=7200
#EXTINF:-1 tvg-chno="28.2" tvg-name="CourtTV",CourtTV
http://192.168.2.221:5004/auto/v28.2?duration=7200
#EXTINF:-1 tvg-chno="28.3" tvg-name="Grit",Grit
http://192.168.2.221:5004/auto/v28.3?duration=7200
#EXTINF:-1 tvg-chno="28.4" tvg-name="Laff",Laff
http://192.168.2.221:5004/auto/v28.4?duration=7200
#EXTINF:-1 tvg-chno="28.5" tvg-name="Defy TV",Defy TV
http://192.168.2.221:5004/auto/v28.5?duration=7200
#EXTINF:-1 tvg-chno="28.6" tvg-name="TruReal",TruReal
http://192.168.2.221:5004/auto/v28.6?duration=7200
#EXTINF:-1 tvg-chno="28.7" tvg-name="NEWSY",NEWSY
http://192.168.2.221:5004/auto/v28.7?duration=7200
#EXTINF:-1 tvg-chno="28.8" tvg-name="HSN",HSN
http://192.168.2.221:5004/auto/v28.8?duration=7200
#EXTINF:-1 tvg-chno="28.9" tvg-name="QVC",QVC
http://192.168.2.221:5004/auto/v28.9?duration=7200
#EXTINF:-1 tvg-chno="30.1" tvg-name="WUXP-MY",WUXP-MY
http://192.168.2.221:5004/auto/v30.1?duration=7200
#EXTINF:-1 tvg-chno="30.2" tvg-name="Get-TV",Get-TV
http://192.168.2.221:5004/auto/v30.2?duration=7200
#EXTINF:-1 tvg-chno="30.3" tvg-name="Comet",Comet
http://192.168.2.221:5004/auto/v30.3?duration=7200
#EXTINF:-1 tvg-chno="30.30" tvg-name="Comet",Comet
http://192.168.2.221:5004/auto/v30.30?duration=7200
#EXTINF:-1 tvg-chno="31.1" tvg-name="Heartl",Heartl
http://192.168.2.221:5004/auto/v31.1?duration=7200
#EXTINF:-1 tvg-chno="31.2" tvg-name="DigiTV",DigiTV
http://192.168.2.221:5004/auto/v31.2?duration=7200
#EXTINF:-1 tvg-chno="31.3" tvg-name="WBN",WBN
http://192.168.2.221:5004/auto/v31.3?duration=7200
#EXTINF:-1 tvg-chno="31.4" tvg-name="RetroTV",RetroTV
http://192.168.2.221:5004/auto/v31.4?duration=7200
#EXTINF:-1 tvg-chno="31.5" tvg-name="SBN",SBN
http://192.168.2.221:5004/auto/v31.5?duration=7200
#EXTINF:-1 tvg-chno="31.6" tvg-name="QVC2",QVC2
http://192.168.2.221:5004/auto/v31.6?duration=7200
#EXTINF:-1 tvg-chno="31.7" tvg-name="AVoice",AVoice
http://192.168.2.221:5004/auto/v31.7?duration=7200
#EXTINF:-1 tvg-chno="31.8" tvg-name="GEB",GEB
http://192.168.2.221:5004/auto/v31.8?duration=7200
#EXTINF:-1 tvg-chno="31.9" tvg-name="Estrell",Estrell
http://192.168.2.221:5004/auto/v31.9?duration=7200
#EXTINF:-1 tvg-chno="31.10" tvg-name="KCMI",KCMI
http://192.168.2.221:5004/auto/v31.10?duration=7200
#EXTINF:-1 tvg-chno="31.11" tvg-name="NDTV",NDTV
http://192.168.2.221:5004/auto/v31.11?duration=7200
#EXTINF:-1 tvg-chno="31.12" tvg-name="ACETV",ACETV
http://192.168.2.221:5004/auto/v31.12?duration=7200
#EXTINF:-1 tvg-chno="31.13" tvg-name="HSN",HSN
http://192.168.2.221:5004/auto/v31.13?duration=7200
#EXTINF:-1 tvg-chno="34.1" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v34.1?duration=7200
#EXTINF:-1 tvg-chno="34.2" tvg-name="3ABN-PR",3ABN-PR
http://192.168.2.221:5004/auto/v34.2?duration=7200
#EXTINF:-1 tvg-chno="34.4" tvg-name="3ABN-ES",3ABN-ES
http://192.168.2.221:5004/auto/v34.4?duration=7200
#EXTINF:-1 tvg-chno="34.5" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v34.5?duration=7200
#EXTINF:-1 tvg-chno="34.6" tvg-name="3ABN-RL",3ABN-RL
http://192.168.2.221:5004/auto/v34.6?duration=7200
#EXTINF:-1 tvg-chno="34.7" tvg-name="Radio74",Radio74
http://192.168.2.221:5004/auto/v34.7?duration=7200
#EXTINF:-1 tvg-chno="35.1" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.1?duration=7200
#EXTINF:-1 tvg-chno="35.2" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.2?duration=7200
#EXTINF:-1 tvg-chno="35.3" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.3?duration=7200
#EXTINF:-1 tvg-chno="35.4" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.4?duration=7200
#EXTINF:-1 tvg-chno="35.5" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.5?duration=7200
#EXTINF:-1 tvg-chno="35.6" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.6?duration=7200
#EXTINF:-1 tvg-chno="35.7" tvg-name="WCTZ-LD",WCTZ-LD
http://192.168.2.221:5004/auto/v35.7?duration=7200
#EXTINF:-1 tvg-chno="39.1" tvg-name="WHTN",WHTN
http://192.168.2.221:5004/auto/v39.1?duration=7200
#EXTINF:-1 tvg-chno="39.2" tvg-name="Lifesty",Lifesty
http://192.168.2.221:5004/auto/v39.2?duration=7200
#EXTINF:-1 tvg-chno="39.3" tvg-name="CTNi",CTNi
http://192.168.2.221:5004/auto/v39.3?duration=7200
#EXTINF:-1 tvg-chno="39.4" tvg-name="CTN",CTN
http://192.168.2.221:5004/auto/v39.4?duration=7200
#EXTINF:-1 tvg-chno="40.1" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.1?duration=7200
#EXTINF:-1 tvg-chno="40.2" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.2?duration=7200
#EXTINF:-1 tvg-chno="40.3" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.3?duration=7200
#EXTINF:-1 tvg-chno="40.4" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.4?duration=7200
#EXTINF:-1 tvg-chno="40.5" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.5?duration=7200
#EXTINF:-1 tvg-chno="40.6" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.6?duration=7200
#EXTINF:-1 tvg-chno="40.7" tvg-name="WKUW-LD",WKUW-LD
http://192.168.2.221:5004/auto/v40.7?duration=7200
#EXTINF:-1 tvg-chno="42.1" tvg-name="Univis",Univis
http://192.168.2.221:5004/auto/v42.1?duration=7200
#EXTINF:-1 tvg-chno="42.2" tvg-name="Unimas",Unimas
http://192.168.2.221:5004/auto/v42.2?duration=7200
#EXTINF:-1 tvg-chno="42.3" tvg-name="theGRIO",theGRIO
http://192.168.2.221:5004/auto/v42.3?duration=7200
#EXTINF:-1 tvg-chno="42.4" tvg-name="BizTV",BizTV
http://192.168.2.221:5004/auto/v42.4?duration=7200
#EXTINF:-1 tvg-chno="42.5" tvg-name="Nuestra",Nuestra
http://192.168.2.221:5004/auto/v42.5?duration=7200
#EXTINF:-1 tvg-chno="44.1" tvg-name="MeTV",MeTV
http://192.168.2.221:5004/auto/v44.1?duration=7200
#EXTINF:-1 tvg-chno="44.2" tvg-name="Heroes",Heroes
http://192.168.2.221:5004/auto/v44.2?duration=7200
#EXTINF:-1 tvg-chno="44.3" tvg-name="StartTV",StartTV
http://192.168.2.221:5004/auto/v44.3?duration=7200
#EXTINF:-1 tvg-chno="44.4" tvg-name="Decades",Decades
http://192.168.2.221:5004/auto/v44.4?duration=7200
#EXTINF:-1 tvg-chno="44.5" tvg-name="Movies",Movies
http://192.168.2.221:5004/auto/v44.5?duration=7200
#EXTINF:-1 tvg-chno="44.6" tvg-name="MeTV+",MeTV+
http://192.168.2.221:5004/auto/v44.6?duration=7200
#EXTINF:-1 tvg-chno="44.7" tvg-name="Story",Story
http://192.168.2.221:5004/auto/v44.7?duration=7200
#EXTINF:-1 tvg-chno="44.12" tvg-name="EMLW",EMLW
http://192.168.2.221:5004/auto/v44.12?duration=7200
#EXTINF:-1 tvg-chno="50.1" tvg-name="TBN HD",TBN HD
http://192.168.2.221:5004/auto/v50.1?duration=7200
#EXTINF:-1 tvg-chno="50.2" tvg-name="inspire",inspire
http://192.168.2.221:5004/auto/v50.2?duration=7200
#EXTINF:-1 tvg-chno="50.3" tvg-name="SMILE",SMILE
http://192.168.2.221:5004/auto/v50.3?duration=7200
#EXTINF:-1 tvg-chno="50.4" tvg-name="Enlace",Enlace
http://192.168.2.221:5004/auto/v50.4?duration=7200
#EXTINF:-1 tvg-chno="50.5" tvg-name="POSITIV",POSITIV
http://192.168.2.221:5004/auto/v50.5?duration=7200
#EXTINF:-1 tvg-chno="58.1" tvg-name="DABL",DABL
http://192.168.2.221:5004/auto/v58.1?duration=7200
#EXTINF:-1 tvg-chno="58.2" tvg-name="Stadium",Stadium
http://192.168.2.221:5004/auto/v58.2?duration=7200
#EXTINF:-1 tvg-chno="58.3" tvg-name="Charge!",Charge!
http://192.168.2.221:5004/auto/v58.3?duration=7200
#EXTINF:-1 tvg-chno="58.4" tvg-name="Dabl",Dabl
http://192.168.2.221:5004/auto/v58.4?duration=7200
#EXTINF:-1 tvg-chno="5000" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v5000?duration=7200
#EXTINF:-1 tvg-chno="5001" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v5001?duration=7200
#EXTINF:-1 tvg-chno="5002" tvg-name="Unknown",Unknown
http://192.168.2.221:5004/auto/v5002?duration=7200
Image
Post Reply

Return to “Suggestions & Feedback”