feat: add www.magenta.tv epg grabber

This commit is contained in:
knylbyte
2026-05-13 19:46:25 +02:00
parent e9dbaeaf3b
commit b64b933458
5 changed files with 1200 additions and 0 deletions

View File

@@ -0,0 +1,143 @@
{
"manifest": {
"mpx": {
"accountPid": "mdeprod",
"locationIdUri": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Location/245991976396",
"feeds": {
"allChannelSchedulesFeed": "https://feed.entertainment.tv.theplatform.eu/f/{MpxAccountPid}/{MpxAccountPid}-all-channel-schedules",
"allChannelStationsFeed": "https://feed.entertainment.tv.theplatform.eu/f/{MpxAccountPid}/{MpxAccountPid}-channel-stations-main"
}
}
},
"channels": {
"startIndex": 1,
"itemsPerPage": 2,
"entryCount": 2,
"entries": [
{
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/259549736360",
"title": "Das Erste HD - Main",
"stations": {
"http://data.entertainment.tv.theplatform.eu/entertainment/data/Station/259550248018": {
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Station/259550248018",
"title": "Das Erste",
"guid": "das_erste_hd",
"thumbnails": {
"stationLogoColored": {
"url": "https://example.com/das-erste-colored.png",
"width": 120,
"height": 48
},
"stationLogo": {
"url": "https://example.com/das-erste.png",
"width": 120,
"height": 48
}
},
"dt$serviceId": "das-erste",
"dt$quality": "HD"
}
},
"dt$displayChannelNumber": 1,
"dt$isAdult": false,
"dt$isRadio": false
},
{
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/265809960058",
"title": "DabeiTV Radio - Main",
"stations": {
"http://data.entertainment.tv.theplatform.eu/entertainment/data/Station/265809960059": {
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Station/265809960059",
"title": "DabeiTV Radio",
"guid": "dabei_radio",
"dt$serviceId": "dabei-radio"
}
},
"dt$displayChannelNumber": 865,
"dt$isAdult": false,
"dt$isRadio": true
}
]
},
"schedule": {
"startIndex": 1,
"itemsPerPage": 1,
"entryCount": 1,
"entries": [
{
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/262270504164",
"guid": "sat1_hd-245991976396",
"channelNumber": 4,
"listings": [
{
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Listing/775359528265",
"guid": "sat1_hd_03078f33",
"startTime": 1778458200000,
"endTime": 1778461620000,
"program": {
"id": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Program/775354920143",
"title": "FBI: Special Crime Unit",
"description": "Eine gigantische Explosion in Brooklyn ruft das FBI auf den Plan. Hinweise deuten auf eine vorsätzliche Fremdeinwirkung hin.",
"isAdult": false,
"programType": "episode",
"ratings": [
{
"scheme": "telekom-age-rating-2020",
"rating": "UNKNOWN",
"subRatings": []
}
],
"runtime": 3473,
"secondaryTitle": "Aufstand",
"seriesId": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Program/guid/2709353023/telekom.de-110697",
"tags": [
{
"scheme": "category",
"title": "200-Serie",
"titleLocalized": {}
},
{
"scheme": "genre-primary",
"title": "Krimi",
"titleLocalized": {}
},
{
"scheme": "genre-secondary",
"title": "Action",
"titleLocalized": {}
},
{
"scheme": "genre-secondary",
"title": "Thriller",
"titleLocalized": {}
},
{
"scheme": "genre-secondary",
"title": "Krimi",
"titleLocalized": {}
},
{
"scheme": "programSubType",
"title": "linear_program",
"titleLocalized": {}
}
],
"tvSeasonEpisodeNumber": null,
"tvSeasonNumber": null,
"year": 2025,
"dt$countries": "us",
"dt$originalIds": {
"cmlsProgramId": "03078f33",
"tva": "crid://telekom.de/03078f33"
}
},
"stationId": "http://data.entertainment.tv.theplatform.eu/entertainment/data/Station/262269992390",
"dt$languages": ["deu"],
"dt$programInfo": "{'tvSeasonEpisodeNumber' : 7, 'tvSeasonNumber' : 8, 'seriesEpisodeNumber' : null}",
"dt$seriesTitle": "FBI: Special Crime Unit"
}
]
}
]
}
}

View File

@@ -0,0 +1,21 @@
# www.magenta.tv
https://www.magenta.tv/tv-guide
### Download the guide
```sh
npm run grab --- --sites=www.magenta.tv
```
### Update channel list
```sh
npm run channels:parse --- --config=./sites/www.magenta.tv/www.magenta.tv.config.js --output=./sites/www.magenta.tv/www.magenta.tv.channels.xml
```
### Test
```sh
npm test --- www.magenta.tv
```

View File

@@ -0,0 +1,407 @@
<?xml version="1.0" encoding="UTF-8"?>
<channels>
<channel site="www.magenta.tv" site_id="259549736358" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl/stationLogoColored_20220727.png" xmltv_id="">RTL</channel>
<channel site="www.magenta.tv" site_id="259549736360" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/das-erste/stationLogoColored_20241119.png" xmltv_id="">Das Erste</channel>
<channel site="www.magenta.tv" site_id="259728423995" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl/stationLogoColored_20220727.png" xmltv_id="">RTL</channel>
<channel site="www.magenta.tv" site_id="262264872014" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/zdf/stationLogoColored_20220824.png" xmltv_id="">ZDF</channel>
<channel site="www.magenta.tv" site_id="262269992391" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1/stationLogoColored_20220727.png" xmltv_id="">SAT.1</channel>
<channel site="www.magenta.tv" site_id="262270504164" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1/stationLogoColored_20220727.png" xmltv_id="">SAT.1</channel>
<channel site="www.magenta.tv" site_id="262270504165" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/pro7/stationLogoColored_20220824.png" xmltv_id="">ProSieben</channel>
<channel site="www.magenta.tv" site_id="262277160057" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl2/stationLogoColored_20220824.png" xmltv_id="">RTLZWEI</channel>
<channel site="www.magenta.tv" site_id="262277160060" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/super-rtl/stationLogoColored_20220727.png" xmltv_id="">Super RTL</channel>
<channel site="www.magenta.tv" site_id="262280744415" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kabel-1/stationLogoColored_20220727.png" xmltv_id="">Kabel Eins</channel>
<channel site="www.magenta.tv" site_id="262281768126" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kika/stationLogoColored_20220727.png" xmltv_id="">KiKA</channel>
<channel site="www.magenta.tv" site_id="262282280173" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/vox/stationLogoColored_20220727.png" xmltv_id="">VOX</channel>
<channel site="www.magenta.tv" site_id="262729768194" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/zdf-neo/stationLogoColored_20220727.png" xmltv_id="">ZDFneo</channel>
<channel site="www.magenta.tv" site_id="262729768197" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00754-TelekomEishockey1/stationLogoColored_20220727.png" xmltv_id="">Sport 1 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="262729768198" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tnt-serie/stationLogoColored_20220727.png" xmltv_id="">Warner TV Serie</channel>
<channel site="www.magenta.tv" site_id="262729768199" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/phoenix/stationLogoColored_20240820.png" xmltv_id="">phoenix</channel>
<channel site="www.magenta.tv" site_id="262729768201" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/13th-street/stationLogoColored_20220824.png" xmltv_id="">13TH STREET</channel>
<channel site="www.magenta.tv" site_id="262729768202" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Köln</channel>
<channel site="www.magenta.tv" site_id="262730280151" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tnt-film/stationLogoColored_20220727.png" xmltv_id="">Warner TV Film</channel>
<channel site="www.magenta.tv" site_id="262730280155" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/3sat/stationLogoColored_20220824.png" xmltv_id="">3sat</channel>
<channel site="www.magenta.tv" site_id="262730280165" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/glitz/stationLogoColored_20220727.png" xmltv_id="">Warner TV Comedy</channel>
<channel site="www.magenta.tv" site_id="262730792005" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/br-sued/stationLogoColored_20241119.png" xmltv_id="">BR Fernsehen Süd</channel>
<channel site="www.magenta.tv" site_id="262731304141" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/eurosport/stationLogoColored_20220727.png" xmltv_id="">Eurosport 1</channel>
<channel site="www.magenta.tv" site_id="262731304143" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/n-tv/stationLogoColored_20220727.png" xmltv_id="">ntv</channel>
<channel site="www.magenta.tv" site_id="262731304145" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/n24/stationLogoColored_20220727.png" xmltv_id="">WELT</channel>
<channel site="www.magenta.tv" site_id="274350120287" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/vox/stationLogoColored_20220727.png" xmltv_id="">VOX</channel>
<channel site="www.magenta.tv" site_id="274350120288" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/hr/stationLogoColored_20241119.png" xmltv_id="">hr-fernsehen</channel>
<channel site="www.magenta.tv" site_id="274350120289" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kabel-1/stationLogoColored_20220727.png" xmltv_id="">Kabel Eins</channel>
<channel site="www.magenta.tv" site_id="274350120290" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-crime/stationLogoColored_20220727.png" xmltv_id="">RTL Crime</channel>
<channel site="www.magenta.tv" site_id="274350120291" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/swr-bw/stationLogoColored_20220727.png" xmltv_id="">SWR Fernsehen BW</channel>
<channel site="www.magenta.tv" site_id="274351656120" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/dmax/stationLogoColored_20220727.png" xmltv_id="">DMAX</channel>
<channel site="www.magenta.tv" site_id="274351656121" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/pro7-fun/stationLogoColored_20220727.png" xmltv_id="">ProSieben FUN</channel>
<channel site="www.magenta.tv" site_id="274351656122" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-nitro/stationLogoColored_20220727.png" xmltv_id="">NITRO</channel>
<channel site="www.magenta.tv" site_id="274351656123" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rbb-berlin/stationLogoColored_20241119.png" xmltv_id="">rbb fernsehen Berlin</channel>
<channel site="www.magenta.tv" site_id="274351656124" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/n24/stationLogoColored_20220727.png" xmltv_id="">WELT</channel>
<channel site="www.magenta.tv" site_id="274351656125" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/eurosport/stationLogoColored_20220727.png" xmltv_id="">Eurosport 1</channel>
<channel site="www.magenta.tv" site_id="274351656126" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00748-RTLplus/stationLogoColored_20220727.png" xmltv_id="">RTLup</channel>
<channel site="www.magenta.tv" site_id="274351656127" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/national-geographic/stationLogoColored_20220727.png" xmltv_id="">National Geographic</channel>
<channel site="www.magenta.tv" site_id="274351656128" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/eurosport-2/stationLogoColored_20220727.png" xmltv_id="">Eurosport 2</channel>
<channel site="www.magenta.tv" site_id="274352168016" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/n-tv/stationLogoColored_20220727.png" xmltv_id="">ntv</channel>
<channel site="www.magenta.tv" site_id="274352168017" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-gold/stationLogoColored_20220824.png" xmltv_id="">SAT.1 GOLD</channel>
<channel site="www.magenta.tv" site_id="274352168018" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/mdr-sachsen/stationLogoColored_20220727.png" xmltv_id="">MDR-Fernsehen Sachsen</channel>
<channel site="www.magenta.tv" site_id="274352679970" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/pro7/stationLogoColored_20220824.png" xmltv_id="">ProSieben</channel>
<channel site="www.magenta.tv" site_id="274352679971" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/radio-bremen-tv/stationLogoColored_20240820.png" xmltv_id="">Radio Bremen TV</channel>
<channel site="www.magenta.tv" site_id="274352679972" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/arte/stationLogoColored_20220727.png" xmltv_id="">ARTE</channel>
<channel site="www.magenta.tv" site_id="274352679973" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl2/stationLogoColored_20220824.png" xmltv_id="">RTLZWEI</channel>
<channel site="www.magenta.tv" site_id="274352679974" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-emotions/stationLogoColored_20220727.png" xmltv_id="">SAT.1 emotions</channel>
<channel site="www.magenta.tv" site_id="274352679975" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/ndr/stationLogoColored_20241210.png" xmltv_id="">NDR Fernsehen Niedersachsen</channel>
<channel site="www.magenta.tv" site_id="274352679976" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sr/stationLogoColored_20241119.png" xmltv_id="">SR Fernsehen</channel>
<channel site="www.magenta.tv" site_id="274352679977" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/super-rtl/stationLogoColored_20220727.png" xmltv_id="">Super RTL</channel>
<channel site="www.magenta.tv" site_id="389263912216" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00924-CHANNEL21/stationLogoColored_20220727.png" xmltv_id="">CHANNEL21</channel>
<channel site="www.magenta.tv" site_id="389263912217" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-nitro/stationLogoColored_20220727.png" xmltv_id="">NITRO</channel>
<channel site="www.magenta.tv" site_id="389263912218" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/power-tuerk-tv/stationLogoColored_20220727.png" xmltv_id="">ÜLKE TV</channel>
<channel site="www.magenta.tv" site_id="389263912219" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00949-SchlagerparadiesTV/stationLogoColored_20221117.png" xmltv_id="">Schlagerparadies.TV</channel>
<channel site="www.magenta.tv" site_id="389263912220" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00802-MagentaMusik1/stationLogoColored_20220727.png" xmltv_id="">Magenta Musik 1</channel>
<channel site="www.magenta.tv" site_id="389263912221" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-07/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 5</channel>
<channel site="www.magenta.tv" site_id="389263912222" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00762-TelekomEishockey5/stationLogoColored_20220727.png" xmltv_id="">Sport 5 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389263912223" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kinowelt-tv/stationLogoColored_20220727.png" xmltv_id="">KinoweltTV</channel>
<channel site="www.magenta.tv" site_id="389263912224" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-08/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 7</channel>
<channel site="www.magenta.tv" site_id="389263912226" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sixx/stationLogoColored_20220727.png" xmltv_id="">sixx</channel>
<channel site="www.magenta.tv" site_id="389263912227" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00910-MagentaSport/stationLogoColored_20220727.png" xmltv_id="">MagentaSport</channel>
<channel site="www.magenta.tv" site_id="389263912228" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00841-Heimatkanal/stationLogoColored_20220824.png" xmltv_id="">Heimatkanal</channel>
<channel site="www.magenta.tv" site_id="389263912229" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tlc/stationLogoColored_20220727.png" xmltv_id="">TLC</channel>
<channel site="www.magenta.tv" site_id="389263912230" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00891-CartoonNetworkSky/stationLogoColored_20220727.png" xmltv_id="">Cartoon Network (Sky)</channel>
<channel site="www.magenta.tv" site_id="389263912231" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00978-SkySportGolf/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Golf</channel>
<channel site="www.magenta.tv" site_id="389263912232" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00976-SkySportPremierLeague/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Premier League</channel>
<channel site="www.magenta.tv" site_id="389263912233" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bibel-tv/stationLogoColored_20250611.png" xmltv_id="">Bibel TV</channel>
<channel site="www.magenta.tv" site_id="389263912234" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00909-MoreThanSportsTV/stationLogoColored_20220727.png" xmltv_id="">More Than Sports TV</channel>
<channel site="www.magenta.tv" site_id="389263912235" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-gold/stationLogoColored_20220824.png" xmltv_id="">SAT.1 GOLD</channel>
<channel site="www.magenta.tv" site_id="389263912236" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00899-SkySportF1/stationLogoColored_20220727.png" xmltv_id="">Sky Sport F1</channel>
<channel site="www.magenta.tv" site_id="389263912237" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-02/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 1</channel>
<channel site="www.magenta.tv" site_id="389263912238" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00773-kabeleinsDoku/stationLogoColored_20220727.png" xmltv_id="">Kabel Eins Doku</channel>
<channel site="www.magenta.tv" site_id="389263912240" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00765-TelekomBasketball4/stationLogoColored_20250107.png" xmltv_id="">Sport 18 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389263912242" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-03/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 1</channel>
<channel site="www.magenta.tv" site_id="389263912243" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/glitz-hd-sky/stationLogoColored_20220727.png" xmltv_id="">Warner TV Comedy (Sky)</channel>
<channel site="www.magenta.tv" site_id="389263912244" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00760-NATGEOWILD/stationLogoColored_20220727.png" xmltv_id="">National Geographic Wild</channel>
<channel site="www.magenta.tv" site_id="389263912245" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/servus-tv/stationLogoColored_20231220.png" xmltv_id="">DF1</channel>
<channel site="www.magenta.tv" site_id="389263912247" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tv-8-int/stationLogoColored_20220727.png" xmltv_id="">TV8 Int</channel>
<channel site="www.magenta.tv" site_id="389263912248" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rck-tv/stationLogoColored_20220727.png" xmltv_id="">Jukebox</channel>
<channel site="www.magenta.tv" site_id="389263912249" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00920-ShopLC/stationLogoColored_20220727.png" xmltv_id="">Shop LC</channel>
<channel site="www.magenta.tv" site_id="389263912250" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00977-SkySportMix/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Mix</channel>
<channel site="www.magenta.tv" site_id="389264424226" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00937-TV5MONDEEurope/stationLogoColored_20251013.png" xmltv_id="">TV5MONDE Europe</channel>
<channel site="www.magenta.tv" site_id="389264424227" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/qvc/stationLogoColored_20220824.png" xmltv_id="">QVC</channel>
<channel site="www.magenta.tv" site_id="389264424228" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/syfy/stationLogoColored_20260121.png" xmltv_id="">Sky Sci-Fi</channel>
<channel site="www.magenta.tv" site_id="389264424230" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00756-TelekomEishockey3/stationLogoColored_20220727.png" xmltv_id="">Sport 3 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389264424231" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kabel-1-classics/stationLogoColored_20220727.png" xmltv_id="">Kabel Eins CLASSICS</channel>
<channel site="www.magenta.tv" site_id="389264424232" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00880-VOXup/stationLogoColored_20220727.png" xmltv_id="">VOXup</channel>
<channel site="www.magenta.tv" site_id="389264424233" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/br-alpha/stationLogoColored_20220727.png" xmltv_id="">ARD-alpha</channel>
<channel site="www.magenta.tv" site_id="389264424234" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/welt-der-wunder/stationLogoColored_20220824.png" xmltv_id="">Welt der Wunder</channel>
<channel site="www.magenta.tv" site_id="389264424235" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00741-TNTFilmSky/stationLogoColored_20220727.png" xmltv_id="">Warner TV Film (Sky)</channel>
<channel site="www.magenta.tv" site_id="389264424236" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00803-MagentaMusik2/stationLogoColored_20220727.png" xmltv_id="">Magenta Musik 2</channel>
<channel site="www.magenta.tv" site_id="389264424237" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-01/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga</channel>
<channel site="www.magenta.tv" site_id="389264424238" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/pro7-maxx/stationLogoColored_20220727.png" xmltv_id="">ProSieben MAXX</channel>
<channel site="www.magenta.tv" site_id="389264424239" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00961-StingrayClassica/stationLogoColored_20221117.png" xmltv_id="">Stingray Classica</channel>
<channel site="www.magenta.tv" site_id="389264424240" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-05/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 4</channel>
<channel site="www.magenta.tv" site_id="389264424241" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sportdigital/stationLogoColored_20220727.png" xmltv_id="">SPORTDIGITAL FUSSBALL</channel>
<channel site="www.magenta.tv" site_id="389264424242" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-07/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 6</channel>
<channel site="www.magenta.tv" site_id="389264424243" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/moviemax-turk/stationLogoColored_20220727.png" xmltv_id="">beIN Movies Turk</channel>
<channel site="www.magenta.tv" site_id="389264424244" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bbl-sd3/stationLogoColored_20220727.png" xmltv_id="">Sport 17 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389264424245" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00792-TOGGOplus/stationLogoColored_20220727.png" xmltv_id="">TOGGO plus</channel>
<channel site="www.magenta.tv" site_id="389264424246" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/einsfesti/stationLogoColored_20220727.png" xmltv_id="">ONE</channel>
<channel site="www.magenta.tv" site_id="389264424248" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00954-ONEMUSICTELEVISION/stationLogoColored_20221117.png" xmltv_id="">ONE MUSIC TELEVISION</channel>
<channel site="www.magenta.tv" site_id="389264424249" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00956-wedomovies/stationLogoColored_20251202.png" xmltv_id="">wedotv Movies</channel>
<channel site="www.magenta.tv" site_id="389264424250" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/discovery-channel/stationLogoColored_20220727.png" xmltv_id="">Discovery Channel</channel>
<channel site="www.magenta.tv" site_id="389264424252" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00885-HaberTrk/stationLogoColored_20220727.png" xmltv_id="">Habertürk TV</channel>
<channel site="www.magenta.tv" site_id="389264424253" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00748-RTLplus/stationLogoColored_20220727.png" xmltv_id="">RTLup</channel>
<channel site="www.magenta.tv" site_id="389264424254" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00942-RiC/stationLogoColored_20221117.png" xmltv_id="">RiC</channel>
<channel site="www.magenta.tv" site_id="389264424255" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skyspnews/stationLogoColored_20220727.png" xmltv_id="">Sky Sport News</channel>
<channel site="www.magenta.tv" site_id="389264424256" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/universal-channel/stationLogoColored_20220727.png" xmltv_id="">Universal TV</channel>
<channel site="www.magenta.tv" site_id="389264424257" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/passion/stationLogoColored_20220727.png" xmltv_id="">RTL Passion</channel>
<channel site="www.magenta.tv" site_id="389264424258" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tnt-serie-sky/stationLogoColored_20220727.png" xmltv_id="">Warner TV Serie (Sky)</channel>
<channel site="www.magenta.tv" site_id="389264424259" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skynostalgie/stationLogoColored_20220727.png" xmltv_id="">Sky Cinema Classics</channel>
<channel site="www.magenta.tv" site_id="389264424261" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/detmirtk/stationLogoColored_20220727.png" xmltv_id="">TeleBom/TeleDom</channel>
<channel site="www.magenta.tv" site_id="389264424262" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/romance-tv/stationLogoColored_20220727.png" xmltv_id="">Romance TV</channel>
<channel site="www.magenta.tv" site_id="389264424263" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/history-channel/stationLogoColored_20230406.png" xmltv_id="">The HISTORY Channel</channel>
<channel site="www.magenta.tv" site_id="389264424264" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skyatlantic/stationLogoColored_20220727.png" xmltv_id="">Sky Atlantic</channel>
<channel site="www.magenta.tv" site_id="389264424268" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00960-OUTtv/stationLogoColored_20221117.png" xmltv_id="">OUTtv</channel>
<channel site="www.magenta.tv" site_id="389264424269" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00761-TelekomEishockey4/stationLogoColored_20220727.png" xmltv_id="">Sport 4 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389264424271" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-05/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 3</channel>
<channel site="www.magenta.tv" site_id="389264424272" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skykrimi/stationLogoColored_20220727.png" xmltv_id="">Sky Krimi</channel>
<channel site="www.magenta.tv" site_id="389264424273" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00987-Espreso/stationLogoColored_20221117.png" xmltv_id="">Espreso</channel>
<channel site="www.magenta.tv" site_id="389264424274" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00963-StingrayiConcerts/stationLogoColored_20221117.png" xmltv_id="">Stingray iConcerts</channel>
<channel site="www.magenta.tv" site_id="389264936243" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-02/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Tennis</channel>
<channel site="www.magenta.tv" site_id="389264936244" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/13th-street-sky/stationLogoColored_20220824.png" xmltv_id="">13TH STREET (Sky)</channel>
<channel site="www.magenta.tv" site_id="389264936247" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-11/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 9</channel>
<channel site="www.magenta.tv" site_id="389264936248" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skyaction/stationLogoColored_20220727.png" xmltv_id="">Sky Cinema Action</channel>
<channel site="www.magenta.tv" site_id="389264936249" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00806-MyTeamTV-Fuball1/stationLogoColored_20220727.png" xmltv_id="">Sport 8 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389264936251" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00755-TelekomEishockey2/stationLogoColored_20220727.png" xmltv_id="">Sport 2 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389264936252" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-04/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 2</channel>
<channel site="www.magenta.tv" site_id="389264936253" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/axn/stationLogoColored_20230829.png" xmltv_id="">AXN Black</channel>
<channel site="www.magenta.tv" site_id="389264936254" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00950-BallermannTV/stationLogoColored_20221117.png" xmltv_id="">Ballermann TV</channel>
<channel site="www.magenta.tv" site_id="389264936255" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/cartoon-network/stationLogoColored_20220824.png" xmltv_id="">Cartoon Network</channel>
<channel site="www.magenta.tv" site_id="389264936256" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00980-SkySportBundesliga10/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 10</channel>
<channel site="www.magenta.tv" site_id="389264936257" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/show-turk/stationLogoColored_20220824.png" xmltv_id="">Show Turk</channel>
<channel site="www.magenta.tv" site_id="389264936258" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-08/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 6</channel>
<channel site="www.magenta.tv" site_id="389264936259" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bongusto/stationLogoColored_20220727.png" xmltv_id="">BonGusto</channel>
<channel site="www.magenta.tv" site_id="389264936260" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-09/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 8</channel>
<channel site="www.magenta.tv" site_id="389264936261" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00893-ANIXEHDSerie/stationLogoColored_20220727.png" xmltv_id="">ANIXE HD Serie</channel>
<channel site="www.magenta.tv" site_id="389264936262" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00902-ServusTVMotorsport/stationLogoColored_20250804.png" xmltv_id="">Red Bull TV Motorsport</channel>
<channel site="www.magenta.tv" site_id="389264936263" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sport1-us-sd/stationLogoColored_20241203.png" xmltv_id="">eSportsONE</channel>
<channel site="www.magenta.tv" site_id="389264936264" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/animal-planet/stationLogoColored_20220824.png" xmltv_id="">Animal Planet</channel>
<channel site="www.magenta.tv" site_id="389264936266" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skycinema/stationLogoColored_20240318.png" xmltv_id="">Sky Cinema Premiere</channel>
<channel site="www.magenta.tv" site_id="389264936267" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rai-tre/stationLogoColored_20220824.png" xmltv_id="">Rai 3</channel>
<channel site="www.magenta.tv" site_id="389264936269" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00962-StingrayDJAZZ/stationLogoColored_20221117.png" xmltv_id="">Stingray DJAZZ</channel>
<channel site="www.magenta.tv" site_id="389264936270" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/planet-tv/stationLogoColored_20220727.png" xmltv_id="">Bergblick</channel>
<channel site="www.magenta.tv" site_id="389264936271" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/playboy-europe/stationLogoColored_20220824.png" xmltv_id="">Playboy Europe</channel>
<channel site="www.magenta.tv" site_id="389264936272" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtvi/stationLogoColored_20220727.png" xmltv_id="">OstWest</channel>
<channel site="www.magenta.tv" site_id="389264936273" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00780-Sky1/stationLogoColored_20220727.png" xmltv_id="">Sky One</channel>
<channel site="www.magenta.tv" site_id="389264936278" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/itvn/stationLogoColored_20220824.png" xmltv_id="">iTVN</channel>
<channel site="www.magenta.tv" site_id="389264936279" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00773-kabeleinsDoku/stationLogoColored_20220727.png" xmltv_id="">Kabel Eins Doku</channel>
<channel site="www.magenta.tv" site_id="389264936281" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00772-N24Doku/stationLogoColored_20220727.png" xmltv_id="">N24 Doku</channel>
<channel site="www.magenta.tv" site_id="389265448044" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/entertain-info/stationLogoColored_20220727.png" xmltv_id="">MagentaTV Info</channel>
<channel site="www.magenta.tv" site_id="389265448045" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/viva/stationLogoColored_20220727.png" xmltv_id="">Comedy Central</channel>
<channel site="www.magenta.tv" site_id="389265448046" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00819-SkySportKompakt1/stationLogoColored_20220727.png" xmltv_id="">Sky Sport Kompakt 1</channel>
<channel site="www.magenta.tv" site_id="389265448047" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00795-MOTORVISIONTV/stationLogoColored_20230907.png" xmltv_id="">Motorvision+</channel>
<channel site="www.magenta.tv" site_id="389265448048" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tagesschau24/stationLogoColored_20220727.png" xmltv_id="">tagesschau24</channel>
<channel site="www.magenta.tv" site_id="389265448049" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00935-MarcoPoloTV/stationLogoColored_20220727.png" xmltv_id="">Marco Polo TV</channel>
<channel site="www.magenta.tv" site_id="389265448050" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/anixe-sd/stationLogoColored_20220727.png" xmltv_id="">ANIXE+</channel>
<channel site="www.magenta.tv" site_id="389265448051" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/cnn-international/stationLogoColored_20220727.png" xmltv_id="">CNN International</channel>
<channel site="www.magenta.tv" site_id="389265448052" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sport1/stationLogoColored_20240424.png" xmltv_id="">SPORT1</channel>
<channel site="www.magenta.tv" site_id="389265448053" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00863-HGTV/stationLogoColored_20220824.png" xmltv_id="">HGTV</channel>
<channel site="www.magenta.tv" site_id="389265448054" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00988-FREEDOM/stationLogoColored_20221117.png" xmltv_id="">FREEDOM</channel>
<channel site="www.magenta.tv" site_id="389265448055" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tlc/stationLogoColored_20220727.png" xmltv_id="">TLC</channel>
<channel site="www.magenta.tv" site_id="389265448056" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00970-SCHLAGERDELUXE/stationLogoColored_20221117.png" xmltv_id="">SCHLAGER DELUXE</channel>
<channel site="www.magenta.tv" site_id="389265448057" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00938-DeutschesMusikFernsehen/stationLogoColored_20240528.png" xmltv_id="">DMF</channel>
<channel site="www.magenta.tv" site_id="389265448058" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-10/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 9</channel>
<channel site="www.magenta.tv" site_id="389265448059" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/pro7-maxx/stationLogoColored_20220727.png" xmltv_id="">ProSieben MAXX</channel>
<channel site="www.magenta.tv" site_id="389265448060" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/mtv-hd/stationLogoColored_20220727.png" xmltv_id="">MTV</channel>
<channel site="www.magenta.tv" site_id="389265448061" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00952-VolksmusikTV/stationLogoColored_20240110.png" xmltv_id="">Volksmusik.TV</channel>
<channel site="www.magenta.tv" site_id="389265448062" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-06/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 5</channel>
<channel site="www.magenta.tv" site_id="389265448063" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00809-MyTeamTV-Fuball4/stationLogoColored_20220727.png" xmltv_id="">Sport 11 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389265448065" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00895-1-2-3tv/stationLogoColored_20260420.png" xmltv_id="">123.live</channel>
<channel site="www.magenta.tv" site_id="389265448066" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sport1/stationLogoColored_20240424.png" xmltv_id="">SPORT1</channel>
<channel site="www.magenta.tv" site_id="389265448067" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00813-MyTeamTV-Fuball7/stationLogoColored_20220727.png" xmltv_id="">Sport 14 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389265448068" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-04/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 3</channel>
<channel site="www.magenta.tv" site_id="389265448069" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/nashe-kino/stationLogoColored_20220727.png" xmltv_id="">Kinomir</channel>
<channel site="www.magenta.tv" site_id="389265448071" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/ae/stationLogoColored_20220824.png" xmltv_id="">Crime+Investigation</channel>
<channel site="www.magenta.tv" site_id="389265448072" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-01/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Top Event</channel>
<channel site="www.magenta.tv" site_id="389265448073" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bbl-sd2/stationLogoColored_20220727.png" xmltv_id="">Sport 16 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389265448075" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00889-NicktoonsSky/stationLogoColored_20240229.png" xmltv_id="">Nicktoons (Sky)</channel>
<channel site="www.magenta.tv" site_id="389265960191" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/euro-d/stationLogoColored_20220824.png" xmltv_id="">Euro D</channel>
<channel site="www.magenta.tv" site_id="389265960192" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skybuli-03/stationLogoColored_20221117.png" xmltv_id="">Sky Sport Bundesliga 2</channel>
<channel site="www.magenta.tv" site_id="389265960194" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00955-ZWEIMUSICTELEVISION/stationLogoColored_20221117.png" xmltv_id="">ZWEI MUSIC TELEVISION</channel>
<channel site="www.magenta.tv" site_id="389265960195" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rai-due/stationLogoColored_20220824.png" xmltv_id="">Rai 2</channel>
<channel site="www.magenta.tv" site_id="389265960196" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/swr-rp/stationLogoColored_20220727.png" xmltv_id="">SWR Fernsehen RP</channel>
<channel site="www.magenta.tv" site_id="389265960197" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00877-ShowMax/stationLogoColored_20220727.png" xmltv_id="">Show Max</channel>
<channel site="www.magenta.tv" site_id="389265960198" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00887-NickJrSky/stationLogoColored_20240212.png" xmltv_id="">Nick Jr. (Sky)</channel>
<channel site="www.magenta.tv" site_id="389265960199" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/penthouse/stationLogoColored_20220727.png" xmltv_id="">Penthouse Passion</channel>
<channel site="www.magenta.tv" site_id="389265960200" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00764-TelekomEishockey7/stationLogoColored_20220727.png" xmltv_id="">Sport 7 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389265960201" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/euron-d/stationLogoColored_20230405.png" xmltv_id="">Euronews Deutsch</channel>
<channel site="www.magenta.tv" site_id="389265960204" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-living/stationLogoColored_20220727.png" xmltv_id="">RTL Living</channel>
<channel site="www.magenta.tv" site_id="389265960205" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00936-FOLXMUSICTELEVISION/stationLogoColored_20221117.png" xmltv_id="">FOLX MUSIC TELEVISION</channel>
<channel site="www.magenta.tv" site_id="389265960207" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00939-France24francais/stationLogoColored_20220727.png" xmltv_id="">France 24 francais</channel>
<channel site="www.magenta.tv" site_id="389265960208" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/viva/stationLogoColored_20220727.png" xmltv_id="">Comedy Central</channel>
<channel site="www.magenta.tv" site_id="389265960209" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00811-MyTeamTV-Fuball5/stationLogoColored_20220727.png" xmltv_id="">Sport 12 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389265960210" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tele5/stationLogoColored_20220727.png" xmltv_id="">TELE 5</channel>
<channel site="www.magenta.tv" site_id="389265960211" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/blue-hustler/stationLogoColored_20220727.png" xmltv_id="">Blue Hustler</channel>
<channel site="www.magenta.tv" site_id="389265960212" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00876-beINiZ/stationLogoColored_20220727.png" xmltv_id="">beIN iZ</channel>
<channel site="www.magenta.tv" site_id="389265960213" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00941-craction/stationLogoColored_20250320.png" xmltv_id="">TOP SERIEN</channel>
<channel site="www.magenta.tv" site_id="389265960214" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rai-uno/stationLogoColored_20220824.png" xmltv_id="">Rai 1</channel>
<channel site="www.magenta.tv" site_id="389265960215" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00940-AlJazeeraEnglish/stationLogoColored_20220727.png" xmltv_id="">Al Jazeera English</channel>
<channel site="www.magenta.tv" site_id="389265960216" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/nick-jr/stationLogoColored_20240212.png" xmltv_id="">Nick Jr.</channel>
<channel site="www.magenta.tv" site_id="389265960218" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00948-AsharqNews/stationLogoColored_20221117.png" xmltv_id="">Asharq News</channel>
<channel site="www.magenta.tv" site_id="389265960219" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sonnenklar.tv/stationLogoColored_20220727.png" xmltv_id="">sonnenklar.TV</channel>
<channel site="www.magenta.tv" site_id="389265960220" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00772-N24Doku/stationLogoColored_20220727.png" xmltv_id="">N24 Doku</channel>
<channel site="www.magenta.tv" site_id="389265960221" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/mtv-hd/stationLogoColored_20220727.png" xmltv_id="">MTV</channel>
<channel site="www.magenta.tv" site_id="389265960222" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/nickcc/stationLogoColored_20220727.png" xmltv_id="">Nick/Comedy Central+1</channel>
<channel site="www.magenta.tv" site_id="389265960223" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/cnn-international/stationLogoColored_20220727.png" xmltv_id="">CNN International</channel>
<channel site="www.magenta.tv" site_id="389265960224" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/euron-rus/stationLogoColored_20230405.png" xmltv_id="">Euronews Russki</channel>
<channel site="www.magenta.tv" site_id="389265960225" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00907-RedBullTV/stationLogoColored_20220727.png" xmltv_id="">Red Bull TV</channel>
<channel site="www.magenta.tv" site_id="389265960226" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-10/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 8</channel>
<channel site="www.magenta.tv" site_id="389265960227" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00881-SpiegelGeschichte/stationLogoColored_20230802.png" xmltv_id="">Spiegel Geschichte</channel>
<channel site="www.magenta.tv" site_id="389265960229" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/k-tv/stationLogoColored_20220727.png" xmltv_id="">K-TV</channel>
<channel site="www.magenta.tv" site_id="389265960231" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/boomerang/stationLogoColored_20230328.png" xmltv_id="">Cartoonito</channel>
<channel site="www.magenta.tv" site_id="389265960232" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00915-SkyDocumentaries/stationLogoColored_20220727.png" xmltv_id="">Sky Documentaries</channel>
<channel site="www.magenta.tv" site_id="389265960233" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/dmax/stationLogoColored_20220727.png" xmltv_id="">DMAX</channel>
<channel site="www.magenta.tv" site_id="389265960236" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sport1plus/stationLogoColored_20241203.png" xmltv_id="">Sportdigital1+</channel>
<channel site="www.magenta.tv" site_id="389265960237" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00951-France24english/stationLogoColored_20221117.png" xmltv_id="">France 24 english</channel>
<channel site="www.magenta.tv" site_id="389265960239" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00901-SkyCrime/stationLogoColored_20220727.png" xmltv_id="">Sky Crime</channel>
<channel site="www.magenta.tv" site_id="389265960241" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/deluxe-music/stationLogoColored_20220727.png" xmltv_id="">DELUXE MUSIC</channel>
<channel site="www.magenta.tv" site_id="389265960242" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/lust-pur/stationLogoColored_20220824.png" xmltv_id="">Lust pur</channel>
<channel site="www.magenta.tv" site_id="389266472146" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00792-TOGGOplus/stationLogoColored_20220727.png" xmltv_id="">TOGGO plus</channel>
<channel site="www.magenta.tv" site_id="389266472147" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00880-VOXup/stationLogoColored_20220727.png" xmltv_id="">VOXup</channel>
<channel site="www.magenta.tv" site_id="389266472148" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/syfy-sky/stationLogoColored_20260121.png" xmltv_id="">Sky Sci-Fi (Sky)</channel>
<channel site="www.magenta.tv" site_id="389266472149" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00917-SkyNature/stationLogoColored_20220727.png" xmltv_id="">Sky Nature</channel>
<channel site="www.magenta.tv" site_id="389266472150" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00986-SkyShowcase/stationLogoColored_20221117.png" xmltv_id="">Sky Showcase</channel>
<channel site="www.magenta.tv" site_id="389266472151" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00758-wettercomTV/stationLogoColored_20220727.png" xmltv_id="">wetter.com TV</channel>
<channel site="www.magenta.tv" site_id="389266472152" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00807-MyTeamTV-Fuball2/stationLogoColored_20220727.png" xmltv_id="">Sport 9 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389266472153" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/histhd-sky/stationLogoColored_20230406.png" xmltv_id="">The HISTORY Channel (Sky)</channel>
<channel site="www.magenta.tv" site_id="389266472154" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/universalhd-sky/stationLogoColored_20220727.png" xmltv_id="">Universal TV (Sky)</channel>
<channel site="www.magenta.tv" site_id="389266472155" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sony-tv/stationLogoColored_20230829.png" xmltv_id="">AXN White</channel>
<channel site="www.magenta.tv" site_id="389266472157" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00812-MyTeamTV-Fuball6/stationLogoColored_20220727.png" xmltv_id="">Sport 13 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389266472159" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00776-SkyCinemaFamily/stationLogoColored_20220727.png" xmltv_id="">Sky Cinema Family</channel>
<channel site="www.magenta.tv" site_id="389266472161" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bbl-sd1/stationLogoColored_20220727.png" xmltv_id="">Sport 15 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389266472162" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00808-MyTeamTV-Fuball3/stationLogoColored_20220727.png" xmltv_id="">Sport 10 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389266472163" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00992-Travelxp/stationLogoColored_20230323.png" xmltv_id="">Travelxp</channel>
<channel site="www.magenta.tv" site_id="389266472164" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sixx/stationLogoColored_20220727.png" xmltv_id="">sixx</channel>
<channel site="www.magenta.tv" site_id="389266472165" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00873-MyTeamTV-Eishockey8/stationLogoColored_20220727.png" xmltv_id="">MS Sport</channel>
<channel site="www.magenta.tv" site_id="389266472166" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/euron-i/stationLogoColored_20230405.png" xmltv_id="">Euronews Italiano</channel>
<channel site="www.magenta.tv" site_id="389266472167" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00763-TelekomEishockey6/stationLogoColored_20220727.png" xmltv_id="">Sport 6 - myTeamTV</channel>
<channel site="www.magenta.tv" site_id="389266472168" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tele5/stationLogoColored_20220727.png" xmltv_id="">TELE 5</channel>
<channel site="www.magenta.tv" site_id="389266472169" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-06/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 4</channel>
<channel site="www.magenta.tv" site_id="389266472171" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/skysport-09/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 7</channel>
<channel site="www.magenta.tv" site_id="389266472172" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00934-FashionTV/stationLogoColored_20220727.png" xmltv_id="">Fashion TV</channel>
<channel site="www.magenta.tv" site_id="389266472173" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/geo/stationLogoColored_20220727.png" xmltv_id="">GEO Television</channel>
<channel site="www.magenta.tv" site_id="389266472174" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/hse-24/stationLogoColored_20220727.png" xmltv_id="">HSE</channel>
<channel site="www.magenta.tv" site_id="389266472175" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/nickcc/stationLogoColored_20220727.png" xmltv_id="">Nick/Comedy Central+1</channel>
<channel site="www.magenta.tv" site_id="389266472176" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/kanal-7/stationLogoColored_20220824.png" xmltv_id="">Kanal 7</channel>
<channel site="www.magenta.tv" site_id="389266472177" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/auto-motor-sport/stationLogoColored_20220727.png" xmltv_id="">auto motor und sport</channel>
<channel site="www.magenta.tv" site_id="389266472178" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/spiegel-wissen/stationLogoColored_20230427.png" xmltv_id="">Curiosity Channel</channel>
<channel site="www.magenta.tv" site_id="389266472179" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/euro-star/stationLogoColored_20220824.png" xmltv_id="">Eurostar TV</channel>
<channel site="www.magenta.tv" site_id="389266472181" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00879-BoomerangSky/stationLogoColored_20230328.png" xmltv_id="">Cartoonito (Sky)</channel>
<channel site="www.magenta.tv" site_id="389266472182" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00918-CrimeInvestigationSky/stationLogoColored_20220824.png" xmltv_id="">Crime+Investigation (Sky)</channel>
<channel site="www.magenta.tv" site_id="389266472183" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00981-SkySport10/stationLogoColored_20221117.png" xmltv_id="">Sky Sport 10</channel>
<channel site="www.magenta.tv" site_id="389266472185" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00888-DABEI/stationLogoColored_20260330.png" xmltv_id="">MOMENTS</channel>
<channel site="www.magenta.tv" site_id="389266472186" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/zdf-info/stationLogoColored_20220727.png" xmltv_id="">ZDFinfo</channel>
<channel site="www.magenta.tv" site_id="415147560391" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-duisburg/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Duisburg</channel>
<channel site="www.magenta.tv" site_id="415147560392" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-bayern/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Bayern</channel>
<channel site="www.magenta.tv" site_id="415147560393" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-bayern/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Bayern</channel>
<channel site="www.magenta.tv" site_id="415148584245" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00967-CNBCInternational/stationLogoColored_20251216.png" xmltv_id="">CNBC International</channel>
<channel site="www.magenta.tv" site_id="415148584246" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rbb-brandenburg/stationLogoColored_20241119.png" xmltv_id="">rbb fernsehen Brandenburg</channel>
<channel site="www.magenta.tv" site_id="415148584247" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tv-polonia/stationLogoColored_20220727.png" xmltv_id="">TVP Polonia</channel>
<channel site="www.magenta.tv" site_id="415148584248" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hb-nds/stationLogoColored_20230315.png" xmltv_id="">RTL Bremen &amp; Niedersachsen</channel>
<channel site="www.magenta.tv" site_id="415148584249" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-siegen/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Siegen</channel>
<channel site="www.magenta.tv" site_id="415148584250" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-rhlpf-hessen/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Rheinland-Pfalz und Hessen</channel>
<channel site="www.magenta.tv" site_id="415148584251" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/ndr-hamburg/stationLogoColored_20241210.png" xmltv_id="">NDR Fernsehen Hamburg</channel>
<channel site="www.magenta.tv" site_id="415148584252" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hh-sh/stationLogoColored_20230315.png" xmltv_id="">RTL Hamburg &amp; Schleswig-Holstein</channel>
<channel site="www.magenta.tv" site_id="415148584253" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hessen/stationLogoColored_20230315.png" xmltv_id="">RTL Hessen</channel>
<channel site="www.magenta.tv" site_id="415148584254" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-hh-sh/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Hamburg und Schleswig-Holstein</channel>
<channel site="www.magenta.tv" site_id="415149608108" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/mdr-thueringen/stationLogoColored_20220727.png" xmltv_id="">MDR-Fernsehen Thüringen</channel>
<channel site="www.magenta.tv" site_id="415149608150" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-nds-bremen/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Niedersachsen und Bremen</channel>
<channel site="www.magenta.tv" site_id="415149608151" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/mdr-s-anhalt/stationLogoColored_20220824.png" xmltv_id="">MDR-Fernsehen Sachsen-Anhalt</channel>
<channel site="www.magenta.tv" site_id="415149608152" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-bonn/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Bonn</channel>
<channel site="www.magenta.tv" site_id="415149608153" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hessen/stationLogoColored_20230315.png" xmltv_id="">RTL Hessen</channel>
<channel site="www.magenta.tv" site_id="415149608154" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/ndr-meckl.-vorpommer/stationLogoColored_20241210.png" xmltv_id="">NDR Fernsehen Mecklenburg-Vorpommern</channel>
<channel site="www.magenta.tv" site_id="415149608155" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/ndr-schleswig-holste/stationLogoColored_20241210.png" xmltv_id="">NDR Fernsehen Schleswig-Holstein</channel>
<channel site="www.magenta.tv" site_id="415149608156" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-nrw/stationLogoColored_20230315.png" xmltv_id="">RTL Nordrhein-Westfalen</channel>
<channel site="www.magenta.tv" site_id="415149608157" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hb-nds/stationLogoColored_20230315.png" xmltv_id="">RTL Bremen &amp; Niedersachsen</channel>
<channel site="www.magenta.tv" site_id="415150120077" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-essen/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Essen</channel>
<channel site="www.magenta.tv" site_id="415150120078" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-nrw/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Nordrhein-Westfalen</channel>
<channel site="www.magenta.tv" site_id="415150120094" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-nrw/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Nordrhein-Westfalen</channel>
<channel site="www.magenta.tv" site_id="415150120095" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-dortmund/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Dortmund</channel>
<channel site="www.magenta.tv" site_id="415150120096" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00968-ERT/stationLogoColored_20221117.png" xmltv_id="">ERT World</channel>
<channel site="www.magenta.tv" site_id="415150120097" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00969-EuronewsEnglish/stationLogoColored_20230405.png" xmltv_id="">Euronews English</channel>
<channel site="www.magenta.tv" site_id="415150120143" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-bielefeld/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Bielefeld</channel>
<channel site="www.magenta.tv" site_id="415150120169" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-nds-bremen/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Niedersachsen und Bremen</channel>
<channel site="www.magenta.tv" site_id="415150632065" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-aachen/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Aachen</channel>
<channel site="www.magenta.tv" site_id="415150632109" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-wuppertal/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Wuppertal</channel>
<channel site="www.magenta.tv" site_id="415150632110" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-hh-sh/stationLogoColored_20230315.png" xmltv_id="">RTL Hamburg &amp; Schleswig-Holstein</channel>
<channel site="www.magenta.tv" site_id="415150632111" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-duesseldorf/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Düsseldorf</channel>
<channel site="www.magenta.tv" site_id="415150632112" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00993-Imearth/stationLogoColored_20230323.png" xmltv_id="">Imearth</channel>
<channel site="www.magenta.tv" site_id="415150632113" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rtl-nrw/stationLogoColored_20230315.png" xmltv_id="">RTL Nordrhein-Westfalen</channel>
<channel site="www.magenta.tv" site_id="415150632114" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-hh-sh/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Hamburg und Schleswig-Holstein</channel>
<channel site="www.magenta.tv" site_id="415151144338" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/sat.1-rhlpf-hessen/stationLogoColored_20220824.png" xmltv_id="">SAT.1 Rheinland-Pfalz und Hessen</channel>
<channel site="www.magenta.tv" site_id="415151144359" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/wdr-muenster/stationLogoColored_20241119.png" xmltv_id="">WDR Fernsehen Münster</channel>
<channel site="www.magenta.tv" site_id="415151144360" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/br-nord/stationLogoColored_20241119.png" xmltv_id="">BR Fernsehen Nord</channel>
<channel site="www.magenta.tv" site_id="463893544181" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00995-France2/stationLogoColored_20230703.png" xmltv_id="">France 2</channel>
<channel site="www.magenta.tv" site_id="463895080134" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00996-France3/stationLogoColored_20230703.png" xmltv_id="">France 3</channel>
<channel site="www.magenta.tv" site_id="481691176161" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00999-RTLBayern/stationLogoColored_20230410.png" xmltv_id="">RTL Bayern</channel>
<channel site="www.magenta.tv" site_id="481691176162" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01000-RTLRhein-Neckar/stationLogoColored_20230410.png" xmltv_id="">RTL Rhein-Neckar</channel>
<channel site="www.magenta.tv" site_id="481694759991" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01000-RTLRhein-Neckar/stationLogoColored_20230410.png" xmltv_id="">RTL Rhein-Neckar</channel>
<channel site="www.magenta.tv" site_id="481694759992" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00999-RTLBayern/stationLogoColored_20230410.png" xmltv_id="">RTL Bayern</channel>
<channel site="www.magenta.tv" site_id="488325160190" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01002-ATVAvrupa/stationLogoColored_20240109.png" xmltv_id="">ATV Avrupa</channel>
<channel site="www.magenta.tv" site_id="488325160191" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01003-TRTCocuk/stationLogoColored_20240109.png" xmltv_id="">TRT Cocuk</channel>
<channel site="www.magenta.tv" site_id="492496936303" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/das-vierte/stationLogoColored_20240318.png" xmltv_id="">Disney Channel</channel>
<channel site="www.magenta.tv" site_id="492496936304" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tv-touring-wuerzburg/stationLogoColored_20250320.png" xmltv_id="">TV Mainfranken</channel>
<channel site="www.magenta.tv" site_id="492496936305" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00914-ProSiebenSat1UHD/stationLogoColored_20220727.png" xmltv_id="">ProSiebenSat.1</channel>
<channel site="www.magenta.tv" site_id="492496936306" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tv-oberfranken/stationLogoColored_20220727.png" xmltv_id="">TV Oberfranken</channel>
<channel site="www.magenta.tv" site_id="492496936307" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00882-emsTV/stationLogoColored_20220727.png" xmltv_id="">ems TV</channel>
<channel site="www.magenta.tv" site_id="492496936308" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00848-TVWestsachsen/stationLogoColored_20220824.png" xmltv_id="">TV Westsachsen</channel>
<channel site="www.magenta.tv" site_id="492496936309" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/hamburg-1/stationLogoColored_20220727.png" xmltv_id="">Hamburg 1</channel>
<channel site="www.magenta.tv" site_id="492496936310" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/a.tv/stationLogoColored_20220727.png" xmltv_id="">a.tv</channel>
<channel site="www.magenta.tv" site_id="492497448192" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/intv/stationLogoColored_20220727.png" xmltv_id="">tv.ingolstadt</channel>
<channel site="www.magenta.tv" site_id="492497448194" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00862-BadenTVSd/stationLogoColored_20220727.png" xmltv_id="">Baden TV Süd</channel>
<channel site="www.magenta.tv" site_id="492497448195" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/donau-tv/stationLogoColored_20220727.png" xmltv_id="">NIEDERBAYERN TV Deggendorf - Straubing</channel>
<channel site="www.magenta.tv" site_id="492497448196" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/rfo/stationLogoColored_20220727.png" xmltv_id="">RFO</channel>
<channel site="www.magenta.tv" site_id="492497448197" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/trp1/stationLogoColored_20220727.png" xmltv_id="">NIEDERBAYERN TV Passau</channel>
<channel site="www.magenta.tv" site_id="492497448198" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tva-ostbayern/stationLogoColored_20220824.png" xmltv_id="">TVA Ostbayern</channel>
<channel site="www.magenta.tv" site_id="492497960281" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00781-TVMittelrhein/stationLogoColored_20220824.png" xmltv_id="">TV Mittelrhein</channel>
<channel site="www.magenta.tv" site_id="492497960282" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00896-RFHRegionalfernsehenHarz/stationLogoColored_20220727.png" xmltv_id="">RFH Regionalfernsehen Harz</channel>
<channel site="www.magenta.tv" site_id="492497960283" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00898-MDF1Fernsehen/stationLogoColored_20220727.png" xmltv_id="">MDF.1 Fernsehen</channel>
<channel site="www.magenta.tv" site_id="492497960284" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00989-JenaTV/stationLogoColored_20221117.png" xmltv_id="">JenaTV</channel>
<channel site="www.magenta.tv" site_id="492497960285" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/tv-allgaeu/stationLogoColored_20220727.png" xmltv_id="">allgäu.tv</channel>
<channel site="www.magenta.tv" site_id="492498472231" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/muenchen.tv/stationLogoColored_20220824.png" xmltv_id="">münchen.tv</channel>
<channel site="www.magenta.tv" site_id="492498472232" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00855-salvetv/stationLogoColored_20220727.png" xmltv_id="">salve.tv</channel>
<channel site="www.magenta.tv" site_id="492498472233" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/oberpfalz-tv/stationLogoColored_20220824.png" xmltv_id="">Oberpfalz TV</channel>
<channel site="www.magenta.tv" site_id="492498472234" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00860-RTLUHD/stationLogoColored_20220727.png" xmltv_id="rtluhd.de">RTL</channel>
<channel site="www.magenta.tv" site_id="492498984397" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00852-OKTVMainz/stationLogoColored_20241002.png" xmltv_id="">OK:TV Mainz</channel>
<channel site="www.magenta.tv" site_id="492498984398" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00842-OK54Trier/stationLogoColored_20220727.png" xmltv_id="">OK54 Trier</channel>
<channel site="www.magenta.tv" site_id="492498984399" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00851-OK4/stationLogoColored_20220727.png" xmltv_id="">OK4</channel>
<channel site="www.magenta.tv" site_id="492498984400" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00897-LAUSITZWELLE/stationLogoColored_20220727.png" xmltv_id="">LAUSITZWELLE</channel>
<channel site="www.magenta.tv" site_id="492498984401" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00747-BadenTV/stationLogoColored_20220727.png" xmltv_id="">Baden TV</channel>
<channel site="www.magenta.tv" site_id="492498984402" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00843-OK-TVLudwigshafen/stationLogoColored_20251013.png" xmltv_id="">rheinlOKal</channel>
<channel site="www.magenta.tv" site_id="492499496075" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/franken-fernsehen/stationLogoColored_20220727.png" xmltv_id="">Franken Fernsehen</channel>
<channel site="www.magenta.tv" site_id="492499496076" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/deluxe-music/stationLogoColored_20220727.png" xmltv_id="">DELUXE MUSIC</channel>
<channel site="www.magenta.tv" site_id="492499496077" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/das-vierte/stationLogoColored_20240318.png" xmltv_id="">Disney Channel</channel>
<channel site="www.magenta.tv" site_id="492499496078" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00919-SRF/stationLogoColored_20220727.png" xmltv_id="">SRF</channel>
<channel site="www.magenta.tv" site_id="492499496079" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00837-RennsteigTV/stationLogoColored_20220727.png" xmltv_id="">Rennsteig.TV</channel>
<channel site="www.magenta.tv" site_id="492499496080" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00863-HGTV/stationLogoColored_20220824.png" xmltv_id="">HGTV</channel>
<channel site="www.magenta.tv" site_id="492499496081" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00874-nrwision/stationLogoColored_20231109.png" xmltv_id="">NRWision</channel>
<channel site="www.magenta.tv" site_id="492499496082" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00839-RegioTV/stationLogoColored_20220727.png" xmltv_id="">Regio TV</channel>
<channel site="www.magenta.tv" site_id="492499496083" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/isar-tv/stationLogoColored_20220727.png" xmltv_id="">NIEDERBAYERN TV Landshut</channel>
<channel site="www.magenta.tv" site_id="492499496084" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00890-FriesischerRundfunk/stationLogoColored_20220727.png" xmltv_id="">Friesischer Rundfunk</channel>
<channel site="www.magenta.tv" site_id="492499496085" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00853-OKWeinstrasse/stationLogoColored_20220727.png" xmltv_id="">OK Weinstraße</channel>
<channel site="www.magenta.tv" site_id="509713959991" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01009-SkyCinemaHighlights/stationLogoColored_20240318.png" xmltv_id="">Sky Cinema Highlights</channel>
<channel site="www.magenta.tv" site_id="516781096166" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01012-France5/stationLogoColored_20240415.png" xmltv_id="">France 5</channel>
<channel site="www.magenta.tv" site_id="516781096167" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/bbc-world/stationLogoColored_20230406.png" xmltv_id="">BBC News</channel>
<channel site="www.magenta.tv" site_id="516782120054" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01010-lausitztv/stationLogoColored_20240418.png" xmltv_id="">lausitz.tv</channel>
<channel site="www.magenta.tv" site_id="516783656172" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00858-altenburgtv/stationLogoColored_20220727.png" xmltv_id="">altenburg.tv</channel>
<channel site="www.magenta.tv" site_id="516784168005" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01011-France4/stationLogoColored_20240415.png" xmltv_id="">France 4</channel>
<channel site="www.magenta.tv" site_id="561114664140" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01014-GlckAufTV/stationLogoColored_20240722.png" xmltv_id="">Glück Auf! TV</channel>
<channel site="www.magenta.tv" site_id="561123367987" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01013-RBW/stationLogoColored_20240722.png" xmltv_id="">RBW</channel>
<channel site="www.magenta.tv" site_id="587597352323" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01017-StimmungsgartenTV/stationLogoColored_20240815.png" xmltv_id="">Stimmungsgarten TV</channel>
<channel site="www.magenta.tv" site_id="587598887992" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01018-RiCtoday/stationLogoColored_20240927.png" xmltv_id="">RiC.today</channel>
<channel site="www.magenta.tv" site_id="587598887993" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01019-FixFoxiTV/stationLogoColored_20240927.png" xmltv_id="">Fix&amp;Foxi TV</channel>
<channel site="www.magenta.tv" site_id="587599400156" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01016-HopeTV/stationLogoColored_20240815.png" xmltv_id="">Hope TV</channel>
<channel site="www.magenta.tv" site_id="597433895959" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00857-Travelxp4K/stationLogoColored_20220727.png" xmltv_id="">Travelxp 4K</channel>
<channel site="www.magenta.tv" site_id="610214440158" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01020-teltOwkanal/stationLogoColored_20241203.png" xmltv_id="">teltOwkanal</channel>
<channel site="www.magenta.tv" site_id="636955688283" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01015-HTSPOR/stationLogoColored_20241203.png" xmltv_id="">HT SPOR</channel>
<channel site="www.magenta.tv" site_id="658197032097" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01023-BLKTV/stationLogoColored_20250211.png" xmltv_id="">BLK TV</channel>
<channel site="www.magenta.tv" site_id="658197544149" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01022-LiloTV/stationLogoColored_20250211.png" xmltv_id="">Lilo.TV</channel>
<channel site="www.magenta.tv" site_id="662243367962" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01025-Juwelo/stationLogoColored_20250402.png" xmltv_id="">Juwelo</channel>
<channel site="www.magenta.tv" site_id="662243880190" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01021-RAN1/stationLogoColored_20241203.png" xmltv_id="">RAN1</channel>
<channel site="www.magenta.tv" site_id="669655079976" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01024-QVCZWEI/stationLogoColored_20250417.png" xmltv_id="">QVC ZWEI</channel>
<channel site="www.magenta.tv" site_id="695561768145" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00840-RomanceTVSky/stationLogoColored_20220727.png" xmltv_id="">Romance TV (Sky)</channel>
<channel site="www.magenta.tv" site_id="695561768146" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01035-NationalGeographicSky/stationLogoColored_20220727.png" xmltv_id="">National Geographic (Sky)</channel>
<channel site="www.magenta.tv" site_id="695563816191" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/jukebox-sky/stationLogoColored_20220727.png" xmltv_id="">Jukebox (Sky)</channel>
<channel site="www.magenta.tv" site_id="695564328412" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/beateu-sky/stationLogoColored_20220727.png" xmltv_id="">Beate-Uhse.TV (Sky)</channel>
<channel site="www.magenta.tv" site_id="695564328413" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/heimat-sky/stationLogoColored_20220824.png" xmltv_id="">Heimatkanal (Sky)</channel>
<channel site="www.magenta.tv" site_id="698208807980" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01029-kulturmd/stationLogoColored_20250611.png" xmltv_id="">kulturmd</channel>
<channel site="www.magenta.tv" site_id="701488168394" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01036-NationalGeographicWildSky/stationLogoColored_20250728.png" xmltv_id="">National Geographic Wild (Sky)</channel>
<channel site="www.magenta.tv" site_id="704010792353" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01030-GstrowTV/stationLogoColored_20250630.png" xmltv_id="">GüstrowTV</channel>
<channel site="www.magenta.tv" site_id="736340520422" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01041-WorldofFreesports/stationLogoColored_20251113.png" xmltv_id="">World of Freesports</channel>
<channel site="www.magenta.tv" site_id="736340520423" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01044-Filmgold/stationLogoColored_20251113.png" xmltv_id="">Filmgold</channel>
<channel site="www.magenta.tv" site_id="736344616035" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01042-KultKrimi/stationLogoColored_20251113.png" xmltv_id="">KultKrimi</channel>
<channel site="www.magenta.tv" site_id="736345639978" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01043-TelenovelaZDF/stationLogoColored_20251113.png" xmltv_id="">Telenovela ZDF</channel>
<channel site="www.magenta.tv" site_id="738497064302" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01040-LandlustTV/stationLogoColored_20251113.png" xmltv_id="">Landlust TV</channel>
<channel site="www.magenta.tv" site_id="738500136328" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01039-Scooore/stationLogoColored_20251113.png" xmltv_id="">Scooore</channel>
<channel site="www.magenta.tv" site_id="745871912203" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01038-SYLT1/stationLogoColored_20251013.png" xmltv_id="">SYLT1</channel>
<channel site="www.magenta.tv" site_id="746148392381" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01051-MSGOLF1/stationLogoColored_20260105.png" xmltv_id="">MS GOLF 1</channel>
<channel site="www.magenta.tv" site_id="746150440202" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01052-MSGOLF2/stationLogoColored_20260113.png" xmltv_id="">MS GOLF 2</channel>
<channel site="www.magenta.tv" site_id="750315048280" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/baby-tv/stationLogoColored_20220727.png" xmltv_id="">Baby TV</channel>
<channel site="www.magenta.tv" site_id="754135080287" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01057-SPIEGELTV/stationLogoColored_20260121.png" xmltv_id="">Spiegel TV</channel>
<channel site="www.magenta.tv" site_id="754135080288" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01058-Grjngo/stationLogoColored_20260121.png" xmltv_id="">Grjngo</channel>
<channel site="www.magenta.tv" site_id="754136616350" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01055-NARUTO/stationLogoColored_20260121.png" xmltv_id="">NARUTO</channel>
<channel site="www.magenta.tv" site_id="754137640065" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01053-TOPSCI-FI/stationLogoColored_20260121.png" xmltv_id="">TOP SCI-FI</channel>
<channel site="www.magenta.tv" site_id="754137640066" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01054-TOPTRUECRIME/stationLogoColored_20260121.png" xmltv_id="">TOP TRUE CRIME</channel>
<channel site="www.magenta.tv" site_id="754138152287" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01059-Royalworld/stationLogoColored_20260121.png" xmltv_id="">Royalworld</channel>
<channel site="www.magenta.tv" site_id="754138663958" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01060-TerraMaterWILD/stationLogoColored_20260121.png" xmltv_id="">Terra Mater WILD</channel>
<channel site="www.magenta.tv" site_id="764249128121" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01062-Moviedome/stationLogoColored_20260126.png" xmltv_id="">Moviedome</channel>
<channel site="www.magenta.tv" site_id="764249640071" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01061-Fabella/stationLogoColored_20260126.png" xmltv_id="">Fabella</channel>
<channel site="www.magenta.tv" site_id="764523048346" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01048-ShoppingQueen/stationLogoColored_20251216.png" xmltv_id="">Shopping Queen</channel>
<channel site="www.magenta.tv" site_id="764523560413" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01050-hundkatzemaus/stationLogoColored_20251216.png" xmltv_id="">hundkatzemaus</channel>
<channel site="www.magenta.tv" site_id="764524584021" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01049-BauersuchtFrau/stationLogoColored_20251216.png" xmltv_id="">Bauer sucht Frau</channel>
<channel site="www.magenta.tv" site_id="764525608043" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID01047-AlarmCobra11Balko/stationLogoColored_20251216.png" xmltv_id="">Alarm für Cobra 11 / Balko</channel>
<channel site="www.magenta.tv" site_id="767935016341" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00783-tvberlin/stationLogoColored_20220727.png" xmltv_id="">tv.berlin</channel>
<channel site="www.magenta.tv" site_id="767936040120" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00785-ALEXBerlin/stationLogoColored_20220727.png" xmltv_id="">ALEX Berlin</channel>
<channel site="www.magenta.tv" site_id="767936552360" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00742-L-TV/stationLogoColored_20260420.png" xmltv_id="">L-TV</channel>
<channel site="www.magenta.tv" site_id="767936552361" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00847-LeipzigFernsehen/stationLogoColored_20220727.png" xmltv_id="">Leipzig Fernsehen</channel>
<channel site="www.magenta.tv" site_id="767936552362" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00849-Studio47/stationLogoColored_20251027.png" xmltv_id="">Studio 47</channel>
<channel site="www.magenta.tv" site_id="767937064033" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00846-DresdenFernsehen/stationLogoColored_20220727.png" xmltv_id="">Dresden Fernsehen</channel>
<channel site="www.magenta.tv" site_id="767937576117" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00845-ChemnitzFernsehen/stationLogoColored_20220727.png" xmltv_id="">Chemnitz Fernsehen</channel>
<channel site="www.magenta.tv" site_id="769865767977" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00814-SkySportBundesligaUHD/stationLogoColored_20220727.png" xmltv_id="">Sky Sport Bundesliga</channel>
<channel site="www.magenta.tv" site_id="769867816329" lang="de" logo="https://ftp-imagehost-prod-public.s3.eu-central-1.amazonaws.com/logos/KID00815-SkySportUHD/stationLogoColored_20220727.png" xmltv_id="">Sky Sport</channel>
</channels>

View File

@@ -0,0 +1,366 @@
const axios = require('axios')
const crypto = require('crypto')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
const MANIFEST_URL = 'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest'
const DEVICE_MODEL = 'WEB2_FTV'
const PORTAL = 'release'
const SUBSCRIBER_TYPE = 'FTV_FREEMIUM_DT'
const CHANNEL_PAGE_SIZE = 100
const CHANNEL_PAGE_LIMIT = 1000
const FALLBACK_MPX = Object.freeze({
accountPid: 'mdeprod',
locationIdUri: 'http://data.entertainment.tv.theplatform.eu/entertainment/data/Location/245991976396',
feeds: {
allChannelSchedulesFeed:
'https://feed.entertainment.tv.theplatform.eu/f/{MpxAccountPid}/{MpxAccountPid}-all-channel-schedules',
allChannelStationsFeed:
'https://feed.entertainment.tv.theplatform.eu/f/{MpxAccountPid}/{MpxAccountPid}-channel-stations-main'
}
})
let session
let manifestPromise
module.exports = {
site: 'www.magenta.tv',
days: 2,
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
async url({ channel, date }) {
const mpx = await getMpxConfig()
const currentSession = getSession()
const window = getUtcWindow(date)
return buildScheduleUrl({
mpx,
session: currentSession,
siteIds: [channel.site_id],
window
})
},
async parser({ content, channel }) {
return parseScheduleResponse(content, channel)
},
async channels() {
const mpx = await getMpxConfig()
const currentSession = getSession()
const channels = []
for (let start = 1; start <= CHANNEL_PAGE_LIMIT; start += CHANNEL_PAGE_SIZE) {
const entries = await getChannelEntries({
mpx,
session: currentSession,
start,
end: start + CHANNEL_PAGE_SIZE - 1
})
if (!entries.length) break
entries.forEach(entry => {
const channel = parseChannel(entry)
if (channel) channels.push(channel)
})
if (entries.length < CHANNEL_PAGE_SIZE) break
}
return channels
}
}
function createSession() {
return {
deviceId: crypto.randomUUID(),
sessionId: crypto.randomUUID()
}
}
function getSession() {
if (!session) {
session = createSession()
}
return session
}
function buildCid(currentSession) {
return `${currentSession.sessionId}::${crypto.randomUUID()}`
}
function getManifestRequestConfig(currentSession) {
return {
headers: {
'X-DT-Call-ID': crypto.randomUUID(),
'X-DT-Session-ID': currentSession.sessionId
},
params: {
deviceId: currentSession.deviceId,
deviceModel: DEVICE_MODEL,
portal: PORTAL,
subscriberType: SUBSCRIBER_TYPE,
$redirect: false,
sid: currentSession.sessionId
}
}
}
async function getManifest() {
if (!manifestPromise) {
manifestPromise = axios
.get(MANIFEST_URL, getManifestRequestConfig(getSession()))
.then(r => r.data)
.catch(() => null)
}
return manifestPromise
}
async function getMpxConfig() {
const manifest = await getManifest()
const manifestMpx = manifest && manifest.mpx ? manifest.mpx : {}
return {
...FALLBACK_MPX,
...manifestMpx,
feeds: {
...FALLBACK_MPX.feeds,
...(manifestMpx.feeds || {})
}
}
}
async function getChannelEntries({ mpx, session, start, end }) {
const url = buildChannelFeedUrl({ mpx, session, start, end })
const data = await axios
.get(url)
.then(r => r.data)
.catch(() => null)
return Array.isArray(data && data.entries) ? data.entries : []
}
function buildChannelFeedUrl({ mpx, session, start, end }) {
const url = new URL(resolveFeedTemplate(mpx.feeds.allChannelStationsFeed, mpx.accountPid))
url.searchParams.set('lang', 'short-de')
url.searchParams.set('sort', 'dt$displayChannelNumber')
url.searchParams.set('range', `${start}-${end}`)
url.searchParams.set('cid', buildCid(session))
return url.toString()
}
function buildScheduleUrl({ mpx, session, siteIds, window }) {
const url = new URL(resolveFeedTemplate(mpx.feeds.allChannelSchedulesFeed, mpx.accountPid))
url.searchParams.set('byId', siteIds.join('|'))
url.searchParams.set('byListingTime', window)
url.searchParams.set('byLocationId', mpx.locationIdUri)
url.searchParams.set('cid', buildCid(session))
return url.toString()
}
function resolveFeedTemplate(template, accountPid) {
return template.replaceAll('{MpxAccountPid}', accountPid)
}
function getUtcWindow(date) {
const start = date.utc().startOf('day')
const end = start.add(1, 'day')
return `${start.toISOString()}~${end.toISOString()}`
}
function parseScheduleResponse(content, channel) {
const data = parseJson(content)
const entries = Array.isArray(data && data.entries) ? data.entries : []
const targetSiteId = channel && channel.site_id ? String(channel.site_id) : null
const programs = []
entries.forEach(entry => {
if (targetSiteId && extractNumericId(entry.id) !== targetSiteId) return
if (!Array.isArray(entry.listings)) return
entry.listings.forEach(listing => {
const program = parseProgramme(entry, listing)
if (program) programs.push(program)
})
})
return programs
}
function parseChannel(entry) {
if (!entry || entry['dt$isRadio']) return null
const station = getFirstStation(entry)
const siteId = extractNumericId(entry.id)
const name = station && station.title ? station.title : entry.title
if (!station || !siteId || !name) return null
return {
lang: 'de',
site_id: siteId,
name,
logo: parseStationLogo(station)
}
}
function parseProgramme(entry, listing) {
if (
!listing ||
!listing.program ||
listing.startTime === null ||
listing.startTime === undefined ||
listing.endTime === null ||
listing.endTime === undefined
) {
return null
}
const program = listing.program
const programInfo = parseProgramInfo(listing['dt$programInfo'])
const title = program.title
if (!title) return null
const parsed = {
title,
description: program.description || null,
category: parseCategories(program.tags),
sub_title: parseSubTitle(program, listing),
rating: parseRating(program.ratings),
season: normalizeNumber(program.tvSeasonNumber ?? programInfo.tvSeasonNumber),
episode: normalizeNumber(
program.tvSeasonEpisodeNumber ??
programInfo.tvSeasonEpisodeNumber ??
programInfo.seriesEpisodeNumber
),
image: parseProgramImage(program),
icon: parseProgramImage(program),
start: dayjs(Number(listing.startTime)),
stop: dayjs(Number(listing.endTime)),
country: parseCountry(program['dt$countries']),
date: program.year ? String(program.year) : null
}
if (parsed.image === null) delete parsed.image
if (parsed.icon === null) delete parsed.icon
if (parsed.category === null) delete parsed.category
if (parsed.sub_title === null) delete parsed.sub_title
if (parsed.rating === null) delete parsed.rating
if (parsed.season === null) delete parsed.season
if (parsed.episode === null) delete parsed.episode
if (parsed.country === null) delete parsed.country
if (parsed.date === null) delete parsed.date
return parsed
}
function parseSubTitle(program, listing) {
if (program.secondaryTitle && program.secondaryTitle !== program.title) {
return program.secondaryTitle
}
if (listing['dt$seriesTitle'] && listing['dt$seriesTitle'] !== program.title) {
return listing['dt$seriesTitle']
}
return null
}
function parseCategories(tags) {
if (!Array.isArray(tags)) return null
const categories = tags
.filter(tag => ['category', 'genre-primary', 'genre-secondary'].includes(tag.scheme) && tag.title)
.map(tag => tag.title)
return categories.length ? [...new Set(categories)] : null
}
function parseRating(ratings) {
if (!Array.isArray(ratings)) return null
const rating = ratings.find(item => item && item.rating && item.rating !== 'UNKNOWN')
if (!rating) return null
return {
system: rating.scheme || 'magenta',
value: rating.rating
}
}
function parseProgramInfo(value) {
if (!value || typeof value !== 'string') return {}
try {
return JSON.parse(value.replaceAll("'", '"'))
} catch {
return {}
}
}
function parseProgramImage(program) {
if (!program || !program.thumbnails) return null
const thumbnails = Object.values(program.thumbnails)
.filter(thumbnail => thumbnail && thumbnail.url)
.sort((a, b) => (b.width || 0) * (b.height || 0) - (a.width || 0) * (a.height || 0))
return thumbnails[0] ? thumbnails[0].url : null
}
function parseStationLogo(station) {
if (!station || !station.thumbnails) return null
return (
station.thumbnails.stationLogoColored?.url ||
station.thumbnails.stationLogo?.url ||
station.thumbnails.stationBackground?.url ||
null
)
}
function parseCountry(value) {
if (!value || typeof value !== 'string') return null
return value.toUpperCase()
}
function getFirstStation(entry) {
if (!entry || !entry.stations || typeof entry.stations !== 'object') return null
return Object.values(entry.stations)[0] || null
}
function extractNumericId(uri) {
if (!uri || typeof uri !== 'string') return null
const match = uri.match(/(\d+)(?!.*\d)/)
return match ? match[1] : null
}
function normalizeNumber(value) {
return value === null || value === undefined || value === '' ? null : value
}
function parseJson(content) {
if (!content) return {}
if (typeof content !== 'string') return content
try {
return JSON.parse(content)
} catch {
return {}
}
}

View File

@@ -0,0 +1,263 @@
const fs = require('fs')
const path = require('path')
const crypto = require('crypto')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
jest.mock('axios')
const fixture = JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/content.json'), 'utf8'))
const date = dayjs.utc('2026-05-11', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '262270504164',
xmltv_id: 'Sat1.de'
}
beforeEach(() => {
jest.resetModules()
jest.restoreAllMocks()
})
function loadConfig() {
const axios = require('axios')
const config = require('./www.magenta.tv.config.js')
return {
axios,
...config
}
}
it('can generate valid url', async () => {
const { axios, url } = loadConfig()
jest
.spyOn(crypto, 'randomUUID')
.mockReturnValueOnce('device-id')
.mockReturnValueOnce('session-id')
.mockReturnValueOnce('manifest-call-id')
.mockReturnValueOnce('schedule-call-id')
axios.get.mockImplementation(url => {
if (url === 'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest') {
return Promise.resolve({ data: fixture.manifest })
}
return Promise.reject(new Error('unexpected request'))
})
const result = await url({ channel, date })
expect(result).toBe(
'https://feed.entertainment.tv.theplatform.eu/f/mdeprod/mdeprod-all-channel-schedules?byId=262270504164&byListingTime=2026-05-11T00%3A00%3A00.000Z%7E2026-05-12T00%3A00%3A00.000Z&byLocationId=http%3A%2F%2Fdata.entertainment.tv.theplatform.eu%2Fentertainment%2Fdata%2FLocation%2F245991976396&cid=session-id%3A%3Aschedule-call-id'
)
expect(axios.get).toHaveBeenCalledWith(
'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest',
expect.objectContaining({
headers: {
'X-DT-Call-ID': 'manifest-call-id',
'X-DT-Session-ID': 'session-id'
},
params: expect.objectContaining({
deviceId: 'device-id',
sid: 'session-id',
deviceModel: 'WEB2_FTV',
portal: 'release',
subscriberType: 'FTV_FREEMIUM_DT',
$redirect: false
})
})
)
})
it('can map a channel feed entry', () => {
const { axios, channels } = loadConfig()
axios.get.mockImplementation((url) => {
if (url === 'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest') {
return Promise.resolve({ data: fixture.manifest })
}
if (new URL(url).searchParams.get('range') === '1-100') {
return Promise.resolve({ data: fixture.channels })
}
return Promise.resolve({ data: { entries: [] } })
})
return channels().then(result => {
expect(result[0]).toMatchObject({
lang: 'de',
site_id: '259549736360',
name: 'Das Erste',
logo: 'https://example.com/das-erste-colored.png'
})
})
})
it('can ignore radio channels', async () => {
const { axios, channels } = loadConfig()
axios.get.mockImplementation((url) => {
if (url === 'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest') {
return Promise.resolve({ data: fixture.manifest })
}
if (new URL(url).searchParams.get('range') === '1-100') {
return Promise.resolve({ data: fixture.channels })
}
return Promise.resolve({ data: { entries: [] } })
})
const result = await channels()
expect(result).toHaveLength(1)
expect(result[0].name).toBe('Das Erste')
})
it('can paginate channels', async () => {
const { axios, channels } = loadConfig()
jest
.spyOn(crypto, 'randomUUID')
.mockReturnValueOnce('device-id')
.mockReturnValueOnce('session-id')
.mockReturnValueOnce('manifest-call-id')
.mockImplementation(() => 'call-id')
const page1 = {
entries: Array.from({ length: 100 }, (_, index) => ({
id: `http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/${1000 + index}`,
title: `Channel ${index + 1}`,
stations: {
[`station-${index}`]: {
title: `Channel ${index + 1}`,
thumbnails: {
stationLogo: {
url: `https://example.com/${index + 1}.png`
}
}
}
},
'dt$isRadio': false
}))
}
const page2 = {
entries: [
{
id: 'http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/2001',
title: 'Channel 101',
stations: {
'station-101': {
title: 'Channel 101',
thumbnails: {
stationLogo: {
url: 'https://example.com/101.png'
}
}
}
},
'dt$isRadio': false
}
]
}
axios.get.mockImplementation((url, options) => {
if (url === 'https://prod.dcm.telekom-dienste.de/v1/settings/web-mtv/manifest') {
return Promise.resolve({ data: fixture.manifest })
}
const range = new URL(url).searchParams.get('range')
if (range === '1-100') return Promise.resolve({ data: page1 })
if (range === '101-200') return Promise.resolve({ data: page2 })
return Promise.reject(new Error(`unexpected request ${url} ${JSON.stringify(options)}`))
})
const result = await channels()
expect(result).toHaveLength(101)
expect(result[0]).toMatchObject({
site_id: '1000',
name: 'Channel 1'
})
expect(result[100]).toMatchObject({
site_id: '2001',
name: 'Channel 101'
})
})
it('can parse response', async () => {
const { parser } = loadConfig()
const result = await parser({ content: JSON.stringify(fixture.schedule), channel })
const serialized = result.map(program => ({
...program,
start: program.start.toJSON(),
stop: program.stop.toJSON()
}))
expect(serialized).toMatchObject([
{
start: '2026-05-11T00:10:00.000Z',
stop: '2026-05-11T01:07:00.000Z',
title: 'FBI: Special Crime Unit',
sub_title: 'Aufstand',
description:
'Eine gigantische Explosion in Brooklyn ruft das FBI auf den Plan. Hinweise deuten auf eine vorsätzliche Fremdeinwirkung hin.',
category: ['200-Serie', 'Krimi', 'Action', 'Thriller'],
season: 8,
episode: 7,
country: 'US',
date: '2025'
}
])
})
it('can handle empty guide', async () => {
const { parser } = loadConfig()
const result = await parser({
channel,
content: '{"entries":[{"id":"http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/262270504164","listings":[]}]}'
})
expect(result).toMatchObject([])
})
it('can handle listings without program', async () => {
const { parser } = loadConfig()
const result = await parser({
channel,
content:
'{"entries":[{"id":"http://data.entertainment.tv.theplatform.eu/entertainment/data/ChannelSchedule/262270504164","listings":[{"startTime":1,"endTime":2}]}]}'
})
expect(result).toMatchObject([])
})
it('can build a UTC schedule window', async () => {
const { axios, url } = loadConfig()
jest
.spyOn(crypto, 'randomUUID')
.mockReturnValueOnce('device-id')
.mockReturnValueOnce('session-id')
.mockReturnValueOnce('manifest-call-id')
.mockReturnValueOnce('schedule-call-id')
axios.get.mockResolvedValue({ data: fixture.manifest })
const result = await url({
channel,
date
})
expect(new URL(result).searchParams.get('byListingTime')).toBe(
'2026-05-11T00:00:00.000Z~2026-05-12T00:00:00.000Z'
)
})