Skip to content

Instantly share code, notes, and snippets.

@Axel-Erfurt
Last active April 24, 2026 14:17
Show Gist options
  • Select an option

  • Save Axel-Erfurt/b40584d152e1c2f13259590a135e05f4 to your computer and use it in GitHub Desktop.

Select an option

Save Axel-Erfurt/b40584d152e1c2f13259590a135e05f4 to your computer and use it in GitHub Desktop.
Livestreams deutscher TV-Sender
#EXTM3U
#EXTINF:-1,ARD
https://daserste-live.ard-mcdn.de/daserste/live/hls/de/master.m3u8
#EXTINF:-1,ARD ONE
https://mcdn-one.ard.de/ardone/hls/master.m3u8
#EXTINF:-1,ARD Alpha
https://mcdn.br.de/br/fs/ard_alpha/hls/de/master.m3u8
#EXTINF:-1,ARD Tagesschau
https://tagesschau.akamaized.net/hls/live/2020115/tagesschau/tagesschau_1/master.m3u8
#EXTINF:-1,ZDF
http://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8
#EXTINF:-1,ZDF neo
http://zdf-hls-16.akamaized.net/hls/live/2016499/de/high/master.m3u8
#EXTINF:-1,ZDF info
http://zdf-hls-17.akamaized.net/hls/live/2016500/de/high/master.m3u8
#EXTINF:-1,MDR Sachsen
https://mdrtvsnhls.akamaized.net/hls/live/2016928/mdrtvsn/master.m3u8
#EXTINF:-1,MDR Thüringen
https://mdrtvthhls.akamaized.net/hls/live/2016880/mdrtvth/master.m3u8
#EXTINF:-1,MDR Sachsen-Anhalt
https://mdrtvsahls.akamaized.net/hls/live/2016879/mdrtvsa/master.m3u8
#EXTINF:-1,PHOENIX
http://zdf-hls-19.akamaized.net/hls/live/2016502/de/high/master.m3u8
#EXTINF:-1,RBB Berlin
https://rbb-hls-berlin.akamaized.net/hls/live/2017824/rbb_berlin/master.m3u8
#EXTINF:-1,RBB Brandenburg
https://rbb-hls-brandenburg.akamaized.net/hls/live/2017825/rbb_brandenburg/master.m3u8
#EXTINF:-1,BR Nord
https://mcdn.br.de/br/fs/bfs_nord/hls/de/master.m3u8
#EXTINF:-1,BR Süd
https://mcdn.br.de/br/fs/bfs_sued/hls/de/master.m3u8
#EXTINF:-1,HR
https://hrhls.akamaized.net/hls/live/2024525/hrhls/master.m3u8
#EXTINF:-1,SR
https://srfs.akamaized.net/hls/live/689649/srfsgeo/index.m3u8
#EXTINF:-1,SWR BW
https://swrbwd-hls.akamaized.net/hls/live/2018672/swrbwd/master.m3u8
#EXTINF:-1,SWR RP
https://swrrpd-hls.akamaized.net/hls/live/2018676/swrrpd/master.m3u8
#EXTINF:-1,NDR Niedersachsen
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_nds/master.m3u8
#EXTINF:-1,NDR Hamburg
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_hh/master.m3u8
#EXTINF:-1,NDR Mecklenburg-Vorpommern
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_mv/master.m3u8
#EXTINF:-1,NDR Schleswig-Holstein
https://mcdn.ndr.de/ndr/hls/ndr_fs/ndr_sh/master.m3u8
#EXTINF:-1,DW
https://dwamdstream111.akamaized.net/hls/live/2017972/dwstream111/index.m3u8
#EXTINF:-1,WDR (weltweit)
https://mcdn.wdr.de/wdr/wdrfs/de/master.m3u8
#EXTINF:-1,WDR Lokalzeit Münsterland
https://wdrlokalzeit.akamaized.net/hls/live/2018025/wdrlz_muensterland/index.m3u8
#EXTINF:-1,WDR Lokalzeit Südwestfalen
https://wdrlokalzeit.akamaized.net/hls/live/2018020/wdrlz_siegen/index.m3u8
#EXTINF:-1,WDR Lokalzeit Ostwestfalen Lippe
https://wdrlokalzeit.akamaized.net/hls/live/2018026/wdrlz_bielefeld/index.m3u8
#EXTINF:-1,WDR Lokalzeit Bonn
https://wdrlokalzeit.akamaized.net/hls/live/2018021/wdrlz_bonn/index.m3u8
#EXTINF:-1,WDR Lokalzeit Dortmund
https://wdrlokalzeit.akamaized.net/hls/live/2018022/wdrlz_dortmund/index.m3u8
#EXTINF:-1,WDR Lokalzeit Aachen
https://wdrlokalzeit.akamaized.net/hls/live/2018019/wdrlz_aachen/index.m3u8
#EXTINF:-1,WDR Lokalzeit Düsseldorf
https://wdrlokalzeit.akamaized.net/hls/live/2018023/wdrlz_duesseldorf/index.m3u8
#EXTINF:-1,WDR Lokalzeit Köln
https://wdrlokalzeit.akamaized.net/hls/live/2023550/wdrlz_koeln/index.m3u8
#EXTINF:-1,WDR (Deutschland)
https://wdrfs247.akamaized.net/hls/live/681509/wdr_msl4_fs247/index.m3u8
#EXTINF:-1,WDR Lokalzeit Bergisches Land
https://wdrlokalzeit.akamaized.net/hls/live/2018028/wdrlz_wuppertal/index.m3u8
#EXTINF:-1,WDR Lokalzeit Ruhr
https://wdrlokalzeit.akamaized.net/hls/live/2018027/wdrlz_essen/index.m3u8
#EXTINF:-1,WDR Lokalzeit Duisburg
https://wdrlokalzeit.akamaized.net/hls/live/2018024/wdrlz_duisburg/index.m3u8
#EXTINF:-1,ARTE DE
https://artesimulcast.akamaized.net/hls/live/2030993/artelive_de/index.m3u8
#EXTINF:-1,ARTE FR
https://artesimulcast.akamaized.net/hls/live/2031003/artelive_fr/index.m3u8
#EXTINF:-1,3Sat
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/high/master.m3u8
#EXTINF:-1,kika
https://kikageohls.akamaized.net/hls/live/2022693/livetvkika_de/master.m3u8
@lea-egg
Copy link
Copy Markdown

