Initial Commit

This commit is contained in:
2023-09-10 21:48:48 +02:00
commit 227cca7d31
791 changed files with 165200 additions and 0 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,307 @@
<?xml version="1.0" encoding="UTF-8"?>
<site site="tv24.se">
<channels>
<channel lang="sv" xmltv_id="3sat.de" site_id="3sat">3sat</channel>
<channel lang="sv" xmltv_id="AdultChannel.uk" site_id="the-adult-channel">The Adult Channel</channel>
<channel lang="sv" xmltv_id="Alarabiya.ae" site_id="al-arabiya">Al Arabiya</channel>
<channel lang="en" xmltv_id="AlJazeeraChannel.qa" site_id="al-jazeera-arabic">Al Jazeera (Arabic)</channel>
<channel lang="en" xmltv_id="AlJazeeraEnglish.qa" site_id="al-jazeera">Al Jazeera (English)</channel>
<channel lang="sv" xmltv_id="AnimalPlanetSweden.se" site_id="animal-planet">Animal Planet</channel>
<channel lang="sv" xmltv_id="ATGLive.se" site_id="atg-live">ATG Live</channel>
<channel lang="sv" xmltv_id="AxessTV.se" site_id="axess-tv">Axess TV</channel>
<channel lang="en" xmltv_id="BBCBritNordic.uk" site_id="bbc-brit">BBC Brit</channel>
<channel lang="en" xmltv_id="BBCEarthNordic.uk" site_id="bbc-earth">BBC Earth</channel>
<channel lang="en" xmltv_id="BBCWorldNewsEurope.uk" site_id="bbc-world-news">BBC World News</channel>
<channel lang="en" xmltv_id="BlueHustler.nl" site_id="blue-hustler">Blue Hustler</channel>
<channel lang="sv" xmltv_id="BoomerangNordic.uk" site_id="boomerang">Boomerang</channel>
<channel lang="sv" xmltv_id="Canal24Horas.es" site_id="canal-24h">Canal 24H</channel>
<channel lang="sv" xmltv_id="CartoonNetworkSweden.se" site_id="cartoon-network">Cartoon Network</channel>
<channel lang="en" xmltv_id="CBSRealityEMEA.uk" site_id="cbs-reality">CBS Reality</channel>
<channel lang="sv" xmltv_id="CCTV4Europe.cn" site_id="cctv4-china-central-tv">CCTV-4</channel>
<channel lang="en" xmltv_id="CGTNEurope.cn" site_id="cgtn">CGTN</channel>
<channel lang="sv" xmltv_id="ClassicaHD.it" site_id="classica-hd">Classica HD</channel>
<channel lang="sv" xmltv_id="CMoreFirst.se" site_id="c-more-first">C More First</channel>
<channel lang="sv" xmltv_id="CMoreFotboll.se" site_id="c-more-fotboll">C More Fotboll</channel>
<channel lang="sv" xmltv_id="CMoreHits.se" site_id="c-more-hits">C More Hits</channel>
<channel lang="sv" xmltv_id="CMoreHockey.se" site_id="c-more-hockey">C More Hockey</channel>
<channel lang="sv" xmltv_id="CMoreLive.se" site_id="c-more-live">C More Live</channel>
<channel lang="sv" xmltv_id="CMoreLive2.se" site_id="c-more-live-2">C More Live 2</channel>
<channel lang="sv" xmltv_id="CMoreLive3.se" site_id="c-more-live-3">C More Live 3</channel>
<channel lang="sv" xmltv_id="CMoreLive4.se" site_id="c-more-live-4">C More Live 4</channel>
<channel lang="sv" xmltv_id="CMoreLive5.se" site_id="c-more-live-5">C More Live 5</channel>
<channel lang="sv" xmltv_id="CMoreMix.se" site_id="c-more-mix">C More Mix</channel>
<channel lang="sv" xmltv_id="CMoreSeries.se" site_id="c-more-series">C More Series</channel>
<channel lang="sv" xmltv_id="CMoreSportSFKanalen.se" site_id="c-more-sport-sf-kanalen">C More Sport SF-Kanalen</channel>
<channel lang="sv" xmltv_id="CMoreStars.se" site_id="c-more-stars">C More Stars</channel>
<channel lang="en" xmltv_id="CNBCEurope.uk" site_id="cnbc">CNBC</channel>
<channel lang="en" xmltv_id="CNNInternationalEurope.us" site_id="cnn-international">CNN International</channel>
<channel lang="sv" xmltv_id="DasErste.de" site_id="das-erste">Das Erste</channel>
<channel lang="sv" xmltv_id="DiscoveryChannelSweden.se" site_id="discovery-channel">Discovery Channel</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra1.se" site_id="discovery-extra-1">Discovery+ Extra 1</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra2.se" site_id="discovery-extra-2">Discovery+ Extra 2</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra3.se" site_id="discovery-extra-3">Discovery+ Extra 3</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra4.se" site_id="discovery-extra-4">Discovery+ Extra 4</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra5.se" site_id="discovery-extra-5">Discovery+ Extra 5</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra6.se" site_id="discovery-extra-6">Discovery+ Extra 6</channel>
<channel lang="sv" xmltv_id="DiscoveryPlusExtra7.se" site_id="discovery-extra-7">Discovery+ Extra 7</channel>
<channel lang="sv" xmltv_id="DiscoveryScienceSweden.se" site_id="discovery-science-1">Discovery Science</channel>
<channel lang="sv" xmltv_id="DisneyChannelScandinavia.uk" site_id="disney-channel">Disney Channel</channel>
<channel lang="sv" xmltv_id="DisneyJuniorScandinavia.uk" site_id="disney-junior">Disney Junior</channel>
<channel lang="sv" xmltv_id="DiTV.se" site_id="di-tv-hd">Di TV HD</channel>
<channel lang="sv" xmltv_id="DR1.dk" site_id="dr1">DR1</channel>
<channel lang="sv" xmltv_id="DR2.dk" site_id="dr2">DR2</channel>
<channel lang="sv" xmltv_id="DRRamasjang.dk" site_id="dr-ramasjang">DR Ramasjang</channel>
<channel lang="sv" xmltv_id="DunaTV.hu" site_id="duna-tv">Duna TV</channel>
<channel lang="sv" xmltv_id="ESTV.us" site_id="esportstv-hd">eSportsTV HD</channel>
<channel lang="sv" xmltv_id="Eurosport1.fr" site_id="eurosport-1">Eurosport 1</channel>
<channel lang="sv" xmltv_id="Eurosport2.fr" site_id="eurosport-2">Eurosport 2</channel>
<channel lang="sv" xmltv_id="ExtremeSportsChannelEurope.nl" site_id="extreme-sports-channel">Extreme Sports Channel</channel>
<channel lang="sv" xmltv_id="FashionTVEurope.fr" site_id="ftv-hd">FTV HD</channel>
<channel lang="en" xmltv_id="FightSports.us" site_id="fight-sports">Fight Sports</channel>
<channel lang="en" xmltv_id="FoodNetworkEMEA.us" site_id="food-network">Food Network</channel>
<channel lang="sv" xmltv_id="France2.fr" site_id="france-2">France 2</channel>
<channel lang="fr" xmltv_id="France24English.fr" site_id="france-24-english-hd">France 24 English HD</channel>
<channel lang="sv" xmltv_id="France24French.fr" site_id="france-24">France 24</channel>
<channel lang="sv" xmltv_id="FUELTV.at" site_id="fuel-tv">Fuel TV</channel>
<channel lang="en" xmltv_id="GINXEsportsTV.uk" site_id="ginx-esports-tv">GINX eSports TV</channel>
<channel lang="sv" xmltv_id="Godare.se" site_id="godare">Godare</channel>
<channel lang="en" xmltv_id="GodTV.uk" site_id="god">God</channel>
<channel lang="sv" xmltv_id="GospelChannelScandinavia.is" site_id="gospel-channel">Gospel Channel</channel>
<channel lang="sv" xmltv_id="HayatPlus.ba" site_id="hayat-plus">Hayat Plus</channel>
<channel lang="sv" xmltv_id="History2Nordic.us" site_id="h2">H2</channel>
<channel lang="sv" xmltv_id="HistorySweden.se" site_id="history">History</channel>
<channel lang="en" xmltv_id="HorseCountryTV.uk" site_id="horse-country">Horse &amp; Country (UK)</channel>
<!-- <channel lang="sv" xmltv_id="" site_id="horse-country-tv">Horse &amp; Country TV</channel> -->
<channel lang="sv" xmltv_id="HRT1.hr" site_id="hrt1">HRT1</channel>
<channel lang="sv" xmltv_id="HustlerTVEurope.nl" site_id="hustler-tv">Hustler TV</channel>
<channel lang="sv" xmltv_id="InvestigationDiscoverySweden.se" site_id="id">ID</channel>
<channel lang="sv" xmltv_id="Kanal10.se" site_id="kanal-10">Kanal 10</channel>
<channel lang="sv" xmltv_id="Kanal11.se" site_id="kanal-11">Kanal 11</channel>
<channel lang="sv" xmltv_id="Kanal4.dk" site_id="kanal-4">Kanal 4</channel>
<channel lang="sv" xmltv_id="Kanal5.se" site_id="kanal-5">Kanal 5</channel>
<channel lang="sv" xmltv_id="Kanal9.se" site_id="kanal-9">Kanal 9</channel>
<channel lang="sv" xmltv_id="Kunskapskanalen.se" site_id="kunskapskanalen">Kunskapskanalen</channel>
<channel lang="sv" xmltv_id="LasEstrellasEuropa.mx" site_id="canal-de-las-estrellas">Las Estrellas</channel>
<channel lang="en" xmltv_id="MagnoliaNetwork.us" site_id="magnolia-network-hd">Magnolia Network HD</channel>
<channel lang="sv" xmltv_id="MBC1.ae" site_id="mbc">MBC</channel>
<channel lang="sv" xmltv_id="Mezzo.fr" site_id="mezzo">Mezzo</channel>
<channel lang="sv" xmltv_id="MezzoLiveHD.fr" site_id="mezzo-live-hd">Mezzo Live HD</channel>
<channel lang="de" xmltv_id="MotorvisionTV.de" site_id="motorvision-tv">Motorvision TV</channel>
<channel lang="en" xmltv_id="MTV00s.uk" site_id="mtv-00s-europe">MTV 00s Europe</channel>
<channel lang="sv" xmltv_id="MTV3.fi" site_id="mtv3">MTV3</channel>
<channel lang="en" xmltv_id="MTV80s.uk" site_id="mtv-80s">MTV 80s</channel>
<channel lang="en" xmltv_id="MTV90s.uk" site_id="mtv-90s">MTV 90s</channel>
<channel lang="en" xmltv_id="MTVHitsEurope.uk" site_id="mtv-hits-international">MTV Hits International</channel>
<channel lang="en" xmltv_id="MTVLive.uk" site_id="mtv-live-hd">MTV Live HD</channel>
<channel lang="sv" xmltv_id="MUTV.uk" site_id="manchester-united-television-hd">Manchester United Television HD</channel>
<channel lang="sv" xmltv_id="NationalGeographicSweden.se" site_id="national-geographic">National Geographic</channel>
<channel lang="sv" xmltv_id="NationalGeographicWildSweden.se" site_id="national-geographic-wild">National Geographic Wild</channel>
<channel lang="sv" xmltv_id="NauticalChannel.it" site_id="nautical-channel">Nautical Channel</channel>
<channel lang="sv" xmltv_id="NHKWorldJapan.jp" site_id="nhk-world-tv">NHK World TV</channel>
<channel lang="sv" xmltv_id="NickelodeonSweden.se" site_id="nickelodeon">Nickelodeon</channel>
<channel lang="sv" xmltv_id="NickJrScandinavia.nl" site_id="nick-jr">Nick JR</channel>
<channel lang="sv" xmltv_id="NicktoonsScandinavia.nl" site_id="nicktoons">Nicktoons</channel>
<channel lang="sv" xmltv_id="NRK1.no" site_id="nrk1">NRK1 Norge</channel>
<channel lang="sv" xmltv_id="NRK2.no" site_id="nrk2">NRK2 Norge</channel>
<channel lang="sv" xmltv_id="NRK3.no" site_id="nrk3">NRK3</channel>
<channel lang="sv" xmltv_id="NRK3NRKSuper.no" site_id="nrk-super-nrk3-hd">NRK Super/NRK3</channel>
<channel lang="sv" xmltv_id="NRKSuper.no" site_id="nrk-super">NRK Super</channel>
<channel lang="sv" xmltv_id="OBN.ba" site_id="obn">OBN</channel>
<channel lang="en" xmltv_id="OUTtv.nl" site_id="outtv">OUTtv</channel>
<channel lang="sv" xmltv_id="PinkExtra.rs" site_id="pink-extra">Pink Extra</channel>
<channel lang="sv" xmltv_id="PinkPlus.rs" site_id="pink-plus">Pink Plus</channel>
<channel lang="sv" xmltv_id="PlayboyTVEurope.us" site_id="playboy-tv">Playboy TV</channel>
<channel lang="sv" xmltv_id="ProSieben.de" site_id="prosieben">ProSieben</channel>
<channel lang="sv" xmltv_id="ProTVInternational.ro" site_id="pro-tv-int">Pro TV int</channel>
<channel lang="it" xmltv_id="Rai1.it" site_id="rai-1">Rai 1</channel>
<channel lang="it" xmltv_id="Rai2.it" site_id="rai-2">Rai 2</channel>
<channel lang="it" xmltv_id="Rai3.it" site_id="rai-3">Rai 3</channel>
<channel lang="sv" xmltv_id="RTLGermany.de" site_id="rtl">RTL</channel>
<channel lang="sv" xmltv_id="RTLZwei.de" site_id="rtlzwei">RTLZWEI</channel>
<channel lang="sv" xmltv_id="RTPInternacional.pt" site_id="rtp-internacional-europe">RTP Internacional Europe</channel>
<channel lang="sv" xmltv_id="RTRPlaneta.ru" site_id="rtr-planeta">RTR Planeta</channel>
<channel lang="sv" xmltv_id="SFkanalen.se" site_id="sf-kanalen">SF Kanalen</channel>
<channel lang="sv" xmltv_id="Sjuan.se" site_id="sjuan">Sjuan</channel>
<channel lang="en" xmltv_id="SkyCinemaPremierePlus1.uk" site_id="sky-cinema-premiere-1">Sky Cinema Premiere +1</channel>
<channel lang="en" xmltv_id="SkyHistory2.uk" site_id="sky-history-2-hd">Sky History 2 HD</channel>
<channel lang="en" xmltv_id="SkyNews.uk" site_id="sky-news">Sky News</channel>
<channel lang="sv" xmltv_id="SkyShowtime1.se" site_id="skyshowtime-1">Sky Showtime 1</channel>
<channel lang="sv" xmltv_id="SkyShowtime2.se" site_id="skyshowtime-2">Sky Showtime 2</channel>
<channel lang="sv" xmltv_id="Sportkanalen.se" site_id="sportkanalen">Sportkanalen</channel>
<channel lang="sv" xmltv_id="StingrayDJAZZ.ca" site_id="djazz-hd">Djazz HD</channel>
<channel lang="sv" xmltv_id="SuperRTL.de" site_id="super-rtl">Super RTL</channel>
<channel lang="sv" xmltv_id="SVT1.se" site_id="svt1">SVT1</channel>
<channel lang="sv" xmltv_id="SVT2.se" site_id="svt2">SVT2</channel>
<channel lang="sv" xmltv_id="SVT24.se" site_id="svt24">SVT24</channel>
<channel lang="sv" xmltv_id="SVTBarn.se" site_id="svt-barn">SVT Barn</channel>
<channel lang="sv" xmltv_id="SVTBarnSVT24.se" site_id="svt-barnsvt24">SVT Barn/SVT24</channel>
<channel lang="sv" xmltv_id="TBNEurope.us" site_id="tbn-europe">TBN Europe</channel>
<channel lang="sv" xmltv_id="TLCSweden.se" site_id="tlc">TLC</channel>
<channel lang="sv" xmltv_id="TraceUrban.fr" site_id="trace-urban-hd">Trace Urban HD</channel>
<channel lang="en" xmltv_id="TravelChannelEMEA.uk" site_id="travel-channel">Travel Channel</channel>
<channel lang="sv" xmltv_id="TRT1.tr" site_id="trt-1">TRT 1</channel>
<channel lang="sv" xmltv_id="TRTTurk.tr" site_id="trt-turk">TRT Turk</channel>
<channel lang="sv" xmltv_id="TV10.se" site_id="tv10">TV10</channel>
<channel lang="sv" xmltv_id="TV12.se" site_id="tv12">TV12</channel>
<channel lang="sv" xmltv_id="TV2.dk" site_id="tv2">TV2 Danmark</channel>
<channel lang="sv" xmltv_id="TV2.no" site_id="tv-2-direkte">TV2 Norge</channel>
<channel lang="sv" xmltv_id="TV2Charlie.dk" site_id="tv2-charlie">TV2 Charlie</channel>
<channel lang="sv" xmltv_id="TV2News.dk" site_id="tv2-news">TV2 News</channel>
<channel lang="sv" xmltv_id="TV2Nyhetskanalen.no" site_id="tv-2-nyheter-norway">TV 2 Nyheter (NORWAY)</channel>
<channel lang="sv" xmltv_id="TV2Zebra.no" site_id="tv-2-zebra">TV 2 Zebra</channel>
<channel lang="sv" xmltv_id="TV2Zulu.dk" site_id="tv2-zulu">TV2 Zulu</channel>
<channel lang="sv" xmltv_id="TV3.se" site_id="tv3">TV3</channel>
<channel lang="sv" xmltv_id="TV3Danmark.dk" site_id="tv3-1">TV3 Danmark</channel>
<channel lang="sv" xmltv_id="TV3Plus.dk" site_id="tv3-plus">TV3 Plus</channel>
<channel lang="sv" xmltv_id="TV3Sport.uk" site_id="tv3-sport">TV3 Sport</channel>
<channel lang="sv" xmltv_id="TV4.se" site_id="tv4">TV4</channel>
<channel lang="sv" xmltv_id="TV4Fakta.se" site_id="tv4-fakta">TV4 Fakta</channel>
<channel lang="sv" xmltv_id="TV4Film.se" site_id="tv4-film">TV4 Film</channel>
<channel lang="sv" xmltv_id="TV4Guld.se" site_id="tv4-guld">TV4 Guld</channel>
<channel lang="fr" xmltv_id="TV5MondeEurope.fr" site_id="tv5-monde-europe">TV5 Monde Europe</channel>
<channel lang="sv" xmltv_id="TV6Sweden.se" site_id="tv6">TV6</channel>
<channel lang="sv" xmltv_id="TV8Sweden.se" site_id="tv8">TV8</channel>
<channel lang="sv" xmltv_id="TVCGMNE.me" site_id="tvcg-sat">TVCG Sat</channel>
<channel lang="sv" xmltv_id="TVChile.cl" site_id="tv-chile-internacional">TV Chile</channel>
<channel lang="sv" xmltv_id="TVEInternacionalEuropeAsia.es" site_id="tve-internacional">TVE Internacional</channel>
<channel lang="sv" xmltv_id="TVNorge.no" site_id="tvnorge">TVNorge</channel>
<channel lang="sv" xmltv_id="TVPPolonia.pl" site_id="tvp-polonia">TVP Polonia</channel>
<channel lang="sv" xmltv_id="TVVisjonNorway.no" site_id="visjon-norge-hd">Visjon Norge HD</channel>
<channel lang="sv" xmltv_id="VFilmAction.se" site_id="v-film-action-hd">V Film Action HD</channel>
<channel lang="sv" xmltv_id="VFilmFamily.se" site_id="v-film-family">V Film Family</channel>
<channel lang="sv" xmltv_id="VFilmHits.se" site_id="v-film-hits-hd">V Film Hits HD</channel>
<channel lang="sv" xmltv_id="VFilmPremiere.se" site_id="v-film-premiere-hd">V Film Premiere HD</channel>
<channel lang="sv" xmltv_id="ViasatExplore.se" site_id="viasat-explore">Viasat Explore</channel>
<channel lang="sv" xmltv_id="ViasatHistory.se" site_id="viasat-history">Viasat History</channel>
<channel lang="sv" xmltv_id="ViasatNature.se" site_id="viasat-nature">Viasat Nature</channel>
<channel lang="sv" xmltv_id="ViasatSport.ru" site_id="viasat-sport">Viasat Sport</channel>
<channel lang="sv" xmltv_id="VoxAustria.at" site_id="vox">VOX</channel>
<channel lang="sv" xmltv_id="VSeries.se" site_id="viasat-series">Viasat Series</channel>
<channel lang="sv" xmltv_id="VSportExtra.se" site_id="v-sport-extra">V Sport Extra</channel>
<channel lang="sv" xmltv_id="VSportFootball.se" site_id="v-sport-fotboll-hd">V Sport Fotboll HD</channel>
<channel lang="sv" xmltv_id="VSportGolf.se" site_id="v-sport-golf-hd">V Sport Golf HD</channel>
<channel lang="sv" xmltv_id="VSportMotor.se" site_id="v-sport-motor-hd">V Sport Motor HD</channel>
<channel lang="sv" xmltv_id="VSportPremium.se" site_id="v-sport-premium-hd">V Sport Premium HD</channel>
<channel lang="sv" xmltv_id="VSportUltraHD.se" site_id="v-sport-ultra-hd">V Sport Ultra HD</channel>
<channel lang="sv" xmltv_id="VSportVinter.se" site_id="v-sport-vinter">V Sport Vinter</channel>
<channel lang="sv" xmltv_id="YleTeemaFem.fi" site_id="yle-teema-fem-hd">Yle Teema &amp; Fem HD</channel>
<channel lang="sv" xmltv_id="YleTV1.fi" site_id="yle-tv1">Yle TV1</channel>
<channel lang="sv" xmltv_id="YleTV2.fi" site_id="yle-tv2">Yle TV2</channel>
<channel lang="sv" xmltv_id="ZDF.de" site_id="zdf">ZDF</channel>
<!-- <channel lang="sv" xmltv_id="" site_id="al-jazeera-english">Al Jazeera English</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="al-jazeera-hd">Al Jazeera HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="arte">ARTE</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bbc-brit-1">BBC Brit</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bbc-brit-hd">BBC Brit HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bbc-earth-hd">BBC Earth HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bbc-world-news-hd">BBC World News HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bloomberg-hd">Bloomberg HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="bloomberg-tv-hd-uk">Bloomberg TV HD (UK)</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-fotbollhockeystars-hd">C More Fotboll/Hockey/Stars HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-golfsf-kanalen">C More Golf/SF-Kanalen</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-live-2-ppv">C More Live 2 (PPV)</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-live-3-ppv">C More Live 3 (PPV)</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-live-4-ppv">C More Live 4 (PPV)</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-live-ppv">C More Live (PPV)</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-livec-more-hits">C More Live/C More Hits</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="c-more-mix-hd">C More Mix HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="canal-24-horas">Canal 24 Horas</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="channel-one-russia">Channel One Russia</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="cnbc-hd">CNBC HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="cnn-international-hd">CNN International HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="discovery-hd-text">Discovery HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="discovery-science">Discovery Science</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="disney-channel-hd">Disney Channel HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="disney-xd">Disney XD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr-k">DR K</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr-ultra">DR Ultra</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr1-hd">DR1 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr2-hd">DR2 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr3">DR3</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dr3-hd">DR3 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="duna-tv-hd">Duna TV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="dw">Deutsche Welle</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="euronews">euronews</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="euronews-hd">Euronews HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="fight-sports-hd">Fight Sports HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="fox">FOX</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="fox-hd">FOX HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="france-2-hd">France 2 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="ftv-hd-1">FTV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="fuel-tv-hd">Fuel TV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="h2-hd">H2 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="high-tv-3d">High TV 3D</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="history-channel">History Channel</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="history-hd">History HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kanal-11-hd">Kanal 11 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kanal-11-hd-text">Kanal 11 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kanal-5-hd-text">Kanal 5 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kanal-9-hd">Kanal 9 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kanal-9-hd-text">Kanal 9 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kunskapskanalen-hd">Kunskapskanalen HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="kunskapskanalen-hd-text">Kunskapskanalen HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="m2-magyar-hd">M2 Magyar HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="mbc-1">MBC</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="motorvision-tv-hd">Motorvision TV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="motorvision-tv-hd-1">Motorvision TV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="mtv">MTV</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="mtv-hd">MTV HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="national-geographic-hd-1">National Geographic HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nautical-channel-hd">Nautical Channel HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nick-jr-hd">Nick Jr. HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nickelodeon-hd">Nickelodeon HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nrk-super-nrk3-hd">NRK Super / NRK3 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nrk1-hd">NRK1 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="nrk2-hd">NRK2 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="oppna-kanalen-goteborg">Öppna Kanalen Göteborg</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="oppna-kanalen-stockholm">Öppna Kanalen Stockholm</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="oppna-kanalen-vaxjo">Öppna Kanalen Växjö</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="oppna-kanalen-vs">Öppna kanalen VS</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="rt">RT</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="rts-sat">RTS Sat</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="sat1">Sat.1</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="sjuan-hd">Sjuan HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="sjuan-hd-text">Sjuan HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="skyshowtime-1">SkyShowtime 1</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="skyshowtime-2">SkyShowtime 2</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="sonlife-broadcasting-network">SonLife Broadcasting Network</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="sportkanalen-hd">Sportkanalen HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="svt-barn-hd">SVT Barn HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="svt1-sodertalje">SVT1 Södertälje</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="svtbsvt24-hd">SVTB/SVT24 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="svtbsvt24-hd-text">SVTB/SVT24 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tlc-hd">TLC HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="travel-channel-1">Travel Channel</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="travel-channel-hd">Travel Channel HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="travel-channel-hd-1">Travel Channel HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="trt-1-hd">TRT 1 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv-2-direkte-hd">TV2 Norge HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv-finland">TV Finland</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv10-hd">TV10 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv12-hd">TV12 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv12-hd-text">TV12 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv2-hd">TV2 Danmark HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv3-2">TV3+</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv3-hd">TV3 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv3-hd-text">TV3 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv4-fakta-text">TV4 Fakta - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv4-film-text">TV4 Film - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv4-hd-text">TV4 HD - Text</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv6-hd">TV6 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="tv8-hd">TV8 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="v-series-hd">V Series HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="v-sport-1-hd">V Sport 1 HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="v-sport-vinter-hd">V Sport Vinter HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-film-action">Viasat Film Action</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-film-family-hd">Viasat Film Family HD</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-film-hits">Viasat Film Hits</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-film-premiere">Viasat Film Premiere</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-fotboll">Viasat Fotboll</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-golf">Viasat Golf</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-history-hd">Viasat History HD Finland</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-hockey-1">Viasat Hockey Finland</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-motor">Viasat Motor</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="viasat-sport-premium">Viasat Sport Premium</channel> -->
<!-- <channel lang="sv" xmltv_id="" site_id="yle-teema-fem">Yle Teema &amp; Fem</channel> -->
</channels>
</site>

