Free-TV / IPTV

M3U Playlist for free TV channels
4.88k stars 815 forks source link

German TV #5

Closed Axel-Erfurt closed 3 years ago

Axel-Erfurt commented 3 years ago

Hi, not an issue,

python script to grab the free German TV Channels from MediathekView API,

output in m3u format

import requests

channels_logos = {"ARD": "https://raw.githubusercontent.com/cytec/tvlogos/master/ard.png", 
                    "ARD ONE": "https://raw.githubusercontent.com/cytec/tvlogos/master/one.png",
                    "ARD Alpha": "https://raw.githubusercontent.com/cytec/tvlogos/master/br-alpha.png" ,  
                    "ARD Tagesschau": "https://raw.githubusercontent.com/cytec/tvlogos/master/tagesschau24.png" ,
                    "ZDF": "https://raw.githubusercontent.com/cytec/tvlogos/master/zdf.png" ,
                    "ZDF neo": "https://raw.githubusercontent.com/cytec/tvlogos/master/zdfneo.png" ,
                    "ZDF info": "https://raw.githubusercontent.com/cytec/tvlogos/master/zdfinfo.png" ,
                    "MDR Sachsen": "https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" ,
                    "MDR Sachsen-Anhalt": "https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" , 
                    "MDR Thüringen": "https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" ,
                    "PHOENIX": "https://raw.githubusercontent.com/cytec/tvlogos/master/phoenix.png" ,
                    "RBB Berlin": "https://raw.githubusercontent.com/cytec/tvlogos/master/rbb.png" ,
                    "RBB Brandenburg": "https://raw.githubusercontent.com/cytec/tvlogos/master/rbb.png" ,
                    "BR Süd": "https://raw.githubusercontent.com/cytec/tvlogos/master/br.png" ,
                    "BR Nord": "https://raw.githubusercontent.com/cytec/tvlogos/master/br.png" ,
                    "HR": "https://raw.githubusercontent.com/cytec/tvlogos/master/hr.png" ,
                    "SR": "https://raw.githubusercontent.com/cytec/tvlogos/master/sr.png" ,
                    "SWR RP": "https://raw.githubusercontent.com/cytec/tvlogos/master/swr.png" ,
                    "SWR BW": "https://raw.githubusercontent.com/cytec/tvlogos/master/swr.png" ,
                    "NDR": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "NDR Fernsehen": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" , 
                    "NDR Niedersachsen": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "NDR Mecklenburg-Vorpommern": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "NDR Schleswig-Holstein": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "NDR Hamburg": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "NDR Fernsehen Schleswig-Holstein": "https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" ,
                    "DW": "https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/deutschewelle.png" ,
                    "WDR": "https://raw.githubusercontent.com/cytec/tvlogos/master/wdr.png" ,
                    "ARTE DE": "https://raw.githubusercontent.com/cytec/tvlogos/master/arte.png" ,
                    "3Sat": "https://raw.githubusercontent.com/cytec/tvlogos/master/3sat.png" ,
                    "kika": "https://raw.githubusercontent.com/cytec/tvlogos/master/kika.png" ,
                    "ORF-1": "https://raw.githubusercontent.com/cytec/tvlogos/master/orf-eins.png" ,
                    "ORF-2": "https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/orf2hd.png" ,
                    "ORF-3": "https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/orf3hd.png" ,
                    "ORF-Sport": "https://upload.wikimedia.org/wikipedia/de/thumb/9/9c/ORFsport_logo.svg/320px-ORFsport_logo.svg.png"
                    }

channels = ["ard", "zdf", "mdr", "phoenix", "rbb", "br", "hr", "sr", "swr", "ndr", "dw", "wdr", "arte", "3sat", "kika", "orf", "sf"]
chList = []
urlList = []

