Skip to content

Instantly share code, notes, and snippets.

@Axel-Erfurt
Last active June 16, 2026 12:31
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
@Mzungu-me

Copy link
Copy Markdown

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

@citruses

citruses commented Apr 8, 2025

Copy link
Copy Markdown

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

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

Suche mal hier, sollte was vorhanden sein.

@feldti

feldti commented Sep 13, 2025

Copy link
Copy Markdown

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?

@ScyllaHide

Copy link
Copy Markdown

awesome, so i can finally watch the world cup, without my fan buzzing, bcs live streaming in browsers really sucks.

@rolfrost881-cloud

Copy link
Copy Markdown

live streaming in browsers really sucks.

In der Tat ist video.js extrem CPU-lastig. Was daran liegt, daß die in der m3u8-deklarierten mp4-Chunks gepuffert und zu einem kontinuierlichen Stream erst auf dem Endgerät zusammengesetzt werden müssen. Auf Smart-TV-Geräten mit wenig Rechenleistung ist damit die Wiedergabe von Live-Streams nicht ruckelfrei.

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