View File

@@ -0,0 +1,163 @@
const dayjs = require('dayjs')
const axios = require('axios')
const cheerio = require('cheerio')
const utc = require('dayjs/plugin/utc')
const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(utc)
dayjs.extend(customParseFormat)
module.exports = {
site: 'tv24.se',
days: 2,
url: function ({ channel, date }) {
return `https://tv24.se/x/channel/${channel.site_id}/0/${date.format('YYYY-MM-DD')}`
},
parser: async function ({ content, date }) {
let programs = []
const items = parseItems(content)
for (let item of items) {
const prev = programs[programs.length - 1]
const $item = cheerio.load(item)
let start = parseStart($item, date)
if (prev) {
if (start.isBefore(prev.start)) {
start = start.add(1, 'd')
date = date.add(1, 'd')
}
prev.stop = start
}
const stop = start.add(30, 'm')
const details = await loadProgramDetails($item)
programs.push({
title: parseTitle($item),
description: details.description,
actors: details.actors,
icon: details.icon,
category: details.category,
sub_title: details.sub_title,
season: details.season,
episode: details.episode,
start,
stop
})
}
return programs
},
async channels() {
let html = await axios
.get(`https://tv24.se/x/settings/addremove`)
.then(r => r.data)
.catch(console.log)
let $ = cheerio.load(html)
const nums = $('li')
.toArray()
.map(item => $(item).data('channel'))
html = await axios
.get(`https://tv24.se`, {
headers: {
Cookie: `selectedChannels=${nums.join(',')}`
}
})
.then(r => r.data)
.catch(console.log)
$ = cheerio.load(html)
const items = $('li.c').toArray()
return items.map(item => {
const name = $(item).find('h3').text().trim()
const link = $(item).find('.channel').attr('href')
const [_, site_id] = link.match(/\/kanal\/(.*)/) || [null, null]
return {
lang: 'sv',
site_id,
name
}
})
}
}
async function loadProgramDetails($item) {
const programId = $item('a').attr('href')
const data = await axios
.get(`https://tv24.se/x${programId}/0/0`)
.then(r => r.data)
.catch(console.error)
if (!data) return Promise.resolve({})
const $ = cheerio.load(data.contentBefore + data.contentAfter)
return Promise.resolve({
icon: parseIcon($),
actors: parseActors($),
description: parseDescription($),
category: parseCategory($),
sub_title: parseSubTitle($),
season: parseSeason($),
episode: parseEpisode($)
})
}
function parseIcon($) {
const style = $('.image > .actual').attr('style')
const [_, url] = style.match(/background-image\: url\('([^']+)'\)/)
return url
}
function parseSeason($) {
const [_, season] = $('.sub-title')
.text()
.trim()
.match(/Säsong (\d+)/) || [null, '']
return parseInt(season)
}
function parseEpisode($) {
const [_, episode] = $('.sub-title')
.text()
.trim()
.match(/Avsnitt (\d+)/) || [null, '']
return parseInt(episode)
}
function parseSubTitle($) {
const [_, subtitle] = $('.sub-title').text().trim().split(': ')
return subtitle
}
function parseCategory($) {
return $('.extras > dt:contains(Kategori)').next().text().trim().split(' / ')
}
function parseActors($) {
return $('.cast > li')
.map((i, el) => {
return $(el).find('.name').text().trim()
})
.get()
}
function parseDescription($) {
return $('.info > p').text().trim()
}
function parseTitle($item) {
return $item('h3').text()
}
function parseStart($item, date) {
const time = $item('.time')
return dayjs.utc(`${date.format('YYYY-MM-DD')} ${time}`, 'YYYY-MM-DD HH:mm')
}
function parseItems(content) {
const $ = cheerio.load(content)
return $('.program').toArray()
}