def getURL(name):
    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0',
        'Accept': '*/*',
        'Accept-Language': 'de-DE,en;q=0.5',
        'Content-Type': 'text/plain;charset=UTF-8',
        'Connection': 'keep-alive',
    }

    data = {"queries":[{"fields":["title","topic"],"query":"livestream"},{"fields":["channel"],"query":"" + name + ""}]}
    response = requests.post('https://mediathekviewweb.de/api/query', headers=headers, json=data)
    response_json = response.json()
    count = int(response_json['result']['queryInfo']['resultCount'])
    for x in range(count):
        title = response_json['result']['results'][x]['title']
        url = response_json['result']['results'][x]['url_video']
        if "Extra" in title:
            continue
        if ".m3u8" in url and "3Sat" in title:
            chList.append(title.replace(".", " ").replace(' Livestream', ''))
            urlList.append(url)
        if ".m3u8" in url and "KiKA" in title:
            title = "kika"
            chList.append(title)
            urlList.append(url)
        if ".m3u8" in url and name.upper() in title:
            chList.append(title.replace(".", " ").replace(' Livestream', ''))
            urlList.append(url)

result = "#EXTM3U\n"

for ch in channels:
    r = getURL(ch)

for x in range(len(chList)):
    name = chList[x]
    if name in channels_logos:
        logo = channels_logos[name]
        id = ""
        url = urlList[x]
        result += f'#EXTINF:-1 tvg-name="{name}" group-title="{"Germany"}" tvg-logo="{logo}" tvg-id="{id}",{name}\n{url}'
        result += "\n"

print(result)

output today for example:

#EXTM3U
#EXTINF:-1 tvg-name="ARD" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ard.png" tvg-id="",ARD
http://mcdn.daserste.de/daserste/de/master.m3u8
#EXTINF:-1 tvg-name="ARD ONE" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/one.png" tvg-id="",ARD ONE
http://onelivestream-lh.akamaihd.net/i/one_livestream@568814/master.m3u8
#EXTINF:-1 tvg-name="ARD Alpha" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/br-alpha.png" tvg-id="",ARD Alpha
http://brlive-lh.akamaihd.net/i/bralpha_germany@119899/master.m3u8
#EXTINF:-1 tvg-name="ARD Tagesschau" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/tagesschau24.png" tvg-id="",ARD Tagesschau
http://tagesschau-lh.akamaihd.net/i/tagesschau_1@119231/master.m3u8
#EXTINF:-1 tvg-name="ZDF" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/zdf.png" tvg-id="",ZDF
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8
#EXTINF:-1 tvg-name="ZDF neo" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/zdfneo.png" tvg-id="",ZDF neo
http://zdf-hls-16.akamaized.net/hls/live/2016499/de/high/master.m3u8
#EXTINF:-1 tvg-name="ZDF info" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/zdfinfo.png" tvg-id="",ZDF info
http://zdf-hls-17.akamaized.net/hls/live/2016500/de/high/master.m3u8
#EXTINF:-1 tvg-name="MDR Sachsen" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" tvg-id="",MDR Sachsen
https://mdrtvsnhls.akamaized.net/hls/live/2016928/mdrtvsn/master.m3u8
#EXTINF:-1 tvg-name="MDR Sachsen-Anhalt" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" tvg-id="",MDR Sachsen-Anhalt
https://mdrtvsahls.akamaized.net/hls/live/2016879/mdrtvsa/master.m3u8
#EXTINF:-1 tvg-name="MDR Thüringen" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/mdr.png" tvg-id="",MDR Thüringen
https://mdrtvthhls.akamaized.net/hls/live/2016880/mdrtvth/master.m3u8
#EXTINF:-1 tvg-name="PHOENIX" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/phoenix.png" tvg-id="",PHOENIX
http://zdf-hls-19.akamaized.net/hls/live/2016502/de/high/master.m3u8
#EXTINF:-1 tvg-name="RBB Berlin" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/rbb.png" tvg-id="",RBB Berlin
http://rbblive-lh.akamaihd.net/i/rbb_berlin@144674/master.m3u8
#EXTINF:-1 tvg-name="RBB Brandenburg" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/rbb.png" tvg-id="",RBB Brandenburg
http://rbblive-lh.akamaihd.net/i/rbb_brandenburg@349369/master.m3u8
#EXTINF:-1 tvg-name="BR Süd" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/br.png" tvg-id="",BR Süd
http://mcdn.br.de/bfs_sued/de/master.m3u8
#EXTINF:-1 tvg-name="BR Nord" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/br.png" tvg-id="",BR Nord
http://brlive-lh.akamaihd.net/i/bfsnord_germany@119898/master.m3u8
#EXTINF:-1 tvg-name="HR" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/hr.png" tvg-id="",HR
http://hrlive1-lh.akamaihd.net/i/hr_fernsehen@75910/master.m3u8
#EXTINF:-1 tvg-name="SR" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/sr.png" tvg-id="",SR
http://srlive24-lh.akamaihd.net/i/sr_universal02@107595/master.m3u8
#EXTINF:-1 tvg-name="SWR RP" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/swr.png" tvg-id="",SWR RP
https://swrrphls-i.akamaihd.net/hls/live/667639/swrrpd/master.m3u8
#EXTINF:-1 tvg-name="SWR BW" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/swr.png" tvg-id="",SWR BW
https://swrbwhls-i.akamaihd.net/hls/live/667638/swrbwd/master.m3u8
#EXTINF:-1 tvg-name="NDR Fernsehen" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Fernsehen
https://ndrfs-lh.akamaihd.net/i/ndrfs_nds@430233/index_1992_av-b.m3u8
#EXTINF:-1 tvg-name="NDR Niedersachsen" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Niedersachsen
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_nds/master.m3u8
#EXTINF:-1 tvg-name="NDR Mecklenburg-Vorpommern" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Mecklenburg-Vorpommern
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_mv/master.m3u8
#EXTINF:-1 tvg-name="NDR Schleswig-Holstein" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Schleswig-Holstein
https://ndrfs-lh.akamaihd.net/i/ndrfs_sh@430234/master.m3u8
#EXTINF:-1 tvg-name="NDR Hamburg" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Hamburg
https://ndrfs-lh.akamaihd.net/i/ndrfs_hh@430231/master.m3u8
#EXTINF:-1 tvg-name="NDR Fernsehen Schleswig-Holstein" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/ndr.png" tvg-id="",NDR Fernsehen Schleswig-Holstein
https://ndrfs-lh.akamaihd.net/i/ndrfs_sh@430234/index_1992_av-b.m3u8
#EXTINF:-1 tvg-name="DW" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/deutschewelle.png" tvg-id="",DW
http://dwstream6-lh.akamaihd.net/i/dwstream6_live@123962/master.m3u8
#EXTINF:-1 tvg-name="WDR" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/wdr.png" tvg-id="",WDR
http://wdrfsgeo-lh.akamaihd.net/i/wdrfs_geogeblockt@530016/master.m3u8
#EXTINF:-1 tvg-name="ARTE DE" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/arte.png" tvg-id="",ARTE DE
http://artelive-lh.akamaihd.net/i/artelive_de@393591/master.m3u8
#EXTINF:-1 tvg-name="3Sat" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/3sat.png" tvg-id="",3Sat
http://zdf-hls-18.akamaized.net/hls/live/2016501/dach/high/master.m3u8
#EXTINF:-1 tvg-name="kika" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/kika.png" tvg-id="",kika
https://kikageohls.akamaized.net/hls/live/2022693/livetvkika_de/master.m3u8
#EXTINF:-1 tvg-name="ORF-1" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/cytec/tvlogos/master/orf-eins.png" tvg-id="",ORF-1
https://orf1.mdn.ors.at/out/u/orf1/qxb/manifest.m3u8
#EXTINF:-1 tvg-name="ORF-2" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/orf2hd.png" tvg-id="",ORF-2
https://orf2.mdn.ors.at/out/u/orf2/qxb/manifest.m3u8
#EXTINF:-1 tvg-name="ORF-3" group-title="Germany" tvg-logo="https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/logos/tv/orf3hd.png" tvg-id="",ORF-3
https://orf3.mdn.ors.at/out/u/orf3/qxb/manifest.m3u8
#EXTINF:-1 tvg-name="ORF-Sport" group-title="Germany" tvg-logo="" tvg-id="",ORF-Sport
https://orfs.mdn.ors.at/out/u/orfs/qxb/manifest.m3u8
freetv332 commented 3 years ago

Thanks, create a tools/ directory with a README.md inside if you want to put this somewhere.