lea-egg commented Sep 15, 2024

Hallo, funktioniert das auch für RTL oder nur für den ÖRR?

@Mzungu-me
Copy link
Copy Markdown

Hallo, hat Jemand einen *m3u8-Link für schweizer Sender?

@citruses
Copy link
Copy Markdown

citruses commented Apr 8, 2025

Hallo, hat Jemand einen *m3u8-Link für schweizer Sender?

https://github.com/iptv-org/iptv

Suche mal hier, sollte was vorhanden sein.

@feldti
Copy link
Copy Markdown

feldti commented Sep 13, 2025

Der Link zu WDR Köln geht nicht mehr ... habe gesucht, aber keinen neuen gefunden

@Axel-Erfurt
Copy link
Copy Markdown
Author

@Axel-Erfurt
Copy link
Copy Markdown
Author

Eine gute Quelle zum Suchen ist immer mediathekviewweb

https://mediathekviewweb.de/#query=%23livestream%20!wdr

@mahlingam
Copy link
Copy Markdown

Nice, der ZDF Link hat tatsächlich auf Anhieb den 'alternativen' Kommentar zum DFB-Pokalspiel, http://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8
Analog und in der Mediathek ist es C. Neumann, weiss jemand wieso?

@rolfrost881-cloud
Copy link
Copy Markdown

Hallo, darf ich die m3u-Datei per Ajax/Cors in meine Webseite einbinden?

@Axel-Erfurt
Copy link
Copy Markdown
Author

Kannst Du machen, allerdings ist die Lösung von 59de44955ebd besser, da immer aktuell.
https://59de44955ebd.github.io/tv/index.html

@rolfrost881-cloud
Copy link
Copy Markdown

Kannst Du machen, allerdings ist die Lösung von 59de44955ebd besser, da immer aktuell. https://59de44955ebd.github.io/tv/index.html

Vielen Dank! Meine Anwendung ist die da: https://rolfrost.de/tv

Ist die API von https://mediathekviewweb.de/ zum Abruf der Senderliste öffentlich?

Viele Grüße (Erfurt grüßt Erfurt)

@Axel-Erfurt
Copy link
Copy Markdown
Author

Die API ist öffentlich

Ich verwende dieses Python-Skript

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
from time import gmtime, strftime
now = strftime("%d_%m_%Y", gmtime())

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

playlist.append('#EXTM3U')

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 ".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)
    
for ch in channels:
    r = getURL(ch)
    
for x in range(len(chList)):
    playlist.append(f"#EXTINF:-1,{chList[x]}\n{urlList[x]}")

    
print('\n'.join(playlist))

with open(f"Playlist_{now}.m3u", 'w') as f:
    f.write('\n'.join(playlist))

@rolfrost881-cloud
Copy link
Copy Markdown

Die API ist öffentlich

Prima. https://rolfrost.de/tv holt die Liste via CORS/Ajax. Funktioniert einwandfrei.

Grüße aus Erfurt ;)

@krauthaus
Copy link
Copy Markdown

Hat jemand vielleicht eine noch funktionierende Comedy Central m3u?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment