Merge pull request #598 from RevGear/master

Add guide for magentatv.at
This commit is contained in:
Aleksandr Statciuk 2022-03-10 14:05:02 +03:00 committed by GitHub
commit 5c6ed83e28
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 364 additions and 0 deletions

17
.github/workflows/magentatv.at.yml vendored Normal file
View file

@ -0,0 +1,17 @@
name: magentatv.at
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
workflow_run:
workflows: [_trigger]
types:
- completed
jobs:
load:
uses: ./.github/workflows/_load.yml
with:
site: ${{github.workflow}}
secrets:
APP_ID: ${{ secrets.APP_ID }}
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}

View file

@ -0,0 +1,70 @@
const axios = require('axios')
const dayjs = require('dayjs')
const API_ENDPOINT = `https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules`
module.exports = {
site: 'magentatv.at',
url: function ({ date }) {
return `${API_ENDPOINT}/${date.format('YYYYMMDD')}/1`
},
async parser({ content, channel, date }) {
let programs = []
let items = parseItems(content, channel)
if (!items.length) return programs
const d = date.format('YYYYMMDD')
const promises = [
axios.get(`${API_ENDPOINT}/${d}/2`),
axios.get(`${API_ENDPOINT}/${d}/3`),
axios.get(`${API_ENDPOINT}/${d}/4`)
]
await Promise.allSettled(promises)
.then(results => {
results.forEach(r => {
if (r.status === 'fulfilled') {
items = items.concat(parseItems(r.value.data, channel))
}
})
})
.catch(console.error)
items.forEach(item => {
programs.push({
title: item.t,
start: parseStart(item),
stop: parseStop(item)
})
})
return programs
},
async channels() {
const data = await axios
.get(`https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/channels`)
.then(r => r.data)
.catch(console.log)
return data.channels.map(item => {
return {
lang: 'de',
site_id: item.id.replace('lgi-at-prodobo-master:101-', ''),
name: item.title
}
})
}
}
function parseStart(item) {
return dayjs(item.s)
}
function parseStop(item) {
return dayjs(item.e)
}
function parseItems(content, channel) {
const data = typeof content === 'string' ? JSON.parse(content) : content
if (!data || !Array.isArray(data.entries)) return []
const entity = data.entries.find(e => e.o === `lgi-at-prodobo-master:${channel.site_id}`)
return entity ? entity.l : []
}

View file

@ -0,0 +1,103 @@
// npm run channels:parse -- --config=./sites/magentatv.at/magentatv.at.config.js --output=./sites/magentatv.at/magentatv.at_at.channels.xml
// npx epg-grabber --config=sites/magentatv.at/magentatv.at.config.js --channels=sites/magentatv.at/magentatv.at_at.channels.xml --output=guide.xml --days=2
const { parser, url } = require('./magentatv.at.config.js')
const axios = require('axios')
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 date = dayjs.utc('2022-03-09', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '13TH_Street_HD',
xmltv_id: '13thStreetDeutschland.us'
}
it('can generate valid url', () => {
expect(url({ date })).toBe(
'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/1'
)
})
it('can parse response', done => {
const content = `{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fbds.tv~~2F1870513,imi:c83a0bf1b04d6610d0517e63647772c1c8725693","t":"Law & Order: Special Victims Unit","s":1646778600000,"e":1646781300000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
axios.get.mockImplementation(url => {
if (url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/2') {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fmedia-press.tv~~2F217048123,imi:ee14cfe306cb50502b03c96d58851c32345a9391","t":"FBI: Special Crime Unit","s":1646781300000,"e":1646784000000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
})
} else if (
url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/3'
) {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fmedia-press.tv~~2F224431085,imi:805c5a9b6610edb65cdff319a9b080ab5f65a6c8","t":"FBI: Special Crime Unit","s":1646784000000,"e":1646786700000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
})
} else if (
url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/4'
) {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fbds.tv~~2F918961,imi:f27353bf910e8849d60e0381fdb2d1f7518ef7a2","t":"Law & Order","s":1646786700000,"e":1646789400000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
})
} else {
return Promise.resolve({ data: '' })
}
})
parser({ content, channel, date })
.then(result => {
result = result.map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
start: '2022-03-08T22:30:00.000Z',
stop: '2022-03-08T23:15:00.000Z',
title: 'Law & Order: Special Victims Unit'
},
{
start: '2022-03-08T23:15:00.000Z',
stop: '2022-03-09T00:00:00.000Z',
title: 'FBI: Special Crime Unit'
},
{
start: '2022-03-09T00:00:00.000Z',
stop: '2022-03-09T00:45:00.000Z',
title: 'FBI: Special Crime Unit'
},
{
start: '2022-03-09T00:45:00.000Z',
stop: '2022-03-09T01:30:00.000Z',
title: 'Law & Order'
}
])
done()
})
.catch(done)
})
it('can handle empty guide', done => {
parser({
content: `[{"type":"PATH_PARAM","code":"period","reason":"INVALID"}]`,
channel,
date
})
.then(result => {
expect(result).toMatchObject([])
done()
})
.catch(done)
})

View file

@ -0,0 +1,174 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="magentatv.at">
<channels>
<channel lang="de" xmltv_id="123TV.de" site_id="123_tv">1-2-3.tv</channel>
<channel lang="de" xmltv_id="13thStreetDeutschland.us" site_id="13TH_STREET_HD">13th Street HD</channel>
<channel lang="de" xmltv_id="3sat.de" site_id="3sat_HD">3sat</channel>
<channel lang="de" xmltv_id="Alarabiya.ae" site_id="Al_Jazeera">Al Jazeera</channel>
<channel lang="de" xmltv_id="ARDAlpha.de" site_id="ARD_alpha_HD">ARD-alpha</channel>
<channel lang="de" xmltv_id="ARTEDeutsch.fr" site_id="arte_HD">ARTE Deutsch</channel>
<channel lang="de" xmltv_id="ATV.at" site_id="ATV_HD">ATV</channel>
<channel lang="de" xmltv_id="ATV2.at" site_id="ATV_II_HD">ATV 2</channel>
<channel lang="de" xmltv_id="BabyTVEurope.uk" site_id="Baby_TV">Baby TV</channel>
<channel lang="de" xmltv_id="BibelTV.de" site_id="Bibel_TV_HD">Bibel TV</channel>
<channel lang="de" xmltv_id="BloombergTVEurope.us" site_id="Bloomberg_Europe">Bloomberg</channel>
<channel lang="de" xmltv_id="BlueHustlerEurope.us" site_id="Blue_Hustler">Blue Hustler Europe</channel>
<channel lang="de" xmltv_id="BoomerangDeutschland.us" site_id="Disney_XD">Boomerang</channel>
<channel lang="de" xmltv_id="CartoonNetworkDeutschland.us" site_id="Cartoon_Network_HD">Cartoon Network</channel>
<channel lang="de" xmltv_id="CGTN.cn" site_id="CCTV_News">CGTN</channel>
<channel lang="de" xmltv_id="CNBCEurope.us" site_id="CNBC">CNBC</channel>
<channel lang="de" xmltv_id="CNNInternationalEurope.us" site_id="CNN">CNN</channel>
<channel lang="de" xmltv_id="ComedyCentralDeutschland.us" site_id="Comedy_Central_VIVA_HD">COMEDY CENTRAL</channel>
<channel lang="de" xmltv_id="CrimePlusInvestigationDeutschland.us" site_id="A_E_HD">Crime + Investigation</channel>
<channel lang="de" xmltv_id="DasErste.de" site_id="Das_Erste_HD">Das Erste</channel>
<channel lang="de" xmltv_id="DeluxeMusic.de" site_id="Deluxe_Music_HD">DELUXE MUSIC</channel>
<channel lang="de" xmltv_id="DisneyChannelDeutschland.us" site_id="Disney_Channel">Disney Channel Deutschland</channel>
<channel lang="de" xmltv_id="DMAXAustria.us" site_id="DMAX_HD">DMAX Austria</channel>
<channel lang="de" xmltv_id="ESports1.de" site_id="Sport_1_US_HD">eSPORTS1 HD</channel>
<channel lang="de" xmltv_id="EuronewsDeutsch.fr" site_id="Euronews">euronews (D)</channel>
<channel lang="de" xmltv_id="Eurosport1Germany.fr" site_id="Eurosport_1_HD">Eurosport 1 Germany</channel>
<channel lang="de" xmltv_id="EvilAngelTV.us" site_id="Evil_Angel_HD">Evil Angel TV</channel>
<channel lang="de" xmltv_id="FashionTVEurope.fr" site_id="Fashion_TV_HD">Fashion TV</channel>
<channel lang="de" xmltv_id="FixFoxi.de" site_id="fix___foxi">Fix&amp;Foxi</channel>
<channel lang="de" xmltv_id="France24Francais.fr" site_id="France_24">France 24 (en francais)</channel>
<channel lang="de" xmltv_id="GeoTV.de" site_id="GEO_Television_HD">GEO TV HD</channel>
<channel lang="de" xmltv_id="Haberturk.tr" site_id="Habertuerk_TV">Habertürk</channel>
<channel lang="de" xmltv_id="Hayat.ba" site_id="Hayat">Hayat TV</channel>
<channel lang="de" xmltv_id="Heimatkanal.de" site_id="Heimatkanal">Heimatkanal</channel>
<channel lang="de" xmltv_id="HGTVDeutschland.us" site_id="HGTV">HOME &amp; GARDEN TV HD</channel>
<channel lang="de" xmltv_id="HRFernsehen.de" site_id="hessen_fernsehen_HD">HR Fernsehen</channel>
<channel lang="de" xmltv_id="HRT1.hr" site_id="HRT_TV_1">HRT TV 1</channel>
<channel lang="de" xmltv_id="HSE.de" site_id="HSE24_HD">HSE</channel>
<channel lang="de" xmltv_id="HSEExtra.de" site_id="HSE24_Extra_HD">HSE Extra</channel>
<channel lang="de" xmltv_id="HSETrend.de" site_id="HSE24_Trend">HSE Trend</channel>
<channel lang="de" xmltv_id="HustlerTVEurope.us" site_id="Hustler_TV">Hustler TV Europe</channel>
<channel lang="de" xmltv_id="KabelEinsAustria.de" site_id="kabel_eins_HD">Kabel Eins Austria</channel>
<channel lang="de" xmltv_id="KabelEinsDokuAustria.de" site_id="kabel_eins_classics_HD">Kabel Eins Classics</channel>
<channel lang="de" xmltv_id="KabelEinsDokuDeutschland.de" site_id="kabel_eins_Doku_HD">Kabel Eins Doku Austria</channel>
<channel lang="de" xmltv_id="KIKA.de" site_id="KI_KA_HD">KIKA</channel>
<channel lang="de" xmltv_id="KinoweltTV.de" site_id="Kinowelt_TV_HD">Kinowelt TV HD</channel>
<channel lang="de" xmltv_id="MotorvisionTV.de" site_id="Motorvision_HD">Motorvision</channel>
<channel lang="de" xmltv_id="MTVGermany.us" site_id="MTV_HD">MTV</channel>
<channel lang="de" xmltv_id="N24Doku.de" site_id="N24_Austria">N24 Doku</channel>
<channel lang="de" xmltv_id="NationalGeographicDeutschland.us" site_id="Nat_Geo_HD">NatGeo HD</channel>
<channel lang="de" xmltv_id="NationalGeographicWildDeutschland.us" site_id="Nat_Geo_People_HD">National Geographic Wild HD</channel>
<channel lang="de" xmltv_id="NickelodeonDeutschland.us" site_id="Nickelodeon_HD">Nick HD</channel>
<channel lang="de" xmltv_id="NickJrEurope.us" site_id="Nick_Junior">Nick.Jr.</channel>
<channel lang="de" xmltv_id="NitroAustria.de" site_id="RTL_Nitro_HD">Nitro Austria</channel>
<channel lang="de" xmltv_id="NTVAustria.de" site_id="n_tv_HD">N-TV Austria</channel>
<channel lang="de" xmltv_id="Oe24TV.at" site_id="oe24_TV_HD">Oe24 TV</channel>
<channel lang="de" xmltv_id="One.de" site_id="EinsFestival_HD">One</channel>
<channel lang="de" xmltv_id="ORF1.at" site_id="ORF_eins_HD">ORF 1</channel>
<channel lang="de" xmltv_id="ORF2Burgenland.at" site_id="ORF2_Burgenland_HD">ORF 2 Burgenland</channel>
<channel lang="de" xmltv_id="ORF2Europe.at" site_id="ORF2_Europa">ORF 2 Europe</channel>
<channel lang="de" xmltv_id="ORF2Karnten.at" site_id="ORF2_K_rnten_HD">ORF 2 Kärnten</channel>
<channel lang="de" xmltv_id="ORF2NiederOsterreich.at" site_id="ORF2_Nieder_sterreich_HD">ORF 2 NiederÖsterreich</channel>
<channel lang="de" xmltv_id="ORF2OberOsterreich.at" site_id="ORF2_Ober_sterreich_HD">ORF 2 OberÖsterreich</channel>
<channel lang="de" xmltv_id="ORF2Salzburg.at" site_id="ORF2_Salzburg_HD">ORF 2 Salzburg</channel>
<channel lang="de" xmltv_id="ORF2Steiermark.at" site_id="ORF2_Steiermark_HD">ORF 2 Steiermark</channel>
<channel lang="de" xmltv_id="ORF2Tirol.at" site_id="ORF2_Tirol_HD">ORF 2 Tirol</channel>
<channel lang="de" xmltv_id="ORF2Vorarlberg.at" site_id="ORF2_Vorarlberg_HD">ORF 2 Vorarlberg</channel>
<channel lang="de" xmltv_id="ORF2Wien.at" site_id="ORF2_Wien_HD">ORF 2 Wien</channel>
<channel lang="de" xmltv_id="ORFIII.at" site_id="ORF_III_HD">ORF III</channel>
<channel lang="de" xmltv_id="ORFSportPlus.at" site_id="ORF_Sport__HD">ORF Sport +</channel>
<channel lang="de" xmltv_id="Phoenix.de" site_id="Phoenix_HD">Phoenix</channel>
<channel lang="de" xmltv_id="PinkExtra.rs" site_id="Pink_Extra">Pink Extra</channel>
<channel lang="de" xmltv_id="PinkFilm.rs" site_id="Pink_Film">Pink Film</channel>
<channel lang="de" xmltv_id="PinkMusic.rs" site_id="Pink_Music">Pink Music</channel>
<channel lang="de" xmltv_id="PinkPlus.rs" site_id="Pink_Plus">Pink Plus</channel>
<channel lang="de" xmltv_id="ProSiebenAustria.de" site_id="ProSieben_HD">ProSieben Austria</channel>
<channel lang="de" xmltv_id="ProSiebenFun.de" site_id="ProSieben_FUN_HD">ProSieben FUN HD</channel>
<channel lang="de" xmltv_id="ProSiebenMaxxAustria.de" site_id="ProSieben_Maxx_HD">ProSieben Maxx Austria</channel>
<channel lang="de" xmltv_id="QVC2Deutsch.us" site_id="QVC_2_HD">QVC2 Deutsch</channel>
<channel lang="de" xmltv_id="QVCDeutschland.us" site_id="QVC_HD">QVC Deutschland</channel>
<channel lang="de" xmltv_id="QVCStyleDeutschland.us" site_id="QVC_Beauty_Style">QVC Style Deutschland</channel>
<channel lang="de" xmltv_id="QVCZwei.us" site_id="QVC_Plus">QVC ZWEI</channel>
<channel lang="de" xmltv_id="Rai1.it" site_id="RAI_Uno">Rai Uno</channel>
<channel lang="de" xmltv_id="Rai2.it" site_id="RAI_Due">Rai Due</channel>
<channel lang="de" xmltv_id="Rai3.it" site_id="RAI_Tre">Rai Tre</channel>
<channel lang="de" xmltv_id="RBBBerlin.de" site_id="RBB_Berlin_HD">RBB Berlin</channel>
<channel lang="de" xmltv_id="RiC.de" site_id="RiC">RiC</channel>
<channel lang="de" xmltv_id="RomanceTVDeutschland.de" site_id="Romance_TV_HD">Romance TV</channel>
<channel lang="de" xmltv_id="RTLAustria.de" site_id="RTL_HD">RTL Austria</channel>
<channel lang="de" xmltv_id="RTLCrimeDeutschland.de" site_id="RTL_Crime_HD">RTL Crime Deutschland</channel>
<channel lang="de" xmltv_id="RTLLivingDeutschland.de" site_id="RTL_Living_HD">RTL Living Deutschland</channel>
<channel lang="de" xmltv_id="RTLPassionDeutschland.de" site_id="RTL_Passion_HD">RTL Passion Deutschland</channel>
<channel lang="de" xmltv_id="RTLUp.de" site_id="RTLplus_HD">RTLup</channel>
<channel lang="de" xmltv_id="RTLZweiAustria.de" site_id="RTL_II_HD">RTL Zwei Austria</channel>
<channel lang="de" xmltv_id="RTRPlaneta.ru" site_id="RTR_Planeta">RTR Planeta</channel>
<channel lang="de" xmltv_id="Sat1Emotions.de" site_id="Sat_1_emotions_HD">SAT.1 emotions</channel>
<channel lang="de" xmltv_id="Sat1GoldOsterreich.de" site_id="Sat_1_Gold_HD">Sat. 1 Gold Österreich</channel>
<channel lang="de" xmltv_id="Sat1Osterreich.de" site_id="Sat_1_HD">Sat. 1 Österreich</channel>
<channel lang="de" xmltv_id="ServusTVOsterreich.at" site_id="Servus_TV_HD">Servus TV Österreich</channel>
<channel lang="de" xmltv_id="SixxAustria.de" site_id="Sixx_Austria_HD">Sixx Austria</channel>
<channel lang="de" xmltv_id="SkyAtlantic.de" site_id="Sky_Atlantic_HD">Sky Atlantic HD</channel>
<channel lang="de" xmltv_id="SkyCinemaActionHD.de" site_id="Sky_Cinema_Action_HD">Sky Cinema Action HD</channel>
<channel lang="de" xmltv_id="SkyCinemaBestOfHD.de" site_id="Sky_Hits_HD">Sky Cinema Best Of HD</channel>
<channel lang="de" xmltv_id="SkyCinemaClassics.de" site_id="Sky_Nostalgie">Sky Cinema Classics</channel>
<channel lang="de" xmltv_id="SkyCinemaFamily.de" site_id="Sky_Cinema_Family_HD">Sky Cinema Family</channel>
<channel lang="de" xmltv_id="SkyCinemaFun.de" site_id="Sky_Comedy">Sky Cinema Fun</channel>
<channel lang="de" xmltv_id="SkyCinemaPremierenHD.de" site_id="Sky_Cinema_HD">Sky Cinema Premieren HD</channel>
<channel lang="de" xmltv_id="SkyCinemaPremierenPlus24.de" site_id="Sky_Cinema__24">Sky Cinema Premieren +24</channel>
<channel lang="de" xmltv_id="SkyCinemaSpecial.de" site_id="Disney_Cinemagic_HD">Sky Cinema Special HD</channel>
<channel lang="de" xmltv_id="SkyCinemaThriller.de" site_id="Sky_Cinema_Thriller_HD">Sky Cinema Thriller HD</channel>
<channel lang="de" xmltv_id="SkyComedy.de" site_id="Sky_Comedy_HD">Sky Comedy HD</channel>
<channel lang="de" xmltv_id="SkyCrime.de" site_id="Sky_Crime_HD">Sky Crime HD</channel>
<channel lang="de" xmltv_id="SkyDocumentaries.de" site_id="Sky_Documentaries_HD">Sky Documentaries HD</channel>
<channel lang="de" xmltv_id="SkyKrimi.de" site_id="Sky_Krimi">Sky Krimi HD</channel>
<channel lang="de" xmltv_id="SkyNature.de" site_id="Sky_Nature_HD">Sky Nature HD</channel>
<channel lang="de" xmltv_id="SkyOne.de" site_id="Sky_1">Sky One HD</channel>
<channel lang="de" xmltv_id="SkyReplay.de" site_id="Sky_Popup_Channel_HD">Sky Replay HD</channel>
<channel lang="de" xmltv_id="SkySport10HD.de" site_id="Sky_Sport_HD_10">Sky Sport 10 HD</channel>
<channel lang="de" xmltv_id="SkySport11HD.de" site_id="Sky_Sport_HD_11">Sky Sport 11 HD</channel>
<channel lang="de" xmltv_id="SkySport1HD.de" site_id="Sky_Sport_HD_1">Sky Sport 1 HD</channel>
<channel lang="de" xmltv_id="SkySport2HD.de" site_id="Sky_Sport_HD_2">Sky Sport 2 HD</channel>
<channel lang="de" xmltv_id="SkySport3HD.de" site_id="Sky_Sport_HD_3">Sky Sport 3 HD</channel>
<channel lang="de" xmltv_id="SkySport4HD.de" site_id="Sky_Sport_HD_4">Sky Sport 4 HD</channel>
<channel lang="de" xmltv_id="SkySport5HD.de" site_id="Sky_Sport_HD_5">Sky Sport 5 HD</channel>
<channel lang="de" xmltv_id="SkySport6HD.de" site_id="Sky_Sport_HD_6">Sky Sport 6 HD</channel>
<channel lang="de" xmltv_id="SkySport7HD.de" site_id="Sky_Sport_HD_7">Sky Sport 7 HD</channel>
<channel lang="de" xmltv_id="SkySport8HD.de" site_id="Sky_Sport_HD_8">Sky Sport 8 HD</channel>
<channel lang="de" xmltv_id="SkySport9HD.de" site_id="Sky_Sport_HD_9">Sky Sport 9 HD</channel>
<channel lang="de" xmltv_id="SkySportAustria1.de" site_id="Sky_Sport_Austria_HD">Sky Sport Austria 1</channel>
<channel lang="de" xmltv_id="SkySportAustria2.de" site_id="Sky_Sport_Austria_2_HD">Sky Sport Austria 2</channel>
<channel lang="de" xmltv_id="SkySportAustria3.de" site_id="Sky_Sport_Austria_3_HD">Sky Sport Austria 3</channel>
<channel lang="de" xmltv_id="SkySportAustria4.de" site_id="Sky_Sport_Austria_4_HD">Sky Sport Austria 4</channel>
<channel lang="de" xmltv_id="SkySportAustria5.de" site_id="Sky_Sport_Austria_5_HD">Sky Sport Austria 5</channel>
<channel lang="de" xmltv_id="SkySportAustria6.de" site_id="Sky_Sport_Austria_6_HD">Sky Sport Austria 6</channel>
<channel lang="de" xmltv_id="SkySportAustria7.de" site_id="Sky_Sport_Austria_7_HD">Sky Sport Austria 7</channel>
<channel lang="de" xmltv_id="SkySportBundesliga10HD.de" site_id="Sky_Bundesliga_HD_10">Sky Sport Bundesliga 10 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga1HD.de" site_id="Sky_Bundesliga_HD_1">Sky Sport Bundesliga 1 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga2HD.de" site_id="Sky_Bundesliga_HD_2">Sky Sport Bundesliga 2 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga3HD.de" site_id="Sky_Bundesliga_HD_3">Sky Sport Bundesliga 3 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga4HD.de" site_id="Sky_Bundesliga_HD_4">Sky Sport Bundesliga 4 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga5HD.de" site_id="Sky_Bundesliga_HD_5">Sky Sport Bundesliga 5 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga6HD.de" site_id="Sky_Bundesliga_HD_6">Sky Sport Bundesliga 6 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga7HD.de" site_id="Sky_Bundesliga_HD_7">Sky Sport Bundesliga 7 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga8HD.de" site_id="Sky_Bundesliga_HD_8">Sky Sport Bundesliga 8 HD</channel>
<channel lang="de" xmltv_id="SkySportBundesliga9HD.de" site_id="Sky_Bundesliga_HD_9">Sky Sport Bundesliga 9 HD</channel>
<channel lang="de" xmltv_id="SkySportF1.de" site_id="Sky_Sport_F1_HD">Sky Sport F1 HD</channel>
<channel lang="de" xmltv_id="SkySportNews.de" site_id="Sky_Sport_News_HD">Sky Sport News HD</channel>
<channel lang="de" xmltv_id="SpiegelGeschichte.de" site_id="Spiegel_Geschichte_HD">Spiegel Geschichte</channel>
<channel lang="de" xmltv_id="SpiegelTVWissen.de" site_id="Spiegel_Wissen_HD">Spiegel TV Wissen HD</channel>
<channel lang="de" xmltv_id="Sport1.de" site_id="Sport_1_HD">Sport 1</channel>
<channel lang="de" xmltv_id="Sport1Plus.de" site_id="Sport1__HD">Sport 1+</channel>
<channel lang="de" xmltv_id="SportdigitalFussball.de" site_id="sportdigital_HD">SPORTDIGITAL FUSSBALL</channel>
<channel lang="de" xmltv_id="SRFernsehen.de" site_id="SR_HD">SR Fernsehen HD</channel>
<channel lang="de" xmltv_id="SuperRTLAustria.de" site_id="Super_RTL_HD">Super RTL Austria</channel>
<channel lang="de" xmltv_id="SWRFernsehenRheinlandPfalz.de" site_id="SWR_HD">SWR Fernsehen RP</channel>
<channel lang="de" xmltv_id="SyfyDeutschland.us" site_id="Syfy_HD">SYFY HD</channel>
<channel lang="de" xmltv_id="Tagesschau24.de" site_id="tagesschau24_HD">tagesschau24 HD</channel>
<channel lang="de" xmltv_id="Tele5.de" site_id="TELE_5">Tele 5</channel>
<channel lang="de" xmltv_id="TLCAustria.us" site_id="TLC_HD">TLC Austria</channel>
<channel lang="de" xmltv_id="TV5MondeEurope.fr" site_id="TV5Monde_Europe">TV5MONDE Europe</channel>
<channel lang="de" xmltv_id="TVPPolonia.pl" site_id="TV_Polonia">TV Polonia</channel>
<channel lang="de" xmltv_id="UniversalTVDeutschland.us" site_id="Universal_Channel_HD">Universal TV HD</channel>
<channel lang="de" xmltv_id="VoxAustria.de" site_id="VOX_HD">Vox Austria</channel>
<channel lang="de" xmltv_id="WarnerTVComedy.de" site_id="TNT_Comedy_HD">Warner TV Comedy HD</channel>
<channel lang="de" xmltv_id="WarnerTVSerie.de" site_id="TNT_Serie_HD">Warner TV Serie</channel>
<channel lang="de" xmltv_id="WDRFernsehenKoln.de" site_id="WDR_Koeln_HD">WDR Fernsehen Köln</channel>
<channel lang="de" xmltv_id="ZDF.de" site_id="ZDF_HD">ZDF</channel>
<channel lang="de" xmltv_id="ZDFInfo.de" site_id="ZDF_info_HD">ZDF Info</channel>
<channel lang="de" xmltv_id="ZDFNeo.de" site_id="ZDF_neo_HD">ZDF Neo</channel>
</channels>
</site>