Skip to content

Instantly share code, notes, and snippets.

@Axel-Erfurt
Last active June 21, 2026 17:56
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
@Axel-Erfurt

Copy link
Copy Markdown
Author

Bevorzugte Auflösung in Einstellungen wählen.

vlc2

@Zanzibari

Zanzibari commented May 2, 2024

Copy link
Copy Markdown

Bevorzugte Auflösung in Einstellungen wählen.

DAS hat geklappt — vielen Dank! :-)

@Zanzibari

Zanzibari commented May 2, 2024

Copy link
Copy Markdown

In VLC die Buttons vorheriges Stück / nachfolgendes Stück benutzen oder die Wiedergabeliste anzeigen lassen und Sender per Doppelklick starten

DAS funktioniert bei mir nur mit dem 1. Sender in der Liste.
Wiedergabeliste ist da, auch die Buttons hatte ich getestet. Allerdings hängt sich VLC bei der 2. Wahl in einer Schleife auf:
Your input can't be opened:
VLC is unable to open the MRL 'https://mdrtvsnhls.akamaized.net/hls/live/2016928/mdrtvsn/master.m3u8'. Check the log for details.
Your input can't be opened:
VLC is unable to open the MRL 'https://mdrtvsnhls.akamaized.net/hls/live/2016928/mdrtvsn/master.m3u8'. Check the log for details.
etc 👎

VLC log:
-- logger module started --
main: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
adaptive: Changing stream format Unknown -> WebVTT
adaptive: Ending demuxer stream. [needrestart]
adaptive: Changing stream format Unknown -> Packed AAC
mpeg4audio: AAC channels: 2 samplerate: 48000
adaptive: Changing stream format Unknown -> TS
adaptive: Ending demuxer stream. [needrestart]
access error: HTTP 403 error
access error: HTTP 403 error
access error: HTTP 403 error
access error: HTTP 403 error
access error: HTTP 403 error
access error: HTTP 403 error
access error: HTTP 403 error

Umgehungslösung:
Für jeden Kanal eine eigene *.m3u-Datei anlegen — z.B. "WDR Lokalzeit Duisburg.m3u"

UPDATE:
Scheint an meinen Netzwerkeinstellungen zu liegen — denn z.B. ZDF hat http://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8 — und http ohne "s" wird wohl nicht durchgelassen.

Ich hab jetzt https://zdf-hls-15.akamaized.net/hls/live/2016498/de/high/master.m3u8 getestet — funktioniert! 👍

Lasse ich mal stehen, denn Andere stehen vielleicht vor dem gleichen Problem.

@marcel151

marcel151 commented May 30, 2024

Copy link
Copy Markdown

Wie kann man sich denn anzeigen lassen, welche Auflösungen ein Stream liefern kann? Aktuell sehe ich beim ZDF max. 720p, bei ARD 1080p.

@Zanzibari

Copy link
Copy Markdown

Die Datei ist auch 2 Jahre alt, da stimmte nicht mehr viel, habe mal korrigiert.

Wie schauts denn mit ORF bzw. SRF aus? Ich habe VPN, IP = Wien, aber bekomme Fehlermeldung in VLC:

+access error: HTTP 403 error
+main error: connection error: Resource temporarily unavailable

Stimmen die ORF-Adressen nicht mehr und kennt jemand die Schweizer?

@prajoshpremdas

Copy link
Copy Markdown

I was looking for an option to also have subtitles in German. Does anyone know how to get subtitle?

@Axel-Erfurt

Copy link
Copy Markdown
Author

Use a player that offers this option. vlc, iptvnator ...

@prajoshpremdas

prajoshpremdas commented Jun 30, 2024

Copy link
Copy Markdown

Perfect works with iptvnator. Thanks

@59de44955ebd

59de44955ebd commented Jul 1, 2024

Copy link
Copy Markdown

Hier die gleiche Playlist, aber immer aktuell, da in Echtzeit über die MediathekViewWeb API generiert:
https://59de44955ebd.github.io/tv/index.html

@59de44955ebd

Copy link
Copy Markdown

ps: hier noch ein kleiner Online-TV-Player, über den die (ebenfalls immer aktuellen) Livestreams direkt im Browser angeschaut werden können, ohne umständlich die einzelnen Sender/Mediatheks-Seiten aufrufen zu müssen:
https://59de44955ebd.github.io/tv-player/

@Axel-Erfurt

Copy link
Copy Markdown
Author

Danke, sehr gut.

@Zanzibari

Copy link
Copy Markdown

Bitte helft! Ich brauche passende ORF oder SRF -streams für heute abend, um das Spiel Türkei — Österreich zu sehen! ÖR übertragt nicht, alle Türken und Ösis in D sind sauer…

@59de44955ebd

Copy link
Copy Markdown

@Zanzibari FYI, der SRF-Sport-Livestream (https://www.srf.ch/play/tv/sport-livestreams) funktioniert auch in Deutschland tadellos im Browser, wenn du einen Schweizer SOCKS5-Proxy verwendest, das genügt schon um das Geoblocking zu umgehen. Ich habe job-bedingt zufällig SSH-Zugriff auf einen in der Schweiz gehosteten Server und konnte so neulich Schweiz-Italien anschauen, daher weiß ich das.

@lea-egg

lea-egg commented Sep 15, 2024

Copy link
Copy Markdown

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

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.

@ScyllaHide

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.

Naja im mvp läufts viel besser mit weniger CPU und ich kann das bild skalen und hinschieben wo ich mag.

@rolfrost881-cloud

Copy link
Copy Markdown

In Browsern die auf PCs laufen, ist die Wiedergabe der m3u8-Livestreams mit video.js kein Problem. Und mp4-Streams (Mediathek) laufen auch im Samsungbrowser auf meinem Smart-TV ruckelfrei. Ansonsten steht es ja jedem frei was er wo guckt ;)

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