View File

@@ -0,0 +1,78 @@
// npm run channels:parse -- --config=./sites/tv24.se/tv24.se.config.js --output=./sites/tv24.se/tv24.se.channels.xml
// npx epg-grabber --config=sites/tv24.se/tv24.se.config.js --channels=sites/tv24.se/tv24.se.channels.xml --output=guide.xml --days=2
const { parser, url } = require('./tv24.se.config.js')
const fs = require('fs')
const path = require('path')
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-08-26', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: 'svt1',
xmltv_id: 'SVT1.se'
}
it('can generate valid url', () => {
expect(url({ channel, date })).toBe('https://tv24.se/x/channel/svt1/0/2022-08-26')
})
it('can parse response', async () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content.html'))
axios.get.mockImplementation((url, data) => {
if (url === 'https://tv24.se/x/b/rh7f40-1hkm/0/0') {
return Promise.resolve({
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program1.json')))
})
} else if (url === 'https://tv24.se/x/b/rh9dhc-1hkm/0/0') {
return Promise.resolve({
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program2.json')))
})
} else {
return Promise.resolve({ data: '' })
}
})
let results = await parser({ content, date })
results = results.map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(results[0]).toMatchObject({
start: '2022-08-26T04:00:00.000Z',
stop: '2022-08-26T07:10:00.000Z',
title: 'Morgonstudion',
icon: 'https://jrsy.tmsimg.com/assets/p14436175_i_h9_ad.jpg',
description:
'Dagens viktigaste nyheter och analyser med ständiga uppdateringar. Vi sänder direkt inrikes- och utrikesnyheter inklusive sport, kultur och nöje. Dessutom intervjuer med aktuella gäster. Nyhetssammanfattningar varje kvart med start kl 06.00.',
actors: ['Carolina Neurath', 'Karin Magnusson', 'Pelle Nilsson', 'Ted Wigren']
})
expect(results[33]).toMatchObject({
start: '2022-08-27T05:20:00.000Z',
stop: '2022-08-27T05:50:00.000Z',
title: 'Uppdrag granskning',
icon: 'https://jrsy.tmsimg.com/assets/p22818697_e_h9_aa.jpg',
description:
'När samtliga sex män frias för ännu en skjutning växer vreden inom polisen. Ökningen av skjutningar i Sverige ligger i topp i Europa - och nu är våldsspiralen på väg mot ett nattsvart rekord. Hur blev Sverige landet där mördare går fria?',
actors: ['Karin Mattisson', 'Ali Fegan'],
category: ['Dokumentär', 'Samhällsfrågor'],
season: 23,
episode: 5,
sub_title: 'Där mördare går fria'
})
})
it('can handle empty guide', async () => {
const result = await parser({ content: '' })
expect(result).toMatchObject([])
})