From f0bb546a90aa8a7fbd6b2c1dcf88360fbe9182d3 Mon Sep 17 00:00:00 2001 From: Carlinhos027 <111005658+Carlinhos027@users.noreply.github.com> Date: Fri, 28 Mar 2025 16:42:48 +0100 Subject: [PATCH 01/44] Update tg.m3u --- streams/tg.m3u | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/streams/tg.m3u b/streams/tg.m3u index c364d07df..d5c15c9dc 100644 --- a/streams/tg.m3u +++ b/streams/tg.m3u @@ -1,12 +1,10 @@ #EXTM3U #EXTINF:-1 tvg-id="ACTV.tg",AC TV (480p) [Not 24/7] -https://ssh101.bozztv.com/ssh101/actvstream/playlist.m3u8 -#EXTINF:-1 tvg-id="Direct7TV.tg",Direct 7 TV (720p) -https://helga.iptv2022.com/DIRECT__7/index.m3u8 +https://ssh101stream.ssh101.com/akamaissh101/ssh101/actvstream/playlist.m3u8 +#EXTINF:-1 tvg-id="ChandelTV.tg",Chandel TV (720p) +https://kali.vdopanel.com:3660/live/vj6jlam1rlive.m3u8 #EXTINF:-1 tvg-id="DynamicGospelTV.tg",Dynamic Gospel TV (480p) [Not 24/7] -https://ssh101.bozztv.com/ssh101/tvdynamicstream/playlist.m3u8 -#EXTINF:-1 tvg-id="LNTV.tg",LNTV (720p) -https://helga.iptv2022.com/sh/LNTV/index.m3u8 +https://ssh101stream.ssh101.com/akamaissh101/ssh101/tvdynamicstream/playlist.m3u8 #EXTINF:-1 tvg-id="NWEconomie.tg",NW Economie (576p) https://hls.newworldtv.com/nw-economie/video/live.m3u8 #EXTINF:-1 tvg-id="NWInfo2.tg",NW Info 2 EN (576p) @@ -21,7 +19,7 @@ https://cdn140m.panaccess.com/HLS/RTVJA/index.m3u8 https://smatogo.tv:89/smatogo/smatogo.m3u8 #EXTINF:-1 tvg-id="SOSDocteurTV.tg",SOS Docteur TV (480p) [Not 24/7] https://wmoy82n4y2a7-hls-live.5centscdn.com/sostv/live.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="TV2.tg",TV 2 (720p) [Not 24/7] -https://helga.iptv2022.com/sh/TV2/index.m3u8 +#EXTINF:-1 tvg-id="TelevisionEspoir47.tg",Television Espoir 47 (720p) +https://cdn140m.panaccess.com/HLS/Espoir47/index.m3u8 #EXTINF:-1 tvg-id="TVT.tg",TVT (720p) [Not 24/7] http://69.64.57.208/tvt/playlist.m3u8 From e046cfd3b27e01c609e432660175e26128c04713 Mon Sep 17 00:00:00 2001 From: Carlinhos027 <111005658+Carlinhos027@users.noreply.github.com> Date: Sun, 6 Apr 2025 20:29:45 +0200 Subject: [PATCH 02/44] Update bf.m3u --- streams/bf.m3u | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/streams/bf.m3u b/streams/bf.m3u index 618ec8ab8..6ec5f0c18 100644 --- a/streams/bf.m3u +++ b/streams/bf.m3u @@ -4,12 +4,8 @@ https://547f72e6652371c3.mediapackage.us-east-1.amazonaws.com/out/v1/7e66f389bec #EXTINF:-1 tvg-id="BurkinaInfoTV.bf",Burkina Info TV (540p) http://69.64.57.208/burkinainfo/index.m3u8 #EXTINF:-1 tvg-id="ImpactTV.bf",Impact TV (360p) [Not 24/7] -https://edge20.vedge.infomaniak.com/livecast/ik:fluxtvimpact/manifest.m3u8 -#EXTINF:-1 tvg-id="RTB.bf",RTB [Not 24/7] -https://edge20.vedge.infomaniak.com/livecast/ik:rtblive1_8/manifest.m3u8 +https://edge12.vedge.infomaniak.com/livecast/ik:emcv/manifest.m3u8 #EXTINF:-1 tvg-id="RTB.bf",RTB (360p) [Not 24/7] -https://edge.vedge.infomaniak.com/livecast/ik:rtbtvlive1/manifest.m3u8 +https://edge12.vedge.infomaniak.com/livecast/ik:rtblive1_8/manifest.m3u8 #EXTINF:-1 tvg-id="RTBZenith.bf",RTB Zénith (360p) [Geo-blocked] -https://edge20.vedge.infomaniak.com/livecast/ik:zenith/playlist.m3u8 -#EXTINF:-1 tvg-id="TVAlHouda.bf",TV Al Houda (720p) [Not 24/7] -https://ssh101.bozztv.com/ssh101/alhoudatv/playlist.m3u8 +https://edge20.vedge.infomaniak.com/livecast/ik:la2/manifest.m3u8 From 19fa876c47663dc5df249cf186cb5cd2d84d5f7c Mon Sep 17 00:00:00 2001 From: Carlinhos027 <111005658+Carlinhos027@users.noreply.github.com> Date: Sun, 6 Apr 2025 20:38:33 +0200 Subject: [PATCH 03/44] Update au.m3u --- streams/au.m3u | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/streams/au.m3u b/streams/au.m3u index 49227d393..8882b720c 100644 --- a/streams/au.m3u +++ b/streams/au.m3u @@ -65,6 +65,12 @@ https://9now-livestreams-fhd-t.akamaized.net/u/prod/simulcast/syd/ch9/hls/r1/ind https://i.mjh.nz/10-nsw.m3u8 #EXTINF:-1 tvg-id="Channel44.au",Channel 44 (480p) https://d1k6kax80wecy5.cloudfront.net/WFqZJc/index.m3u8 +#EXTINF:-1 tvg-id="CTBPerth.au",CTB Perth (720p) +https://live.ctbperth.net.au/hls/0/stream.m3u8 +#EXTINF:-1 tvg-id="CTBPerthMovies.au",CTB Perth Movies (720p) +https://movies.ctbperth.net.au/hls/stream.m3u8 +#EXTINF:-1 tvg-id="",CTB Perth News (720p) +https://news.ctbperth.net.au/hls/stream.m3u8 #EXTINF:-1 tvg-id="ExpoChannel.au",Expo Channel (360p) https://tvsnhlslivetest.akamaized.net/hls/live/2034711/EXPO-MSL4/master.m3u8 #EXTINF:-1 tvg-id="GOOD.au",GOOD. From 3fbaa4690d958c87dcb9e01a9e5dea76ab5a5cf7 Mon Sep 17 00:00:00 2001 From: Carlinhos027 <111005658+Carlinhos027@users.noreply.github.com> Date: Sun, 6 Apr 2025 20:59:08 +0200 Subject: [PATCH 04/44] Update sn.m3u --- streams/sn.m3u | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/streams/sn.m3u b/streams/sn.m3u index 72d16e88b..3577e467e 100644 --- a/streams/sn.m3u +++ b/streams/sn.m3u @@ -5,26 +5,14 @@ https://stream.sen-gt.com/A2iMusic/myStream/playlist.m3u8 https://stream.sen-gt.com/A2iNaija/myStream/playlist.m3u8 #EXTINF:-1 tvg-id="A2iReligion.sn",A2i Religion (720p) [Not 24/7] https://stream.sen-gt.com/A2iReligion/myStream/playlist.m3u8 -#EXTINF:-1 tvg-id="AlFaydaTV.sn",Al Fayda TV (720p) -https://helga.iptv2022.com/sh/AL_AYDA_TV_DAKAR/index.m3u8 #EXTINF:-1 tvg-id="AmaniTV.sn",Amani TV (1080p) [Not 24/7] https://goccn.cloud/hls/amanitv/index.m3u8 -#EXTINF:-1 tvg-id="",Chabiba TV (360p) [Not 24/7] +#EXTINF:-1 tvg-id="ChabibaTV.sn",Chabiba TV (360p) [Not 24/7] https://endour.net/hls/RUgLAPCbPdF5oPSTX2Hvl/index.m3u8 #EXTINF:-1 tvg-id="CNMTV.sn",CNM TV (720p) [Not 24/7] https://stream.sen-gt.com/cnmtv/myStream/playlist.m3u8 -#EXTINF:-1 tvg-id="DiamaTV.sn",Diama TV (1080p) -https://helga.iptv2022.com/Diama_TV/index.m3u8 -#EXTINF:-1 tvg-id="DiamagueneTV.sn",Diamaguene TV (480p) [Not 24/7] -https://helga.iptv2022.com/sh/DIAMAGUENE_TV/index.m3u8 -#EXTINF:-1 tvg-id="GrandYoffTV.sn",Grand Yoff TV (720p) -https://helga.iptv2022.com/sh/Grand_Yoff_TV/index.m3u8 #EXTINF:-1 tvg-id="IMTV.sn",Islam TV Sénégal (720p) https://tv.imediasn.com/hls/live.m3u8 -#EXTINF:-1 tvg-id="KeurNdananeTV.sn",Keur Ndanane TV (720p) -https://helga.iptv2022.com/sh/KN_TV/index.m3u8 -#EXTINF:-1 tvg-id="LeralTV.sn",Leral TV (480p) -https://helga.iptv2022.com/sh/Leral/index.m3u8 #EXTINF:-1 tvg-id="LougaTV.sn",Louga TV (480p) https://stream.sen-gt.com/Mbacke/myStream/playlist.m3u8 #EXTINF:-1 tvg-id="MADERTV.sn",Mader TV (720p) @@ -65,3 +53,5 @@ https://helga.iptv2022.com/sh/Tamasheq_TV/index.m3u8 http://69.64.57.208/walftv/playlist.m3u8 #EXTINF:-1 tvg-id="YakaarTV.sn",Yakaar TV (1080p) https://strhls.streamakaci.tv/yakaartv/yakaartv-multi/playlist.m3u8 +#EXTINF:-1 tvg-id="YegleTV.sn",Yeglé TV (1080p) +https://endour.net/hls/Yegle-tv/index.m3u8 From 12bf5e5c03f18f4d72aa381f40aeedcf82dd876f Mon Sep 17 00:00:00 2001 From: Carlinhos027 <111005658+Carlinhos027@users.noreply.github.com> Date: Sun, 6 Apr 2025 20:59:33 +0200 Subject: [PATCH 05/44] Update sn.m3u --- streams/sn.m3u | 2 -- 1 file changed, 2 deletions(-) diff --git a/streams/sn.m3u b/streams/sn.m3u index 3577e467e..f6d18d22f 100644 --- a/streams/sn.m3u +++ b/streams/sn.m3u @@ -47,8 +47,6 @@ https://streamspace.live/hls/tempoafrictv/livestream.m3u8 http://69.64.57.208/tfm/playlist.m3u8 #EXTINF:-1 tvg-id="TFM.sn",TFM (720p) https://raw.githubusercontent.com/azgaresncf/strm2hls/main/streams/TFM.m3u8 -#EXTINF:-1 tvg-id="TMtv.sn",TM.tv (360p) -https://helga.iptv2022.com/sh/Tamasheq_TV/index.m3u8 #EXTINF:-1 tvg-id="WalfTV.sn",Walf TV (360p) http://69.64.57.208/walftv/playlist.m3u8 #EXTINF:-1 tvg-id="YakaarTV.sn",Yakaar TV (1080p) From c31323b9cb46ecdf6a498e144912c191d567e1ed Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:11:34 +0000 Subject: [PATCH 06/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14458295925) workflow. From 5c9e259652eec04fd4fb116479a06f9c03c53662 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Tue, 15 Apr 2025 00:11:34 +0000 Subject: [PATCH 07/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14458295925) workflow. From 413063e6ff6d06c31ca37704d02682040a12b18b Mon Sep 17 00:00:00 2001 From: marvi91 Date: Tue, 15 Apr 2025 21:02:28 +0200 Subject: [PATCH 08/44] Update lu.m3u --- streams/lu.m3u | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/streams/lu.m3u b/streams/lu.m3u index b384d987f..c1afc1387 100644 --- a/streams/lu.m3u +++ b/streams/lu.m3u @@ -6,7 +6,7 @@ https://media02.webtvlive.eu/chd-edge/smil:chamber_tv_hd.smil/playlist.m3u8 #EXTINF:-1 tvg-id="DudelangeTV.lu",Dudelange TV (720p) https://streamer20.multimedia.blue/Eltrona/DudelangeTV/playlist.m3u8 #EXTINF:-1 tvg-id="eldoTV.lu",eldo.TV (1080p) -https://eldo-streaming.eldo.lu/eldotv/smil:eldotv.smil/playlist.m3u8 +https://stream.eldo.lu/data/live/tele/eldotv/1080p.m3u8 #EXTINF:-1 tvg-id="HesperTV.lu",Hesper TV (1080p) https://streamer20.multimedia.blue/Eltrona/HesperangeTV/playlist.m3u8 #EXTINF:-1 tvg-id="LuxeTV.lu",Luxe TV (1080p) From 0a0c674d763105e00821143843657e3aecb24d29 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 00:11:31 +0000 Subject: [PATCH 09/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14481800403) workflow. closes #21108, closes #21012, closes #21009, closes #20873, closes #21207, closes #21198, closes #21197, closes #21196, closes #21195, closes #21194, closes #21193, closes #21192, closes #21191, closes #21190, closes #21189, closes #21188, closes #21187, closes #21186, closes #21185, closes #21184, closes #21183, closes #21182, closes #21181, closes #21180, closes #21179, closes #21178, closes #21177, closes #21176, closes #21175, closes #21174, closes #21173, closes #21172, closes #21170, closes #21169, closes #21168, closes #21167, closes #21166, closes #21165, closes #21164, closes #21163, closes #21162, closes #21161, closes #21160, closes #21159, closes #21158, closes #21157, closes #21156, closes #21155, closes #21154, closes #21153, closes #21152, closes #21151, closes #21149, closes #21148, closes #21147, closes #21146, closes #21145, closes #21144, closes #21143, closes #21142, closes #21141, closes #21140, closes #21139, closes #21138, closes #21137, closes #21136, closes #21135, closes #21134, closes #21133, closes #21132, closes #21131, closes #21129, closes #21128, closes #21127, closes #21126, closes #21125, closes #21124, closes #21123, closes #21122, closes #21121, closes #21120, closes #21119, closes #21118, closes #21117, closes #21116, closes #21115, closes #21114, closes #21113, closes #21112, closes #21111, closes #21110, closes #21109, closes #21025 --- streams/am_vnet.m3u | 26 -------- streams/bo.m3u | 4 ++ streams/br.m3u | 8 +++ streams/de.m3u | 5 -- streams/es_samsung.m3u | 2 - streams/gr.m3u | 2 - streams/ir.m3u | 2 + streams/jp.m3u | 4 -- streams/kr.m3u | 2 - streams/pl.m3u | 142 +++++++++++++++++++++++++++++++++++++++++ streams/ps.m3u | 2 + streams/pt.m3u | 6 ++ streams/ro.m3u | 3 + streams/ru.m3u | 19 ------ streams/ru_bonustv.m3u | 4 -- streams/ru_smotrim.m3u | 4 -- streams/tr.m3u | 2 + streams/us.m3u | 10 +++ 18 files changed, 179 insertions(+), 68 deletions(-) diff --git a/streams/am_vnet.m3u b/streams/am_vnet.m3u index eb314add2..9188290eb 100644 --- a/streams/am_vnet.m3u +++ b/streams/am_vnet.m3u @@ -5,32 +5,8 @@ http://stream01.vnet.am/AmediaPremium/mono.m3u8 http://stream02.vnet.am/Kinoman/mono.m3u8 #EXTINF:-1 tvg-id="FightBox.nl",FightBox http://stream01.vnet.am/Fightbox/mono.m3u8 -#EXTINF:-1 tvg-id="Fox.ru",Fox -https://stream01.vnet.am/Fox/mono.m3u8 -#EXTINF:-1 tvg-id="Hollywood.ru",Hollywood -http://stream01.vnet.am/ParamountChannel/mono.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.ru",National Geographic Wild -http://stream02.vnet.am/NatGeoWild/mono.m3u8 -#EXTINF:-1 tvg-id="NicktoonsCIS.ru",Nicktoons -https://stream01.vnet.am/Boomerang/mono.m3u8 -#EXTINF:-1 tvg-id="BoksTV.ru",Бокс ТВ -http://stream01.vnet.am/BoksTv/mono.m3u8 #EXTINF:-1 tvg-id="Detskimir.ru",Детский мир http://stream01.vnet.am/CartoonNetwork/mono.m3u8 -#EXTINF:-1 tvg-id="Domkino.ru",Дом Кино -https://stream01.vnet.am/DomKino/mono.m3u8 -#EXTINF:-1 tvg-id="India.ru",Индия -https://stream01.vnet.am/ZeeTV/mono.m3u8 -#EXTINF:-1 tvg-id="CarouselInternational.ru",Карусель Int -http://stream02.vnet.am/Karusel/mono.m3u8 -#EXTINF:-1 tvg-id="KinopremyeraHD.ru",Кинопремьера HD -http://stream02.vnet.am/Kinopremera/mono.m3u8 -#EXTINF:-1 tvg-id="KukhnyaTV.ru",Кухня ТВ HD -http://stream01.vnet.am/KukhnyaTv/mono.m3u8 -#EXTINF:-1 tvg-id="MuzTV.ru",Муз ТВ -http://stream01.vnet.am/MuzTv/mono.m3u8 -#EXTINF:-1 tvg-id="Mult.ru",Мульт -http://stream01.vnet.am/Mult/mono.m3u8 #EXTINF:-1 tvg-id="Nauka.ru",Наука 2.0 http://stream01.vnet.am/Nauka/mono.m3u8 #EXTINF:-1 tvg-id="NTVMir.ru",НТВ Мир @@ -41,7 +17,5 @@ http://stream01.vnet.am/Evrika/mono.m3u8 http://stream01.vnet.am/Perec/mono.m3u8 #EXTINF:-1 tvg-id="FridayInternational.ru",Пятница International https://stream01.vnet.am/Pyatnica/mono.m3u8 -#EXTINF:-1 tvg-id="STSkids.ru",СТС Kids -http://stream02.vnet.am/DisneyChannel/mono.m3u8 #EXTINF:-1 tvg-id="Telecafe.ru",Телекафе http://stream01.vnet.am/Telekafe/mono.m3u8 diff --git a/streams/bo.m3u b/streams/bo.m3u index eba10f679..6855b3ac3 100644 --- a/streams/bo.m3u +++ b/streams/bo.m3u @@ -155,3 +155,7 @@ https://fl1004.bozztv.com/ssh101/zoytvsports5/index.m3u8 https://fl1004.bozztv.com/ssh101/zoytvturcas/index.m3u8 #EXTINF:-1 tvg-id="BoliviaTV.bo",Bolivia TV (720p) https://5fe2654d6127d.streamlock.net:443/boliviatv/videoboliviatv/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVSports1.bo",Zoy TV Sports 1 (1080p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvsports/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVTurcas.bo",Zoy TV Turcas (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvturcas/playlist.m3u8 diff --git a/streams/br.m3u b/streams/br.m3u index a56c35599..29668ec3a 100644 --- a/streams/br.m3u +++ b/streams/br.m3u @@ -599,3 +599,11 @@ https://video01.kshost.com.br/seap8272/seap8272/playlist.m3u8 http://painelvj.com.br/tvaguaboa2/tvaguaboa2.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="WTVBrasil.br",WTV Brasil (720p) https://stmv1.srvstm.com/wtvbrasil/wtvbrasil/playlist.m3u8 +#EXTINF:-1 tvg-id="TVCancaoNova.br",TV Cancao Nova (720p) +https://5c65286fc6ace.streamlock.net/cancaonova/CancaoNova.stream_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="TVMAX.br",TV MAX (720p) +https://5cf4a2c2512a2.streamlock.net/tvmax/tvmax/playlist.m3u8 +#EXTINF:-1 tvg-id="TVBrasil.br",TV Brasil (720p) +https://tvbrasil-stream.ebc.com.br/index.m3u8 +#EXTINF:-1 tvg-id="RedeTV.br",Rede TV! (720p) +https://cdn.jmvstream.com/w/AVJ-15235/playlist/playlist.m3u8 diff --git a/streams/de.m3u b/streams/de.m3u index 2a5a3f560..6df857b60 100644 --- a/streams/de.m3u +++ b/streams/de.m3u @@ -365,17 +365,12 @@ https://live.creacast.com/rockland-radio/smil:rockland-radio.smil/playlist.m3u8 https://rt-ger.rttv.com/dvr/rtdeutsch/playlist.m3u8 #EXTINF:-1 tvg-id="RTDE.de",RT DE (1080p) [Not 24/7] https://rt-ger.rttv.com/live/rtdeutsch/playlist.m3u8 -#EXTINF:-1 tvg-id="RTL.de",RTL (576p) -https://s6.hopslan.com/rtlc1/tracks-v1a1/mono.m3u8 #EXTINF:-1 tvg-id="RTL.de",RTL (Germany) (576p) http://178.219.128.68:64888/RTL #EXTINF:-1 tvg-id="RTLSuper.de",RTL Super (576p) http://178.219.128.68:64888/SUPERTL #EXTINF:-1 tvg-id="RTLZwei.de",RTL Zwei (1080p) http://178.219.128.68:64888/RTL2 -#EXTINF:-1 tvg-id="RTLZwei.de" http-referrer="https://www.2ix2.com/rtl2-live/",RTL Zwei (576p) -#EXTVLCOPT:http-referrer=https://www.2ix2.com/rtl2-live/ -https://s6.hopslan.com/rtl2x1/index.m3u8 #EXTINF:-1 tvg-id="SaarlandFernsehen1.de",Saarland Fernsehen 1 (1080p) https://saarland1.iptv-playoutcenter.de/saarland1/saarland1.stream_1/playlist.m3u8 #EXTINF:-1 tvg-id="SaarlandFernsehen2.de",Saarland Fernsehen 2 (720p) [Not 24/7] diff --git a/streams/es_samsung.m3u b/streams/es_samsung.m3u index 00105f578..159547501 100644 --- a/streams/es_samsung.m3u +++ b/streams/es_samsung.m3u @@ -3,8 +3,6 @@ https://dhx-caillou-1-es.samsung.wurl.tv/playlist.m3u8 #EXTINF:-1 tvg-id="EuronewsSpanish.fr",Euronews en Español (720p) https://rakuten-euronews-4-es.samsung.wurl.tv/manifest/playlist.m3u8 -#EXTINF:-1 tvg-id="FashionTVEurope.fr",Fashion TV (Spain) (1080p) -https://fashiontv-fashiontv-2-es.samsung.wurl.tv/manifest/playlist.m3u8 #EXTINF:-1 tvg-id="",iHola Play https://rakuten-hola-2-es.samsung.wurl.tv/playlist.m3u8 #EXTINF:-1 tvg-id="PeopleAreAwesome.us",People are Awesome diff --git a/streams/gr.m3u b/streams/gr.m3u index dcc6444bb..78fb449f7 100644 --- a/streams/gr.m3u +++ b/streams/gr.m3u @@ -67,8 +67,6 @@ http://live.streams.ovh:1935/tvcreta/tvcreta/playlist.m3u8 http://81.171.10.42:554/liveD/DStream.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="DiavataTV.gr",Diavata TV (720p) https://ssh101.bozztv.com/ssh101/diavatatvweb/playlist.m3u8 -#EXTINF:-1 tvg-id="DiavataTV.gr",Diavata TV (720p) -https://video.streams.ovh:1936/DiavataTV/DiavataTV/playlist.m3u8 #EXTINF:-1 tvg-id="DiktyoTV.gr",Diktyo TV (576p) https://5d00db0e0fcd5.streamlock.net/7322/7322/playlist.m3u8 #EXTINF:-1 tvg-id="DipsoTV.gr",Dipso TV (720p) [Not 24/7] diff --git a/streams/ir.m3u b/streams/ir.m3u index 4d7c35b2a..93a1dcaf2 100644 --- a/streams/ir.m3u +++ b/streams/ir.m3u @@ -71,3 +71,5 @@ https://hls.nejat.live/hls/stream.m3u8 https://hls.vox1.live/hls/stream.m3u8 #EXTINF:-1 tvg-id="YourTimeTV.ir",YourTime TV (720p) [Not 24/7] https://hls.yourtime.live/hls/stream.m3u8 +#EXTINF:-1 tvg-id="VarzeshTV.ir",Varzesh TV (480p) +https://stream.sainaertebat.com/hls2/varzeshtest.m3u8 diff --git a/streams/jp.m3u b/streams/jp.m3u index 33e9a1736..d698488a8 100644 --- a/streams/jp.m3u +++ b/streams/jp.m3u @@ -32,10 +32,6 @@ https://cdn.skygo.mn/live/disk1/NHK_World_Premium/HLSv3-FTA/NHK_World_Premium.m3 https://master.nhkworld.jp/nhkworld-tv/playlist/live.m3u8 #EXTINF:-1 tvg-id="JOAXDTV.jp",Nippon TV (540p) [Not 24/7] https://ntv4.mov3.co/hls/ntv.m3u8 -#EXTINF:-1 tvg-id="NTVNEWS24.jp",NTV News24 (480p) -https://n24-cdn-live.ntv.co.jp/ch01/index.m3u8 -#EXTINF:-1 tvg-id="NTVNEWS24.jp",NTV News24 (480p) -https://n24-cdn-live.ntv.co.jp/ch02/index.m3u8 #EXTINF:-1 tvg-id="QVC.jp",QVC Japan (720p) https://cdn-live1.qvc.jp/iPhone/1501/1501.m3u8 #EXTINF:-1 tvg-id="ShopChannel.jp",Shop Channel (1080p) [Not 24/7] diff --git a/streams/kr.m3u b/streams/kr.m3u index 96b6a77ed..b76ce9137 100644 --- a/streams/kr.m3u +++ b/streams/kr.m3u @@ -105,8 +105,6 @@ http://kbs-dokdo.gscdn.com/dokdo_300/dokdo_300.stream/playlist.m3u8 http://mytv.dothome.co.kr/ch/catv/4.php #EXTINF:-1 tvg-id="KBSWorld.kr",KBS World http://mytv.dothome.co.kr/ch/catv/7.php -#EXTINF:-1 tvg-id="KBSWorld.kr",KBS World (Vietnamese Subtitles) (720p) -https://livecdn.fptplay.net/sdb/kbs_hls.smil/playlist.m3u8 #EXTINF:-1 tvg-id="KCTV.kr",KCTV 광주 CH05 (720p) [Not 24/7] http://119.77.96.184:1935/chn05/chn05/playlist.m3u8 #EXTINF:-1 tvg-id="KTV.kr",Korea TV (1080p) diff --git a/streams/pl.m3u b/streams/pl.m3u index 7cd563a6f..eb1ae6e28 100644 --- a/streams/pl.m3u +++ b/streams/pl.m3u @@ -828,3 +828,145 @@ https://s-pl-01.mediatool.tv/playout/mupl-abr/index.m3u8 https://s-pl-01.mediatool.tv/playout/sepl-abr/index.m3u8 #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080i) http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/172c116f-0e21-4c80-9146-327a2ee05918.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ecf03eb6-acc5-4c9e-9339-9e6a4fe31d98.ts +#EXTINF:-1 tvg-id="VOD205.pl",VOD 205 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/9dac17c7-98be-4b05-8ef2-038aa3a37cc4.ts +#EXTINF:-1 tvg-id="VOD206.pl",VOD 206 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/4a4bb8f0-c5bc-4001-94ed-1b8d628e097d.ts +#EXTINF:-1 tvg-id="VOD207.pl",VOD 207 (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1e51c6c3-a5a2-4f0e-8482-d1bc9f94d2e5.ts +#EXTINF:-1 tvg-id="VOD208.pl",VOD 208 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ffb9bcf6-96e8-4a7a-9bcd-a32a8b399f5a.ts +#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ced900ec-18e3-4500-be3d-5642227688f7.ts +#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/62d1cae5-4864-4c79-9224-96e4a1dfe9f3.ts +#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6e627418-a319-4d09-a627-4b612193147d.ts +#EXTINF:-1 tvg-id="PowerTV.pl",Power TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ca44c966-c2d9-48a4-aa6c-c22f1c95fd17.ts +#EXTINF:-1 tvg-id="RedCarpetTV.pl",Red Carpet TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6109dcb5-ebdd-41a0-b7f0-0c1ab0c1ddd2.ts +#EXTINF:-1 tvg-id="StarsTV.pl",Stars TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f78056d5-c76b-4ed5-9186-f02217dcfb48.ts +#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/693f29bf-70ac-432d-bed6-458b1ed144e7.ts +#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/9f075b25-a8e2-4801-9ed5-e599c6e281c4.ts +#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a58cea4f-b711-4935-ab88-5848b99d76e2.ts +#EXTINF:-1 tvg-id="SundanceTV.pl",Sundance TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/e02f357c-de0f-461f-9928-949889a786fb.ts +#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0a234f82-e4ff-470e-864c-bfc560b00f6a.ts +#EXTINF:-1 tvg-id="WPTV.pl",WP TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/afd2ddbf-a0f9-481a-8dcd-fcfa8f97939b.ts +#EXTINF:-1 tvg-id="E.pl",E! (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1edbd119-5fef-4b2f-b3ef-7bb9e27a49aa.ts +#EXTINF:-1 tvg-id="TVS.pl",TVS (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a8ddbe08-496f-4aba-9f18-6bef849a01fa.ts +#EXTINF:-1 tvg-id="TVS.pl",TVS (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/38e7bf79-ed62-4242-968d-df18f04181de.ts +#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f9057d34-8caf-4cf6-894d-9e4ca197095e.ts +#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/95b37a9f-4e7f-4c72-9595-5c1b27324cab.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3499eccd-fe22-444a-9129-2975ae097d42.ts +#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/b78c60f0-b186-485a-822c-2ee6822b006f.ts +#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/aef35b7b-ac74-4207-9db9-b1bfae15be28.ts +#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/e0286f10-a4c8-45fb-983c-f6ebec907fd8.ts +#EXTINF:-1 tvg-id="TVOkazje.pl",TV Okazje (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/26e34e37-6cf4-49d8-bcf3-f1a2eac28c57.ts +#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/aeb45398-d540-43df-814d-b9eab064cb13.ts +#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/53c57b24-742a-42d0-ae2b-998408f4c19c.ts +#EXTINF:-1 tvg-id="TV4.pl",TV4 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/85edd39f-d0c7-42ca-b3b4-43c25b427c3a.ts +#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/2b98fc49-f914-4b76-83dc-50a16d039e8f.ts +#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ddd92d16-e9fc-405a-9cde-3b39297dc7db.ts +#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1e84efe5-b400-470a-847d-2ff4e511fdf6.ts +#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6fbc38af-7ef3-4997-a9cd-d95f3adffa10.ts +#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/580e1210-a4e7-4538-a335-ba0778c2a88c.ts +#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/426e3874-1088-452b-86b9-d5ffd907645c.ts +#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f342f17c-f85c-4940-8192-e12f20065006.ts +#EXTINF:-1 tvg-id="PolsatComedyCentralExtra.pl",Polsat Comedy Central Extra (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/dcd9bfb6-3cf1-4ed3-8071-8bb7c5584dd9.ts +#EXTINF:-1 tvg-id="PolsatComedyCentralExtra.pl",Polsat Comedy Central Extra (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/47026565-02f2-49ec-aa83-f0e12630be0d.ts +#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/4b49481c-3ec7-4a54-91e1-4406aec5074e.ts +#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/ab79c293-a2d0-4352-addf-3abd775c056a.ts +#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6be8bf64-18d0-49a0-8da9-a2e93359597f.ts +#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d23ca912-3c76-4384-8609-b3efb74d6860.ts +#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/873595c1-87e1-4acb-a856-021ef40de90d.ts +#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/842750a0-b7fc-4261-bd56-2a68b03c5a27.ts +#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3313df7a-4f5a-49d4-b75a-d3ed161915ca.ts +#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/185dd46e-4702-42ac-84f3-a4ddcfdd9704.ts +#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3623e2ea-d0eb-450e-bdbd-8ba4806553a1.ts +#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0affc19c-ec65-4558-a9a7-07f0445f341a.ts +#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/f13879f3-bcd4-4321-9d62-313670edbd64.ts +#EXTINF:-1 tvg-id="StudioMedTV.pl",StudioMed TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/729629f0-1c3f-4504-a229-17cab8264f6d.ts +#EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a221dbe9-fe9c-448b-ac03-c888235c32f9.ts +#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/cd50060a-0ab8-42c4-a245-473fab0e27a1.ts +#EXTINF:-1 tvg-id="TVC.pl",TVC (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/23d51aa6-9daa-45d5-857f-a73f741f0655.ts +#EXTINF:-1 tvg-id="AntenaHD.pl",Antena HD (576p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/648835f7-46e6-4b32-bfae-2536848f708d.ts +#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/c7eebc71-bd18-4042-886c-e9aaefb7477f.ts +#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/3ab29e79-8cf7-4f7b-9f7d-56ac82451e77.ts +#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/1126cb0c-d437-4f64-bd74-e66b085a72ef.ts +#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d19b3e42-40ab-4a06-bfa1-d659d0d0c926.ts +#EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/77234e51-d22e-4941-9644-e4537a9f0691.ts +#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d91afe3f-da34-4537-96b1-02dd5e1dc6eb.ts +#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (540i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/6ac08ec1-579b-4033-ab8e-85cdc83b62fe.ts +#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (576i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/d4cd00a3-60f5-40dc-bfcf-0c5e228d4dc5.ts +#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (360p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/470aea40-e244-4d07-9d03-1305cc51c5eb.ts +#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/47400c2a-f645-47a3-860a-ee745a2ee678.ts +#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/5445b6cd-c1ed-4d3b-be39-55ac3dc85ba8.ts +#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/a8ef46c5-142a-4c2a-bb0d-27fdb7ba3a36.ts +#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/610afe23-79a2-4d0d-b607-dbbe08297b50.ts +#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (720p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/896c4efd-0a92-4b7a-9152-bfba2ecd12ec.ts +#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/5242aace-e131-4449-af51-46207be50da5.ts +#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/00eb3d6b-3ce1-4016-aa67-944190ae0103.ts diff --git a/streams/ps.m3u b/streams/ps.m3u index 9e1999514..c7ddf783e 100644 --- a/streams/ps.m3u +++ b/streams/ps.m3u @@ -48,3 +48,5 @@ https://streaming.zaytonatube.com:8081/ShababFM/shabab/index.m3u8 http://htvint.mada.ps:8889/orient/index.m3u8 #EXTINF:-1 tvg-id="WatarTV.ps",Watar TV (720p) [Not 24/7] https://htvint.mada.ps/orient/index.m3u8 +#EXTINF:-1 tvg-id="NablusTV.ps",Nablus TV (1080p) +https://htvint.mada.ps/nabluslive/index.m3u8 diff --git a/streams/pt.m3u b/streams/pt.m3u index b34a62b3c..904aa678d 100644 --- a/streams/pt.m3u +++ b/streams/pt.m3u @@ -99,3 +99,9 @@ https://video-auth4.iol.pt/live_tvi_reality/live_tvi_reality/edge_servers/tvirea https://video-auth2.iol.pt/live_vmais/live_vmais/edge_servers/vmais-720p/playlist.m3u8 #EXTINF:-1 tvg-id="WayTV.pt",Way TV (1080p) http://213.13.26.11:1935/live/sobrenaturaltv/livestream.m3u8 +#EXTINF:-1 tvg-id="ADBTV.pt",ADB TV (1080p) +https://customer-dxeagripmkqbhyeq.cloudflarestream.com/580c36d77be200bf5c7d3efc06487bd4/manifest/video.m3u8 +#EXTINF:-1 tvg-id="NPCRadioeTV.pt",NPC Radio e TV (720p) +https://stmv1.srvif.com/npc/npc/playlist.m3u8 +#EXTINF:-1 tvg-id="TVI.pt",TVI (720p) +https://raw.githubusercontent.com/ipstreet312/freeiptv/master/ressources/tvipt/sh/tvi.m3u8 diff --git a/streams/ro.m3u b/streams/ro.m3u index 852bd705c..518230122 100644 --- a/streams/ro.m3u +++ b/streams/ro.m3u @@ -249,3 +249,6 @@ https://mn-nl.mncdn.com/tvrtgmures_new/smil:tvrtgmures_new.smil/index.m3u8 https://tvr-tvrtimisoara.cdn.zitec.com/live/tvrtimisoara/main.m3u8 #EXTINF:-1 tvg-id="TVSat.ro",TVSat (576p) [Not 24/7] http://89.38.8.130:39443 +#EXTINF:-1 tvg-id="SuperTV.ro" http-referrer="https://supertv.ro",Super TV (1080i) [Not 24/7] +#EXTVLCOPT:http-referrer=https://supertv.ro +https://live.supertv.ro/live/supertv/playlist.m3u8 diff --git a/streams/ru.m3u b/streams/ru.m3u index 6fd79cf09..65124dbb0 100644 --- a/streams/ru.m3u +++ b/streams/ru.m3u @@ -1,8 +1,4 @@ #EXTM3U -#EXTINF:-1 tvg-id="7tv.ru",7 TV -http://v4.proofix.ru/7tv-live/tracks-v1a1/index.m3u8 -#EXTINF:-1 tvg-id="Channel43.ru",43 канал (Туапсе) (720p) -http://sochinskayatrk.ru/hdtv/hls/43Channel_hd/playlist.m3u8 #EXTINF:-1 tvg-id="360.ru",360° (1080p) [Not 24/7] https://edge2-tv-ll.facecast.io/evacoder_hls_hi/CkxfR1xNUAJwTgtXTBZTAJli/index.m3u8 #EXTINF:-1 tvg-id="360.ru",360° (720p) @@ -21,8 +17,6 @@ http://retj.educom.ru/mosobrtv/tv1/index.m3u8 http://retc.educom.ru/mosobrtv/tv1/index.m3u8 #EXTINF:-1 tvg-id="Pro100TV.ru",Pro100TV https://sirius.greenhosting.ru/Pro100tvRu/video.m3u8 -#EXTINF:-1 tvg-id="",Relax -http://185.57.68.33:8091/232/tracks-v1a1/index.m3u8 #EXTINF:-1 tvg-id="RUTV.ru",RU TV https://hls-03-video.webcaramba.com/rutv/live.m3u8 #EXTINF:-1 tvg-id="RussianMusicBox.ru",Russian MusicBox (1080p) @@ -77,8 +71,6 @@ http://serv24.vintera.tv:8081/vetta/vetta_office/playlist.m3u8 http://tele2dvrnat01-02.cdnvideo.ru/stream/NAT_Volga/hls/1920x1080@4504/playlist.m3u8 #EXTINF:-1 tvg-id="Volgograd24.ru",Волгоград 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/volgograd/russia1-hd/index.m3u8 -#EXTINF:-1 tvg-id="Gorodskoytelekanal.ru",Городской телеканал (Ярославль) (576p) -https://www.gtk.tv/hls/gtyar.m3u8 #EXTINF:-1 tvg-id="GuberniaSamara.ru",Губерния (Самара) (576p) http://live.guberniatv.cdnvideo.ru/guberniatv/guberniatv.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="TVRain.ru",Дождь (1080p) [Geo-blocked] @@ -159,15 +151,8 @@ https://live-ntm13.cdnvideo.ru/ntm13/smil:ntm13.smil/playlist.m3u8 https://peqk71plnjy.a.trbcdn.net/livemaster/w4kz7pki62_nts_tv/playlist.m3u8 #EXTINF:-1 tvg-id="OSN.ru",ОСН http://osnmedia.servicecdn.ru/streams/17603_88089/playlist.m3u8 -#EXTINF:-1 tvg-id="OstrosyuzhetnoyeHD.ru",Остросюжетное HD -http://213.172.73.133:8081/nimble_live/9009_Остросюжетное_HD/playlist.m3u8 #EXTINF:-1 tvg-id="ChannelOne.ru",Первый канал https://edge1.1internet.tv/dash-live2/streams/1tv-dvr/1tvdash.mpd -#EXTINF:-1 tvg-id="Pobeda.ru" http-referrer="https://pobeda.tv/",Победа (720p) -#EXTVLCOPT:http-referrer=https://pobeda.tv/ -https://pkvc-hls3.cdnvideo.ru/Pobeda/smil:Pobeda.smil/chunklist_b5128000_slru.m3u8 -#EXTINF:-1 tvg-id="PremialnoeHD.ru",Премиальное HD -http://213.172.73.133:8081/nimble_live/9008_Премиальное_HD/playlist.m3u8 #EXTINF:-1 tvg-id="Prima.ru",Прима (1080p) https://tele2dvrnat01-02.cdnvideo.ru/stream/NAT_Prima/hls/index.m3u8 #EXTINF:-1 tvg-id="GovoritMoskva.ru",Радио Говорит Москва (404p) [Not 24/7] @@ -202,14 +187,10 @@ https://sitv.ru/hls/stv.m3u8 http://45.67.57.9:8080/new/new/playlist.m3u8 #EXTINF:-1 tvg-id="SvoyoTV.ru",Своё HD http://live.stv24.tv:8080/svoetv/HQ_video.m3u8 -#EXTINF:-1 tvg-id="Solnce.ru",Солнце -http://tv.mediacdn.ru/live/disney/playlist.m3u8 #EXTINF:-1 tvg-id="Soyuz.ru",Союз (576p) https://hls-tvsoyuz.cdnvideo.ru/tvsoyuz/soyuz/playlist.m3u8 #EXTINF:-1 tvg-id="StranaFM.ru",Страна FM (720p) [Not 24/7] http://live.stranafm.cdnvideo.ru/stranafm/stranafm_hd.sdp/playlist.m3u8 -#EXTINF:-1 tvg-id="STRK.ru",СТРК (720p) [Not 24/7] -http://sochinskayatrk.ru/hdtv/hls/strc_hd/playlist.m3u8 #EXTINF:-1 tvg-id="Surgut24.ru",Сургут 24 (720p) [Not 24/7] https://video1.in-news.ru/c24/index.m3u8 #EXTINF:-1 tvg-id="TVK.ru",ТВК 24 (576p) diff --git a/streams/ru_bonustv.m3u b/streams/ru_bonustv.m3u index 6f8c646d3..9791e65a8 100644 --- a/streams/ru_bonustv.m3u +++ b/streams/ru_bonustv.m3u @@ -1,6 +1,4 @@ #EXTM3U -#EXTINF:-1 tvg-id="9Volna.ru",9 Волна (Черкесск) -http://cdn-01.bonus-tv.ru/9volna/playlist.m3u8 #EXTINF:-1 tvg-id="Channel12.ru",12 канал https://12channel.bonus-tv.ru/cdn/12channel_blackout/playlist.m3u8 #EXTINF:-1 tvg-id="Channel12.ru",12 канал (1080p) @@ -65,8 +63,6 @@ https://cdn-01.bonus-tv.ru/prosveschenie_edge/playlist.m3u8 https://radm.mediacdn.ru/cdn/radost/playlist.m3u8 #EXTINF:-1 tvg-id="Salyam.ru",Салям (Уфа) (576p) https://bsttv.bonus-tv.ru/cdn/salyam/playlist.m3u8 -#EXTINF:-1 tvg-id="SanktPeterburg.ru",Санкт-Петербург -https://streamsrv2.tvspb.ru/OTT/playlist.m3u8 #EXTINF:-1 tvg-id="SvoyoTV.ru",Своё ТВ (Ставрополь) https://svoetv.mediacdn.ru/cdn/svoetv/playlist.m3u8 #EXTINF:-1 tvg-id="Sever.ru",Север (Нарьян-Мар) (1080p) diff --git a/streams/ru_smotrim.m3u b/streams/ru_smotrim.m3u index 932284295..1761da3dd 100644 --- a/streams/ru_smotrim.m3u +++ b/streams/ru_smotrim.m3u @@ -3,14 +3,10 @@ https://live-vgtrksmotrim.cdnvideo.ru/vgtrksmotrim/smotrim-live-04-srt.smil/playlist.m3u8 #EXTINF:-1 tvg-id="360News.ru",360° Новости https://live-vgtrksmotrim.cdnvideo.ru/vgtrksmotrim/smotrim-live-03-srt.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="",Thematical Stream 1 -https://vgtrksmotrim.cdnvideo.ru/hls2/givc11_hd/playlist.m3u8 #EXTINF:-1 tvg-id="",Арктика 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/arhangelsk/arktika24-hd/index.m3u8 #EXTINF:-1 tvg-id="",Башкортостан 24 https://vgtrkregion-reg.cdnvideo.ru/vgtrk/ufa/bashkortostan24-hd/index.m3u8 -#EXTINF:-1 tvg-id="Bashkortostan24.ru",Башкортостан 24 (Уфа) -https://vgtrkregion-reg.cdnvideo.ru/vgtrk/ufa/russia1-hd/index.m3u8 #EXTINF:-1 tvg-id="BigAsia.ru",Большая Азия https://live-bigasia.cdnvideo.ru/bigasia/bigasia.smil/playlist.m3u8 #EXTINF:-1 tvg-id="",Вести ФМ diff --git a/streams/tr.m3u b/streams/tr.m3u index 25d22ce0b..a275ed63d 100644 --- a/streams/tr.m3u +++ b/streams/tr.m3u @@ -820,3 +820,5 @@ https://edge.socialsmart.tv/naturaltv/bant1/playlist.m3u8 https://saran-live.ercdn.net/natgeowild/index.m3u8 #EXTINF:-1 tvg-id="NationalGeographicWild.tr",National Geographic Wild (720p) https://tv.arectv29.sbs/live/natgeowild.m3u8 +#EXTINF:-1 tvg-id="NOWTV.tr",NOW TV (720p) +https://uycyyuuzyh.turknet.ercdn.net/nphindgytw/nowtv/nowtv.m3u8 diff --git a/streams/us.m3u b/streams/us.m3u index a15484634..e751dfb3e 100644 --- a/streams/us.m3u +++ b/streams/us.m3u @@ -1010,3 +1010,13 @@ https://fastmedia-yu-gi-oh-1-gb.xiaomi.wurl.tv/playlist.m3u8 https://live.zoomnews.info/live/Zoom_playlist.m3u8 #EXTINF:-1 tvg-id="Laff.us",Laff (480p) http://72.46.118.193/Laff/index.m3u8 +#EXTINF:-1 tvg-id="History2LatinAmerica.us",History 2 Latin America +https://cors-proxy.cooks.fyi/https://streamer1.nexgen.bz/HISTORY2/index.m3u8 +#EXTINF:-1 tvg-id="DidgahTV.us",Didgah TV (576p) +https://media.streambrothers.com:1936/8276/8276/playlist.m3u8 +#EXTINF:-1 tvg-id="TinTV.us",Tin TV (720p) +https://tulixcdn.akamaized.net/tintv6/tintv/tintv/playlist.m3u8 +#EXTINF:-1 tvg-id="RJTV.us",RJTV (720p) +https://rjtvhls.wns.live/hls/stream.m3u8 +#EXTINF:-1 tvg-id="PBCTapeshTV.us",PBC Tapesh TV (480p) +https://iptv.tapesh.tv/tapesh/playlist_mid/index.m3u8 From 8f2c382c1c37ea1a5fdd82b67c4fa0729d3bbdb9 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 16 Apr 2025 00:11:31 +0000 Subject: [PATCH 10/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14481800403) workflow. --- README.md | 252 +++++++++++++++++++++++++++--------------------------- 1 file changed, 126 insertions(+), 126 deletions(-) diff --git a/README.md b/README.md index 93ad85c86..ac0904dc2 100644 --- a/README.md +++ b/README.md @@ -54,35 +54,35 @@ Same thing, but split up into separate files: CategoryChannelsPlaylist - Animation46https://iptv-org.github.io/iptv/categories/animation.m3u + Animation45https://iptv-org.github.io/iptv/categories/animation.m3u Auto14https://iptv-org.github.io/iptv/categories/auto.m3u - Business61https://iptv-org.github.io/iptv/categories/business.m3u + Business60https://iptv-org.github.io/iptv/categories/business.m3u Classic44https://iptv-org.github.io/iptv/categories/classic.m3u - Comedy59https://iptv-org.github.io/iptv/categories/comedy.m3u - Cooking24https://iptv-org.github.io/iptv/categories/cooking.m3u + Comedy60https://iptv-org.github.io/iptv/categories/comedy.m3u + Cooking23https://iptv-org.github.io/iptv/categories/cooking.m3u Culture168https://iptv-org.github.io/iptv/categories/culture.m3u Documentary81https://iptv-org.github.io/iptv/categories/documentary.m3u Education152https://iptv-org.github.io/iptv/categories/education.m3u - Entertainment545https://iptv-org.github.io/iptv/categories/entertainment.m3u + Entertainment541https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u General2346https://iptv-org.github.io/iptv/categories/general.m3u - Kids181https://iptv-org.github.io/iptv/categories/kids.m3u + Kids176https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u - Movies236https://iptv-org.github.io/iptv/categories/movies.m3u + Movies233https://iptv-org.github.io/iptv/categories/movies.m3u Music664https://iptv-org.github.io/iptv/categories/music.m3u - News767https://iptv-org.github.io/iptv/categories/news.m3u + News766https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u Religious692https://iptv-org.github.io/iptv/categories/religious.m3u Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u Shop86https://iptv-org.github.io/iptv/categories/shop.m3u - Sports268https://iptv-org.github.io/iptv/categories/sports.m3u + Sports267https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4721https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4725https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2113https://iptv-org.github.io/iptv/languages/eng.m3u + English2112https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -185,13 +185,13 @@ Same thing, but split up into separate files: Irish7https://iptv-org.github.io/iptv/languages/gle.m3u Isekiri1https://iptv-org.github.io/iptv/languages/its.m3u Italian288https://iptv-org.github.io/iptv/languages/ita.m3u - Japanese70https://iptv-org.github.io/iptv/languages/jpn.m3u + Japanese69https://iptv-org.github.io/iptv/languages/jpn.m3u Javanese3https://iptv-org.github.io/iptv/languages/jav.m3u Kabiyè1https://iptv-org.github.io/iptv/languages/kbp.m3u Kabyle1https://iptv-org.github.io/iptv/languages/kab.m3u Kannada11https://iptv-org.github.io/iptv/languages/kan.m3u Kapampangan1https://iptv-org.github.io/iptv/languages/pam.m3u - Kazakh29https://iptv-org.github.io/iptv/languages/kaz.m3u + Kazakh28https://iptv-org.github.io/iptv/languages/kaz.m3u Khmer22https://iptv-org.github.io/iptv/languages/khm.m3u Khorasani Turkish1https://iptv-org.github.io/iptv/languages/kmz.m3u Kinyarwanda7https://iptv-org.github.io/iptv/languages/kin.m3u @@ -234,15 +234,15 @@ Same thing, but split up into separate files: Papiamento18https://iptv-org.github.io/iptv/languages/pap.m3u Parsi-Dari3https://iptv-org.github.io/iptv/languages/prd.m3u Pashto16https://iptv-org.github.io/iptv/languages/pus.m3u - Persian138https://iptv-org.github.io/iptv/languages/fas.m3u - Polish152https://iptv-org.github.io/iptv/languages/pol.m3u - Portuguese334https://iptv-org.github.io/iptv/languages/por.m3u + Persian139https://iptv-org.github.io/iptv/languages/fas.m3u + Polish160https://iptv-org.github.io/iptv/languages/pol.m3u + Portuguese337https://iptv-org.github.io/iptv/languages/por.m3u Pulaar1https://iptv-org.github.io/iptv/languages/fuc.m3u Quechua1https://iptv-org.github.io/iptv/languages/que.m3u Romanian127https://iptv-org.github.io/iptv/languages/ron.m3u Romany1https://iptv-org.github.io/iptv/languages/rom.m3u Rundi1https://iptv-org.github.io/iptv/languages/run.m3u - Russian279https://iptv-org.github.io/iptv/languages/rus.m3u + Russian261https://iptv-org.github.io/iptv/languages/rus.m3u Saint Lucian Creole French2https://iptv-org.github.io/iptv/languages/acf.m3u Samoan2https://iptv-org.github.io/iptv/languages/smo.m3u Santali1https://iptv-org.github.io/iptv/languages/sat.m3u @@ -252,7 +252,7 @@ Same thing, but split up into separate files: Slovak49https://iptv-org.github.io/iptv/languages/slk.m3u Slovenian13https://iptv-org.github.io/iptv/languages/slv.m3u Somali11https://iptv-org.github.io/iptv/languages/som.m3u - Spanish2070https://iptv-org.github.io/iptv/languages/spa.m3u + Spanish2071https://iptv-org.github.io/iptv/languages/spa.m3u Sranan Tongo3https://iptv-org.github.io/iptv/languages/srn.m3u Swahili24https://iptv-org.github.io/iptv/languages/swa.m3u Swedish16https://iptv-org.github.io/iptv/languages/swe.m3u @@ -286,7 +286,7 @@ Same thing, but split up into separate files: Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u Yue Chinese7https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2889https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2885https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -313,14 +313,14 @@ Same thing, but split up into separate files: 🇦🇫 Afghanistan31https://iptv-org.github.io/iptv/countries/af.m3u - 🇦🇱 Albania42https://iptv-org.github.io/iptv/countries/al.m3u + 🇦🇱 Albania41https://iptv-org.github.io/iptv/countries/al.m3u 🇩🇿 Algeria71https://iptv-org.github.io/iptv/countries/dz.m3u 🇦🇸 American Samoa5https://iptv-org.github.io/iptv/countries/as.m3u - 🇦🇩 Andorra34https://iptv-org.github.io/iptv/countries/ad.m3u + 🇦🇩 Andorra33https://iptv-org.github.io/iptv/countries/ad.m3u 🇦🇴 Angola27https://iptv-org.github.io/iptv/countries/ao.m3u 🇦🇮 Anguilla12https://iptv-org.github.io/iptv/countries/ai.m3u 🇦🇬 Antigua and Barbuda13https://iptv-org.github.io/iptv/countries/ag.m3u - 🇦🇷 Argentina222https://iptv-org.github.io/iptv/countries/ar.m3u + 🇦🇷 Argentina223https://iptv-org.github.io/iptv/countries/ar.m3u       Buenos Aires18https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u       Catamarca1https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u       Chaco3https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u @@ -343,31 +343,31 @@ Same thing, but split up into separate files:       Santa Fe3https://iptv-org.github.io/iptv/subdivisions/ar-s.m3u       Santiago del Estero1https://iptv-org.github.io/iptv/subdivisions/ar-g.m3u       Tucuman2https://iptv-org.github.io/iptv/subdivisions/ar-t.m3u - 🇦🇲 Armenia55https://iptv-org.github.io/iptv/countries/am.m3u + 🇦🇲 Armenia52https://iptv-org.github.io/iptv/countries/am.m3u 🇦🇼 Aruba21https://iptv-org.github.io/iptv/countries/aw.m3u - 🇦🇺 Australia38https://iptv-org.github.io/iptv/countries/au.m3u - 🇦🇹 Austria74https://iptv-org.github.io/iptv/countries/at.m3u - 🇦🇿 Azerbaijan49https://iptv-org.github.io/iptv/countries/az.m3u + 🇦🇺 Australia39https://iptv-org.github.io/iptv/countries/au.m3u + 🇦🇹 Austria73https://iptv-org.github.io/iptv/countries/at.m3u + 🇦🇿 Azerbaijan46https://iptv-org.github.io/iptv/countries/az.m3u 🇧🇸 Bahamas15https://iptv-org.github.io/iptv/countries/bs.m3u 🇧🇭 Bahrain46https://iptv-org.github.io/iptv/countries/bh.m3u 🇧🇩 Bangladesh20https://iptv-org.github.io/iptv/countries/bd.m3u 🇧🇧 Barbados13https://iptv-org.github.io/iptv/countries/bb.m3u - 🇧🇾 Belarus50https://iptv-org.github.io/iptv/countries/by.m3u - 🇧🇪 Belgium71https://iptv-org.github.io/iptv/countries/be.m3u + 🇧🇾 Belarus47https://iptv-org.github.io/iptv/countries/by.m3u + 🇧🇪 Belgium70https://iptv-org.github.io/iptv/countries/be.m3u 🇧🇿 Belize9https://iptv-org.github.io/iptv/countries/bz.m3u 🇧🇯 Benin33https://iptv-org.github.io/iptv/countries/bj.m3u 🇧🇲 Bermuda7https://iptv-org.github.io/iptv/countries/bm.m3u 🇧🇹 Bhutan5https://iptv-org.github.io/iptv/countries/bt.m3u - 🇧🇴 Bolivia127https://iptv-org.github.io/iptv/countries/bo.m3u + 🇧🇴 Bolivia128https://iptv-org.github.io/iptv/countries/bo.m3u       Cochabamba1https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u       La Paz2https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u       Oruro1https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u       Santa Cruz2https://iptv-org.github.io/iptv/subdivisions/bo-s.m3u 🇧🇶 Bonaire5https://iptv-org.github.io/iptv/countries/bq.m3u - 🇧🇦 Bosnia and Herzegovina46https://iptv-org.github.io/iptv/countries/ba.m3u + 🇧🇦 Bosnia and Herzegovina45https://iptv-org.github.io/iptv/countries/ba.m3u 🇧🇼 Botswana24https://iptv-org.github.io/iptv/countries/bw.m3u 🇧🇻 Bouvet Island5https://iptv-org.github.io/iptv/countries/bv.m3u - 🇧🇷 Brazil298https://iptv-org.github.io/iptv/countries/br.m3u + 🇧🇷 Brazil301https://iptv-org.github.io/iptv/countries/br.m3u       Alagoas3https://iptv-org.github.io/iptv/subdivisions/br-al.m3u       Amazonas1https://iptv-org.github.io/iptv/subdivisions/br-am.m3u       Bahia5https://iptv-org.github.io/iptv/subdivisions/br-ba.m3u @@ -391,12 +391,12 @@ Same thing, but split up into separate files:       Sao Paulo24https://iptv-org.github.io/iptv/subdivisions/br-sp.m3u 🇻🇬 British Virgin Islands14https://iptv-org.github.io/iptv/countries/vg.m3u 🇧🇳 Brunei17https://iptv-org.github.io/iptv/countries/bn.m3u - 🇧🇬 Bulgaria63https://iptv-org.github.io/iptv/countries/bg.m3u + 🇧🇬 Bulgaria62https://iptv-org.github.io/iptv/countries/bg.m3u 🇧🇫 Burkina Faso26https://iptv-org.github.io/iptv/countries/bf.m3u 🇧🇮 Burundi24https://iptv-org.github.io/iptv/countries/bi.m3u 🇰🇭 Cambodia35https://iptv-org.github.io/iptv/countries/kh.m3u 🇨🇲 Cameroon55https://iptv-org.github.io/iptv/countries/cm.m3u - 🇨🇦 Canada171https://iptv-org.github.io/iptv/countries/ca.m3u + 🇨🇦 Canada172https://iptv-org.github.io/iptv/countries/ca.m3u       Alberta5https://iptv-org.github.io/iptv/subdivisions/ca-ab.m3u       British Columbia5https://iptv-org.github.io/iptv/subdivisions/ca-bc.m3u       Manitoba3https://iptv-org.github.io/iptv/subdivisions/ca-mb.m3u @@ -413,7 +413,7 @@ Same thing, but split up into separate files: 🇰🇾 Cayman Islands12https://iptv-org.github.io/iptv/countries/ky.m3u 🇨🇫 Central African Republic23https://iptv-org.github.io/iptv/countries/cf.m3u 🇹🇩 Chad24https://iptv-org.github.io/iptv/countries/td.m3u - 🇨🇱 Chile265https://iptv-org.github.io/iptv/countries/cl.m3u + 🇨🇱 Chile266https://iptv-org.github.io/iptv/countries/cl.m3u       Atacama1https://iptv-org.github.io/iptv/subdivisions/cl-at.m3u       Biobio3https://iptv-org.github.io/iptv/subdivisions/cl-bi.m3u       Coquimbo1https://iptv-org.github.io/iptv/subdivisions/cl-co.m3u @@ -424,7 +424,7 @@ Same thing, but split up into separate files:       Nuble3https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u       Valparaiso2https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u 🇨🇳 China143https://iptv-org.github.io/iptv/countries/cn.m3u - 🇨🇴 Colombia193https://iptv-org.github.io/iptv/countries/co.m3u + 🇨🇴 Colombia194https://iptv-org.github.io/iptv/countries/co.m3u       Antioquia1https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u       Atlantico1https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u       Bolivar1https://iptv-org.github.io/iptv/subdivisions/co-bol.m3u @@ -443,19 +443,19 @@ Same thing, but split up into separate files:       Valle del Cauca5https://iptv-org.github.io/iptv/subdivisions/co-vac.m3u 🇰🇲 Comoros60https://iptv-org.github.io/iptv/countries/km.m3u 🇨🇰 Cook Islands5https://iptv-org.github.io/iptv/countries/ck.m3u - 🇨🇷 Costa Rica136https://iptv-org.github.io/iptv/countries/cr.m3u + 🇨🇷 Costa Rica137https://iptv-org.github.io/iptv/countries/cr.m3u       Puntarenas1https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u       San Jose1https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u - 🇭🇷 Croatia62https://iptv-org.github.io/iptv/countries/hr.m3u - 🇨🇺 Cuba67https://iptv-org.github.io/iptv/countries/cu.m3u + 🇭🇷 Croatia61https://iptv-org.github.io/iptv/countries/hr.m3u + 🇨🇺 Cuba68https://iptv-org.github.io/iptv/countries/cu.m3u 🇨🇼 Curacao18https://iptv-org.github.io/iptv/countries/cw.m3u - 🇨🇾 Cyprus73https://iptv-org.github.io/iptv/countries/cy.m3u - 🇨🇿 Czech Republic72https://iptv-org.github.io/iptv/countries/cz.m3u + 🇨🇾 Cyprus72https://iptv-org.github.io/iptv/countries/cy.m3u + 🇨🇿 Czech Republic71https://iptv-org.github.io/iptv/countries/cz.m3u 🇨🇩 Democratic Republic of the Congo60https://iptv-org.github.io/iptv/countries/cd.m3u - 🇩🇰 Denmark58https://iptv-org.github.io/iptv/countries/dk.m3u + 🇩🇰 Denmark57https://iptv-org.github.io/iptv/countries/dk.m3u 🇩🇯 Djibouti63https://iptv-org.github.io/iptv/countries/dj.m3u 🇩🇲 Dominica13https://iptv-org.github.io/iptv/countries/dm.m3u - 🇩🇴 Dominican Republic251https://iptv-org.github.io/iptv/countries/do.m3u + 🇩🇴 Dominican Republic252https://iptv-org.github.io/iptv/countries/do.m3u       Distrito Nacional (Santo Domingo)2https://iptv-org.github.io/iptv/subdivisions/do-01.m3u       El Seibo1https://iptv-org.github.io/iptv/subdivisions/do-08.m3u       La Altagracia2https://iptv-org.github.io/iptv/subdivisions/do-11.m3u @@ -466,32 +466,32 @@ Same thing, but split up into separate files:       Santiago1https://iptv-org.github.io/iptv/subdivisions/do-25.m3u       Valverde1https://iptv-org.github.io/iptv/subdivisions/do-27.m3u 🇹🇱 East Timor10https://iptv-org.github.io/iptv/countries/tl.m3u - 🇪🇨 Ecuador138https://iptv-org.github.io/iptv/countries/ec.m3u + 🇪🇨 Ecuador139https://iptv-org.github.io/iptv/countries/ec.m3u       Azuay1https://iptv-org.github.io/iptv/subdivisions/ec-a.m3u       Loja2https://iptv-org.github.io/iptv/subdivisions/ec-l.m3u       Orellana1https://iptv-org.github.io/iptv/subdivisions/ec-d.m3u 🇪🇬 Egypt92https://iptv-org.github.io/iptv/countries/eg.m3u - 🇸🇻 El Salvador99https://iptv-org.github.io/iptv/countries/sv.m3u + 🇸🇻 El Salvador100https://iptv-org.github.io/iptv/countries/sv.m3u 🇬🇶 Equatorial Guinea27https://iptv-org.github.io/iptv/countries/gq.m3u 🇪🇷 Eritrea23https://iptv-org.github.io/iptv/countries/er.m3u - 🇪🇪 Estonia66https://iptv-org.github.io/iptv/countries/ee.m3u + 🇪🇪 Estonia65https://iptv-org.github.io/iptv/countries/ee.m3u 🇪🇹 Ethiopia27https://iptv-org.github.io/iptv/countries/et.m3u 🇫🇰 Falkland Islands5https://iptv-org.github.io/iptv/countries/fk.m3u 🇫🇴 Faroe Islands1https://iptv-org.github.io/iptv/countries/fo.m3u 🇫🇯 Fiji6https://iptv-org.github.io/iptv/countries/fj.m3u - 🇫🇮 Finland63https://iptv-org.github.io/iptv/countries/fi.m3u + 🇫🇮 Finland62https://iptv-org.github.io/iptv/countries/fi.m3u       Keski-Suomi1https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u       Pohjanmaa1https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u - 🇫🇷 France155https://iptv-org.github.io/iptv/countries/fr.m3u - 🇬🇫 French Guiana18https://iptv-org.github.io/iptv/countries/gf.m3u + 🇫🇷 France154https://iptv-org.github.io/iptv/countries/fr.m3u + 🇬🇫 French Guiana19https://iptv-org.github.io/iptv/countries/gf.m3u 🇵🇫 French Polynesia6https://iptv-org.github.io/iptv/countries/pf.m3u 🇹🇫 French Southern Territories23https://iptv-org.github.io/iptv/countries/tf.m3u 🇬🇦 Gabon28https://iptv-org.github.io/iptv/countries/ga.m3u 🇬🇲 Gambia24https://iptv-org.github.io/iptv/countries/gm.m3u - 🇬🇪 Georgia37https://iptv-org.github.io/iptv/countries/ge.m3u - 🇩🇪 Germany249https://iptv-org.github.io/iptv/countries/de.m3u + 🇬🇪 Georgia36https://iptv-org.github.io/iptv/countries/ge.m3u + 🇩🇪 Germany248https://iptv-org.github.io/iptv/countries/de.m3u 🇬🇭 Ghana42https://iptv-org.github.io/iptv/countries/gh.m3u - 🇬🇷 Greece146https://iptv-org.github.io/iptv/countries/gr.m3u + 🇬🇷 Greece145https://iptv-org.github.io/iptv/countries/gr.m3u       Attiki10https://iptv-org.github.io/iptv/subdivisions/gr-i.m3u       Dytiki Ellada5https://iptv-org.github.io/iptv/subdivisions/gr-g.m3u       Dytiki Makedonia2https://iptv-org.github.io/iptv/subdivisions/gr-c.m3u @@ -503,9 +503,9 @@ Same thing, but split up into separate files:       Thessalia4https://iptv-org.github.io/iptv/subdivisions/gr-e.m3u 🇬🇱 Greenland7https://iptv-org.github.io/iptv/countries/gl.m3u 🇬🇩 Grenada12https://iptv-org.github.io/iptv/countries/gd.m3u - 🇬🇵 Guadeloupe26https://iptv-org.github.io/iptv/countries/gp.m3u + 🇬🇵 Guadeloupe27https://iptv-org.github.io/iptv/countries/gp.m3u 🇬🇺 Guam7https://iptv-org.github.io/iptv/countries/gu.m3u - 🇬🇹 Guatemala147https://iptv-org.github.io/iptv/countries/gt.m3u + 🇬🇹 Guatemala148https://iptv-org.github.io/iptv/countries/gt.m3u       Escuintla2https://iptv-org.github.io/iptv/subdivisions/gt-05.m3u       Huehuetenango1https://iptv-org.github.io/iptv/subdivisions/gt-13.m3u       Izabal1https://iptv-org.github.io/iptv/subdivisions/gt-18.m3u @@ -518,11 +518,11 @@ Same thing, but split up into separate files: 🇬🇳 Guinea35https://iptv-org.github.io/iptv/countries/gn.m3u 🇬🇼 Guinea-Bissau23https://iptv-org.github.io/iptv/countries/gw.m3u 🇬🇾 Guyana18https://iptv-org.github.io/iptv/countries/gy.m3u - 🇭🇹 Haiti44https://iptv-org.github.io/iptv/countries/ht.m3u - 🇭🇳 Honduras138https://iptv-org.github.io/iptv/countries/hn.m3u + 🇭🇹 Haiti45https://iptv-org.github.io/iptv/countries/ht.m3u + 🇭🇳 Honduras139https://iptv-org.github.io/iptv/countries/hn.m3u 🇭🇰 Hong Kong14https://iptv-org.github.io/iptv/countries/hk.m3u - 🇭🇺 Hungary138https://iptv-org.github.io/iptv/countries/hu.m3u - 🇮🇸 Iceland33https://iptv-org.github.io/iptv/countries/is.m3u + 🇭🇺 Hungary137https://iptv-org.github.io/iptv/countries/hu.m3u + 🇮🇸 Iceland32https://iptv-org.github.io/iptv/countries/is.m3u 🇮🇳 India304https://iptv-org.github.io/iptv/countries/in.m3u 🇮🇩 Indonesia143https://iptv-org.github.io/iptv/countries/id.m3u       Aceh2https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u @@ -554,15 +554,15 @@ Same thing, but split up into separate files:       Sumatera Barat2https://iptv-org.github.io/iptv/subdivisions/id-sb.m3u       Sumatera Selatan2https://iptv-org.github.io/iptv/subdivisions/id-ss.m3u       Yogyakarta3https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u - 🇮🇷 Iran123https://iptv-org.github.io/iptv/countries/ir.m3u + 🇮🇷 Iran124https://iptv-org.github.io/iptv/countries/ir.m3u 🇮🇶 Iraq108https://iptv-org.github.io/iptv/countries/iq.m3u - 🇮🇪 Ireland57https://iptv-org.github.io/iptv/countries/ie.m3u + 🇮🇪 Ireland56https://iptv-org.github.io/iptv/countries/ie.m3u 🇮🇱 Israel22https://iptv-org.github.io/iptv/countries/il.m3u - 🇮🇹 Italy325https://iptv-org.github.io/iptv/countries/it.m3u + 🇮🇹 Italy324https://iptv-org.github.io/iptv/countries/it.m3u       Trentino-Alto Adige3https://iptv-org.github.io/iptv/subdivisions/it-32.m3u 🇨🇮 Ivory Coast52https://iptv-org.github.io/iptv/countries/ci.m3u 🇯🇲 Jamaica19https://iptv-org.github.io/iptv/countries/jm.m3u - 🇯🇵 Japan68https://iptv-org.github.io/iptv/countries/jp.m3u + 🇯🇵 Japan67https://iptv-org.github.io/iptv/countries/jp.m3u       Chiba2https://iptv-org.github.io/iptv/subdivisions/jp-12.m3u       Gunma1https://iptv-org.github.io/iptv/subdivisions/jp-10.m3u       Ibaraki1https://iptv-org.github.io/iptv/subdivisions/jp-08.m3u @@ -572,34 +572,34 @@ Same thing, but split up into separate files:       Tochigi1https://iptv-org.github.io/iptv/subdivisions/jp-09.m3u       Tokyo1https://iptv-org.github.io/iptv/subdivisions/jp-13.m3u 🇯🇴 Jordan68https://iptv-org.github.io/iptv/countries/jo.m3u - 🇰🇿 Kazakhstan70https://iptv-org.github.io/iptv/countries/kz.m3u + 🇰🇿 Kazakhstan67https://iptv-org.github.io/iptv/countries/kz.m3u 🇰🇪 Kenya63https://iptv-org.github.io/iptv/countries/ke.m3u 🇰🇮 Kiribati5https://iptv-org.github.io/iptv/countries/ki.m3u 🇽🇰 Kosovo10https://iptv-org.github.io/iptv/countries/xk.m3u 🇰🇼 Kuwait53https://iptv-org.github.io/iptv/countries/kw.m3u - 🇰🇬 Kyrgyzstan22https://iptv-org.github.io/iptv/countries/kg.m3u + 🇰🇬 Kyrgyzstan20https://iptv-org.github.io/iptv/countries/kg.m3u 🇱🇦 Laos24https://iptv-org.github.io/iptv/countries/la.m3u - 🇱🇻 Latvia58https://iptv-org.github.io/iptv/countries/lv.m3u + 🇱🇻 Latvia57https://iptv-org.github.io/iptv/countries/lv.m3u 🇱🇧 Lebanon69https://iptv-org.github.io/iptv/countries/lb.m3u 🇱🇸 Lesotho23https://iptv-org.github.io/iptv/countries/ls.m3u 🇱🇷 Liberia24https://iptv-org.github.io/iptv/countries/lr.m3u 🇱🇾 Libya70https://iptv-org.github.io/iptv/countries/ly.m3u - 🇱🇮 Liechtenstein31https://iptv-org.github.io/iptv/countries/li.m3u - 🇱🇹 Lithuania48https://iptv-org.github.io/iptv/countries/lt.m3u - 🇱🇺 Luxembourg57https://iptv-org.github.io/iptv/countries/lu.m3u + 🇱🇮 Liechtenstein30https://iptv-org.github.io/iptv/countries/li.m3u + 🇱🇹 Lithuania47https://iptv-org.github.io/iptv/countries/lt.m3u + 🇱🇺 Luxembourg56https://iptv-org.github.io/iptv/countries/lu.m3u 🇲🇴 Macao7https://iptv-org.github.io/iptv/countries/mo.m3u 🇲🇬 Madagascar23https://iptv-org.github.io/iptv/countries/mg.m3u 🇲🇼 Malawi26https://iptv-org.github.io/iptv/countries/mw.m3u 🇲🇾 Malaysia32https://iptv-org.github.io/iptv/countries/my.m3u 🇲🇻 Maldives15https://iptv-org.github.io/iptv/countries/mv.m3u 🇲🇱 Mali29https://iptv-org.github.io/iptv/countries/ml.m3u - 🇲🇹 Malta46https://iptv-org.github.io/iptv/countries/mt.m3u + 🇲🇹 Malta45https://iptv-org.github.io/iptv/countries/mt.m3u 🇲🇭 Marshall Islands5https://iptv-org.github.io/iptv/countries/mh.m3u - 🇲🇶 Martinique24https://iptv-org.github.io/iptv/countries/mq.m3u + 🇲🇶 Martinique25https://iptv-org.github.io/iptv/countries/mq.m3u 🇲🇷 Mauritania62https://iptv-org.github.io/iptv/countries/mr.m3u 🇲🇺 Mauritius24https://iptv-org.github.io/iptv/countries/mu.m3u 🇾🇹 Mayotte24https://iptv-org.github.io/iptv/countries/yt.m3u - 🇲🇽 Mexico253https://iptv-org.github.io/iptv/countries/mx.m3u + 🇲🇽 Mexico254https://iptv-org.github.io/iptv/countries/mx.m3u       Chihuahua2https://iptv-org.github.io/iptv/subdivisions/mx-chh.m3u       Coahuila de Zaragoza1https://iptv-org.github.io/iptv/subdivisions/mx-coa.m3u       Durango1https://iptv-org.github.io/iptv/subdivisions/mx-dur.m3u @@ -611,10 +611,10 @@ Same thing, but split up into separate files:       San Luis Potosi1https://iptv-org.github.io/iptv/subdivisions/mx-slp.m3u       Yucatan1https://iptv-org.github.io/iptv/subdivisions/mx-yuc.m3u 🇫🇲 Micronesia5https://iptv-org.github.io/iptv/countries/fm.m3u - 🇲🇩 Moldova65https://iptv-org.github.io/iptv/countries/md.m3u - 🇲🇨 Monaco33https://iptv-org.github.io/iptv/countries/mc.m3u + 🇲🇩 Moldova62https://iptv-org.github.io/iptv/countries/md.m3u + 🇲🇨 Monaco32https://iptv-org.github.io/iptv/countries/mc.m3u 🇲🇳 Mongolia24https://iptv-org.github.io/iptv/countries/mn.m3u - 🇲🇪 Montenegro36https://iptv-org.github.io/iptv/countries/me.m3u + 🇲🇪 Montenegro35https://iptv-org.github.io/iptv/countries/me.m3u       Ulcinj1https://iptv-org.github.io/iptv/subdivisions/me-20.m3u 🇲🇸 Montserrat12https://iptv-org.github.io/iptv/countries/ms.m3u 🇲🇦 Morocco75https://iptv-org.github.io/iptv/countries/ma.m3u @@ -623,32 +623,32 @@ Same thing, but split up into separate files: 🇳🇦 Namibia24https://iptv-org.github.io/iptv/countries/na.m3u 🇳🇷 Nauru5https://iptv-org.github.io/iptv/countries/nr.m3u 🇳🇵 Nepal17https://iptv-org.github.io/iptv/countries/np.m3u - 🇳🇱 Netherlands196https://iptv-org.github.io/iptv/countries/nl.m3u + 🇳🇱 Netherlands195https://iptv-org.github.io/iptv/countries/nl.m3u 🇳🇨 New Caledonia5https://iptv-org.github.io/iptv/countries/nc.m3u 🇳🇿 New Zealand24https://iptv-org.github.io/iptv/countries/nz.m3u - 🇳🇮 Nicaragua81https://iptv-org.github.io/iptv/countries/ni.m3u + 🇳🇮 Nicaragua82https://iptv-org.github.io/iptv/countries/ni.m3u 🇳🇪 Niger25https://iptv-org.github.io/iptv/countries/ne.m3u 🇳🇬 Nigeria82https://iptv-org.github.io/iptv/countries/ng.m3u 🇳🇺 Niue5https://iptv-org.github.io/iptv/countries/nu.m3u 🇳🇫 Norfolk Island5https://iptv-org.github.io/iptv/countries/nf.m3u 🇰🇵 North Korea5https://iptv-org.github.io/iptv/countries/kp.m3u - 🇲🇰 North Macedonia65https://iptv-org.github.io/iptv/countries/mk.m3u + 🇲🇰 North Macedonia64https://iptv-org.github.io/iptv/countries/mk.m3u 🇲🇵 Northern Mariana Islands5https://iptv-org.github.io/iptv/countries/mp.m3u - 🇳🇴 Norway38https://iptv-org.github.io/iptv/countries/no.m3u + 🇳🇴 Norway37https://iptv-org.github.io/iptv/countries/no.m3u 🇴🇲 Oman47https://iptv-org.github.io/iptv/countries/om.m3u 🇵🇰 Pakistan39https://iptv-org.github.io/iptv/countries/pk.m3u 🇵🇼 Palau5https://iptv-org.github.io/iptv/countries/pw.m3u 🇵🇸 Palestine63https://iptv-org.github.io/iptv/countries/ps.m3u - 🇵🇦 Panama83https://iptv-org.github.io/iptv/countries/pa.m3u + 🇵🇦 Panama84https://iptv-org.github.io/iptv/countries/pa.m3u 🇵🇬 Papua New Guinea6https://iptv-org.github.io/iptv/countries/pg.m3u - 🇵🇾 Paraguay123https://iptv-org.github.io/iptv/countries/py.m3u + 🇵🇾 Paraguay124https://iptv-org.github.io/iptv/countries/py.m3u       Alto Parana2https://iptv-org.github.io/iptv/subdivisions/py-10.m3u       Boqueron1https://iptv-org.github.io/iptv/subdivisions/py-19.m3u       Caaguazu1https://iptv-org.github.io/iptv/subdivisions/py-5.m3u       Central1https://iptv-org.github.io/iptv/subdivisions/py-11.m3u       Itapua1https://iptv-org.github.io/iptv/subdivisions/py-7.m3u       Presidente Hayes1https://iptv-org.github.io/iptv/subdivisions/py-15.m3u - 🇵🇪 Peru207https://iptv-org.github.io/iptv/countries/pe.m3u + 🇵🇪 Peru208https://iptv-org.github.io/iptv/countries/pe.m3u       Amazonas2https://iptv-org.github.io/iptv/subdivisions/pe-ama.m3u       Ancash1https://iptv-org.github.io/iptv/subdivisions/pe-anc.m3u       Apurimac1https://iptv-org.github.io/iptv/subdivisions/pe-apu.m3u @@ -665,36 +665,36 @@ Same thing, but split up into separate files:       Ucayali2https://iptv-org.github.io/iptv/subdivisions/pe-uca.m3u 🇵🇭 Philippines26https://iptv-org.github.io/iptv/countries/ph.m3u 🇵🇳 Pitcairn Islands5https://iptv-org.github.io/iptv/countries/pn.m3u - 🇵🇱 Poland196https://iptv-org.github.io/iptv/countries/pl.m3u + 🇵🇱 Poland203https://iptv-org.github.io/iptv/countries/pl.m3u 🇵🇹 Portugal83https://iptv-org.github.io/iptv/countries/pt.m3u - 🇵🇷 Puerto Rico99https://iptv-org.github.io/iptv/countries/pr.m3u + 🇵🇷 Puerto Rico100https://iptv-org.github.io/iptv/countries/pr.m3u 🇶🇦 Qatar54https://iptv-org.github.io/iptv/countries/qa.m3u 🇨🇬 Republic of the Congo33https://iptv-org.github.io/iptv/countries/cg.m3u       Brazzaville1https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u 🇷🇪 Reunion24https://iptv-org.github.io/iptv/countries/re.m3u - 🇷🇴 Romania143https://iptv-org.github.io/iptv/countries/ro.m3u + 🇷🇴 Romania142https://iptv-org.github.io/iptv/countries/ro.m3u       Gorj1https://iptv-org.github.io/iptv/subdivisions/ro-gj.m3u - 🇷🇺 Russia228https://iptv-org.github.io/iptv/countries/ru.m3u + 🇷🇺 Russia209https://iptv-org.github.io/iptv/countries/ru.m3u 🇷🇼 Rwanda31https://iptv-org.github.io/iptv/countries/rw.m3u - 🇧🇱 Saint Barthélemy20https://iptv-org.github.io/iptv/countries/bl.m3u + 🇧🇱 Saint Barthélemy21https://iptv-org.github.io/iptv/countries/bl.m3u 🇸🇭 Saint Helena23https://iptv-org.github.io/iptv/countries/sh.m3u 🇰🇳 Saint Kitts and Nevis13https://iptv-org.github.io/iptv/countries/kn.m3u 🇱🇨 Saint Lucia13https://iptv-org.github.io/iptv/countries/lc.m3u - 🇲🇫 Saint Martin20https://iptv-org.github.io/iptv/countries/mf.m3u + 🇲🇫 Saint Martin21https://iptv-org.github.io/iptv/countries/mf.m3u 🇵🇲 Saint Pierre and Miquelon7https://iptv-org.github.io/iptv/countries/pm.m3u 🇻🇨 Saint Vincent and the Grenadines12https://iptv-org.github.io/iptv/countries/vc.m3u 🇼🇸 Samoa7https://iptv-org.github.io/iptv/countries/ws.m3u - 🇸🇲 San Marino30https://iptv-org.github.io/iptv/countries/sm.m3u + 🇸🇲 San Marino29https://iptv-org.github.io/iptv/countries/sm.m3u 🇸🇹 Sao Tome and Principe24https://iptv-org.github.io/iptv/countries/st.m3u 🇸🇦 Saudi Arabia90https://iptv-org.github.io/iptv/countries/sa.m3u 🇸🇳 Senegal54https://iptv-org.github.io/iptv/countries/sn.m3u - 🇷🇸 Serbia69https://iptv-org.github.io/iptv/countries/rs.m3u + 🇷🇸 Serbia68https://iptv-org.github.io/iptv/countries/rs.m3u 🇸🇨 Seychelles23https://iptv-org.github.io/iptv/countries/sc.m3u 🇸🇱 Sierra Leone25https://iptv-org.github.io/iptv/countries/sl.m3u 🇸🇬 Singapore21https://iptv-org.github.io/iptv/countries/sg.m3u 🇸🇽 Sint Maarten18https://iptv-org.github.io/iptv/countries/sx.m3u - 🇸🇰 Slovakia92https://iptv-org.github.io/iptv/countries/sk.m3u - 🇸🇮 Slovenia56https://iptv-org.github.io/iptv/countries/si.m3u + 🇸🇰 Slovakia91https://iptv-org.github.io/iptv/countries/sk.m3u + 🇸🇮 Slovenia55https://iptv-org.github.io/iptv/countries/si.m3u 🇸🇧 Solomon Islands5https://iptv-org.github.io/iptv/countries/sb.m3u 🇸🇴 Somalia69https://iptv-org.github.io/iptv/countries/so.m3u 🇿🇦 South Africa61https://iptv-org.github.io/iptv/countries/za.m3u @@ -714,7 +714,7 @@ Same thing, but split up into separate files:       Seoul-teukbyeolsi1https://iptv-org.github.io/iptv/subdivisions/kr-11.m3u       Ulsan-gwangyeoksi1https://iptv-org.github.io/iptv/subdivisions/kr-31.m3u 🇸🇸 South Sudan23https://iptv-org.github.io/iptv/countries/ss.m3u - 🇪🇸 Spain341https://iptv-org.github.io/iptv/countries/es.m3u + 🇪🇸 Spain340https://iptv-org.github.io/iptv/countries/es.m3u       Andalucia38https://iptv-org.github.io/iptv/subdivisions/es-an.m3u       Aragon1https://iptv-org.github.io/iptv/subdivisions/es-ar.m3u       Asturias, Principado de1https://iptv-org.github.io/iptv/subdivisions/es-as.m3u @@ -736,11 +736,11 @@ Same thing, but split up into separate files: 🇸🇩 Sudan66https://iptv-org.github.io/iptv/countries/sd.m3u 🇸🇷 Suriname10https://iptv-org.github.io/iptv/countries/sr.m3u 🇸🇿 Swaziland24https://iptv-org.github.io/iptv/countries/sz.m3u - 🇸🇪 Sweden58https://iptv-org.github.io/iptv/countries/se.m3u - 🇨🇭 Switzerland76https://iptv-org.github.io/iptv/countries/ch.m3u + 🇸🇪 Sweden57https://iptv-org.github.io/iptv/countries/se.m3u + 🇨🇭 Switzerland75https://iptv-org.github.io/iptv/countries/ch.m3u 🇸🇾 Syria46https://iptv-org.github.io/iptv/countries/sy.m3u 🇹🇼 Taiwan29https://iptv-org.github.io/iptv/countries/tw.m3u - 🇹🇯 Tajikistan30https://iptv-org.github.io/iptv/countries/tj.m3u + 🇹🇯 Tajikistan28https://iptv-org.github.io/iptv/countries/tj.m3u 🇹🇿 Tanzania31https://iptv-org.github.io/iptv/countries/tz.m3u 🇹🇭 Thailand75https://iptv-org.github.io/iptv/countries/th.m3u 🇹🇬 Togo36https://iptv-org.github.io/iptv/countries/tg.m3u @@ -748,16 +748,16 @@ Same thing, but split up into separate files: 🇹🇴 Tonga5https://iptv-org.github.io/iptv/countries/to.m3u 🇹🇹 Trinidad and Tobago18https://iptv-org.github.io/iptv/countries/tt.m3u 🇹🇳 Tunisia66https://iptv-org.github.io/iptv/countries/tn.m3u - 🇹🇷 Turkey281https://iptv-org.github.io/iptv/countries/tr.m3u + 🇹🇷 Turkey280https://iptv-org.github.io/iptv/countries/tr.m3u 🇹🇲 Turkmenistan16https://iptv-org.github.io/iptv/countries/tm.m3u 🇹🇨 Turks and Caicos Islands12https://iptv-org.github.io/iptv/countries/tc.m3u 🇹🇻 Tuvalu5https://iptv-org.github.io/iptv/countries/tv.m3u 🇻🇮 U.S. Virgin Islands12https://iptv-org.github.io/iptv/countries/vi.m3u 🇺🇬 Uganda51https://iptv-org.github.io/iptv/countries/ug.m3u - 🇺🇦 Ukraine92https://iptv-org.github.io/iptv/countries/ua.m3u + 🇺🇦 Ukraine91https://iptv-org.github.io/iptv/countries/ua.m3u 🇦🇪 United Arab Emirates88https://iptv-org.github.io/iptv/countries/ae.m3u - 🇬🇧 United Kingdom175https://iptv-org.github.io/iptv/countries/uk.m3u - 🇺🇸 United States1421https://iptv-org.github.io/iptv/countries/us.m3u + 🇬🇧 United Kingdom174https://iptv-org.github.io/iptv/countries/uk.m3u + 🇺🇸 United States1422https://iptv-org.github.io/iptv/countries/us.m3u       Alabama3https://iptv-org.github.io/iptv/subdivisions/us-al.m3u       Alaska2https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u       Arizona13https://iptv-org.github.io/iptv/subdivisions/us-az.m3u @@ -805,11 +805,11 @@ Same thing, but split up into separate files:       Virginia3https://iptv-org.github.io/iptv/subdivisions/us-va.m3u       Washington5https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u       Wisconsin4https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u - 🇺🇾 Uruguay74https://iptv-org.github.io/iptv/countries/uy.m3u - 🇺🇿 Uzbekistan30https://iptv-org.github.io/iptv/countries/uz.m3u + 🇺🇾 Uruguay75https://iptv-org.github.io/iptv/countries/uy.m3u + 🇺🇿 Uzbekistan28https://iptv-org.github.io/iptv/countries/uz.m3u 🇻🇺 Vanuatu5https://iptv-org.github.io/iptv/countries/vu.m3u - 🇻🇦 Vatican City29https://iptv-org.github.io/iptv/countries/va.m3u - 🇻🇪 Venezuela115https://iptv-org.github.io/iptv/countries/ve.m3u + 🇻🇦 Vatican City28https://iptv-org.github.io/iptv/countries/va.m3u + 🇻🇪 Venezuela116https://iptv-org.github.io/iptv/countries/ve.m3u       Aragua2https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u       Lara1https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u 🇻🇳 Vietnam71https://iptv-org.github.io/iptv/countries/vn.m3u @@ -818,7 +818,7 @@ Same thing, but split up into separate files: 🇾🇪 Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u 🇿🇲 Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u 🇿🇼 Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2889https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2885https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -845,41 +845,41 @@ Same thing, but split up into separate files: Africa546https://iptv-org.github.io/iptv/regions/afr.m3u - Americas3598https://iptv-org.github.io/iptv/regions/amer.m3u + Americas3602https://iptv-org.github.io/iptv/regions/amer.m3u Arab world402https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2162https://iptv-org.github.io/iptv/regions/asia.m3u + Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u Asia-Pacific1135https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations344https://iptv-org.github.io/iptv/regions/asean.m3u - Balkan681https://iptv-org.github.io/iptv/regions/balkan.m3u - Benelux241https://iptv-org.github.io/iptv/regions/benelux.m3u - Caribbean365https://iptv-org.github.io/iptv/regions/carib.m3u - Central America372https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe1000https://iptv-org.github.io/iptv/regions/cee.m3u - Central Asia112https://iptv-org.github.io/iptv/regions/cas.m3u - Commonwealth of Independent States373https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2874https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3785https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1956https://iptv-org.github.io/iptv/regions/eu.m3u - Hispanic America1680https://iptv-org.github.io/iptv/regions/hispam.m3u - Latin America1995https://iptv-org.github.io/iptv/regions/latam.m3u - Latin America and the Caribbean2039https://iptv-org.github.io/iptv/regions/lac.m3u + Balkan680https://iptv-org.github.io/iptv/regions/balkan.m3u + Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u + Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u + Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u + Central and Eastern Europe989https://iptv-org.github.io/iptv/regions/cee.m3u + Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u + Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u + Europe2864https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3776https://iptv-org.github.io/iptv/regions/emea.m3u + European Union1964https://iptv-org.github.io/iptv/regions/eu.m3u + Hispanic America1681https://iptv-org.github.io/iptv/regions/hispam.m3u + Latin America1998https://iptv-org.github.io/iptv/regions/latam.m3u + Latin America and the Caribbean2042https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u Middle East807https://iptv-org.github.io/iptv/regions/mideast.m3u Middle East and North Africa836https://iptv-org.github.io/iptv/regions/mena.m3u - Nordics112https://iptv-org.github.io/iptv/regions/nord.m3u - North America2419https://iptv-org.github.io/iptv/regions/noram.m3u - Northern America1581https://iptv-org.github.io/iptv/regions/nam.m3u - Northern Europe154https://iptv-org.github.io/iptv/regions/neur.m3u - Oceania54https://iptv-org.github.io/iptv/regions/oce.m3u - South America1258https://iptv-org.github.io/iptv/regions/southam.m3u + Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u + North America2421https://iptv-org.github.io/iptv/regions/noram.m3u + Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u + Northern Europe153https://iptv-org.github.io/iptv/regions/neur.m3u + Oceania55https://iptv-org.github.io/iptv/regions/oce.m3u + South America1261https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u Southeast Asia344https://iptv-org.github.io/iptv/regions/sea.m3u Southern Europe1057https://iptv-org.github.io/iptv/regions/ser.m3u Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u - Western Europe782https://iptv-org.github.io/iptv/regions/wer.m3u + Western Europe781https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2889https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2885https://iptv-org.github.io/iptv/regions/undefined.m3u From f2cb2408196da4356abc02c392151a18b351bd33 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 00:11:26 +0000 Subject: [PATCH 11/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14505104717) workflow. closes #21236, closes #21234, closes #21233, closes #21232, closes #21230, closes #21229, closes #21228, closes #21227, closes #21222, closes #21220, closes #21219, closes #21217, closes #21216, closes #21215, closes #21214, closes #21213, closes #21212 --- streams/al.m3u | 2 ++ streams/cl.m3u | 6 ++++++ streams/co.m3u | 8 ++++++++ streams/it.m3u | 2 ++ streams/xk.m3u | 16 ++++++++++++++++ 5 files changed, 34 insertions(+) diff --git a/streams/al.m3u b/streams/al.m3u index 8ee8a13f9..5bf3da0c8 100644 --- a/streams/al.m3u +++ b/streams/al.m3u @@ -29,3 +29,5 @@ https://live.prostream.al/al/smil:tropojatv.smil/playlist.m3u8 https://fe.tring.al/delta/105/out/u/rdghfhsfhfshs.m3u8 #EXTINF:-1 tvg-id="ZjarrTV.al",Zjarr TV (720p) [Not 24/7] https://cdn.jwplayer.com/live/events/r2qgHu7W.m3u8 +#EXTINF:-1 tvg-id="EuronewsAlbania.al",Euronews Albania +https://gjirafa-video-live.gjirafa.net/gjvideo-live/2dw-zuf-1c9-pxu/index.m3u8 diff --git a/streams/cl.m3u b/streams/cl.m3u index 625bfc27c..1073e7039 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -447,3 +447,9 @@ https://zmlive.zappingtv.com/zm-free/zm.smil/playlist.m3u8 http://190.2.212.209:8050/play/a0oj #EXTINF:-1 tvg-id="ZonaPlayTV.cl",Zona Play TV (720p) https://paneltv.online:1936/8100/8100/playlist.m3u8 +#EXTINF:-1 tvg-id="EnerGeekRadio.cl",EnerGeek Radio +https://xui-backend.energeek.cl/live/11/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="FanpopTV.cl",Fanpop TV (1080p) +https://xui-backend.energeek.cl/live/10/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="EnerGeek.cl",EnerGeek (1080p) +https://xui-backend.energeek.cl/live/9/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF diff --git a/streams/co.m3u b/streams/co.m3u index f34282d33..15046817e 100644 --- a/streams/co.m3u +++ b/streams/co.m3u @@ -320,3 +320,11 @@ http://190.2.212.209:8050/play/a0n2 #EXTINF:-1 tvg-id="Zoom.co" http-referrer="https://canalzoom.org/senal-en-vivo",Zoom (1080p) #EXTVLCOPT:http-referrer=https://canalzoom.org/senal-en-vivo https://canalzoom.smoothcloud.co:3027/live/canalzoombr1live.m3u8 +#EXTINF:-1 tvg-id="TDIColombia.co",TDI Colombia (720p) +https://streaming.amelbasoluciones.co:19360/tdicolombia/tdicolombia.m3u8 +#EXTINF:-1 tvg-id="CanalCapital.co",Canal Capital (720p) +https://cdns.livewave.co:19360/canalcapital/canalcapital.m3u8 +#EXTINF:-1 tvg-id="MulticanalTelevision.co",Multicanal Television (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/multicanal/playlist.m3u8 +#EXTINF:-1 tvg-id="Telepacifico.co",Telepacifico (1080p) +https://play.cdn.enetres.net/6E5C615AA5FF4123ACAF0DAB57B7B8DC021/022/playlist.m3u8 diff --git a/streams/it.m3u b/streams/it.m3u index 933581a68..bd0d8fd0a 100644 --- a/streams/it.m3u +++ b/streams/it.m3u @@ -675,3 +675,5 @@ https://59d7d6f47d7fc.streamlock.net/telequattro/telequattro/playlist.m3u8 https://stream10.xdevel.com/video1s976543-1932/stream/playlist.m3u8 #EXTINF:-1 tvg-id="RTV38.it",RTV38 (576p) https://streamcdne1-845d8509d2cb4f249dd0b2ae5755b6c2.msvdn.net/rtv38/rtv38_live_main/mainabr/rtv38_live_main/main_576/chunks_dvr.m3u8 +#EXTINF:-1 tvg-id="Super.it",Super! +https://495c5a85d9074f29acffeaea9e0215eb.msvdn.net/super/super_main/super_main_hbbtv/playlist.m3u8 diff --git a/streams/xk.m3u b/streams/xk.m3u index 588f42ebb..189872f85 100644 --- a/streams/xk.m3u +++ b/streams/xk.m3u @@ -19,3 +19,19 @@ http://stream.tvdielli.com:8081/dielli/index.m3u8 http://ip.opoja.tv:1935/tvopoja/tvopoja/playlist.m3u8 #EXTINF:-1 tvg-id="TVSyri.xk",TV Syri (720p) https://gjirafa-video-live.gjirafa.net/gjvideo-live/xej-xnb-ba0-kup/index.m3u8 +#EXTINF:-1 tvg-id="T7.xk",T7 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream-specific/1z8-byc-4ee-lc9/index.m3u8 +#EXTINF:-1 tvg-id="TVArta.xk",TV Arta +https://gjirafa-video-live.gjirafa.net/gjvideo-live/mps-vgx-u9p-qv1/index.m3u8 +#EXTINF:-1 tvg-id="RTK3.xk",RTK 3 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/rtk3/index.m3u8 +#EXTINF:-1 tvg-id="RTK2.xk",RTK 2 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/rtk2/index.m3u8 +#EXTINF:-1 tvg-id="RTK1.xk",RTK 1 +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/98r-d35-487-v6m/tracks-v4a1/mono.m3u8 +#EXTINF:-1 tvg-id="Kohavision.xk",Kohavision +https://gjirafa-video-live.gjirafa.net/gjvideo-livestream/lj9-pxm-o53-rp0/tracks-v4a1/mono.m3u8 +#EXTINF:-1 tvg-id="TVPrizreni.xk",TV Prizreni +https://gjirafa-video-live.gjirafa.net/gjvideo-live/5m0-cok-g5z-1xi/index.m3u8 +#EXTINF:-1 tvg-id="RTV21.xk",RTV21 +https://gjirafa-video-live.gjirafa.net/gjvideo-live/2cz-npl-jfn-9he/tracks-v2a1/mono.m3u8 From 28dab193d250b7a91c837012c62fbe517237d1bc Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Thu, 17 Apr 2025 00:11:26 +0000 Subject: [PATCH 12/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14505104717) workflow. --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index ac0904dc2..cc586a0f1 100644 --- a/README.md +++ b/README.md @@ -65,13 +65,13 @@ Same thing, but split up into separate files: Education152https://iptv-org.github.io/iptv/categories/education.m3u Entertainment541https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2346https://iptv-org.github.io/iptv/categories/general.m3u + General2348https://iptv-org.github.io/iptv/categories/general.m3u Kids176https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u Movies233https://iptv-org.github.io/iptv/categories/movies.m3u Music664https://iptv-org.github.io/iptv/categories/music.m3u - News766https://iptv-org.github.io/iptv/categories/news.m3u + News769https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u Religious692https://iptv-org.github.io/iptv/categories/religious.m3u @@ -82,7 +82,7 @@ Same thing, but split up into separate files: Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4725https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4729https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -112,7 +112,7 @@ Same thing, but split up into separate files: Adhola1https://iptv-org.github.io/iptv/languages/adh.m3u Afghan Persian7https://iptv-org.github.io/iptv/languages/prs.m3u Afrikaans3https://iptv-org.github.io/iptv/languages/afr.m3u - Albanian37https://iptv-org.github.io/iptv/languages/sqi.m3u + Albanian46https://iptv-org.github.io/iptv/languages/sqi.m3u Alur1https://iptv-org.github.io/iptv/languages/alz.m3u Amharic7https://iptv-org.github.io/iptv/languages/amh.m3u Arabic393https://iptv-org.github.io/iptv/languages/ara.m3u @@ -246,7 +246,7 @@ Same thing, but split up into separate files: Saint Lucian Creole French2https://iptv-org.github.io/iptv/languages/acf.m3u Samoan2https://iptv-org.github.io/iptv/languages/smo.m3u Santali1https://iptv-org.github.io/iptv/languages/sat.m3u - Serbian46https://iptv-org.github.io/iptv/languages/srp.m3u + Serbian47https://iptv-org.github.io/iptv/languages/srp.m3u Serbo-Croatian1https://iptv-org.github.io/iptv/languages/hbs.m3u Sinhala5https://iptv-org.github.io/iptv/languages/sin.m3u Slovak49https://iptv-org.github.io/iptv/languages/slk.m3u @@ -313,7 +313,7 @@ Same thing, but split up into separate files: 🇦🇫 Afghanistan31https://iptv-org.github.io/iptv/countries/af.m3u - 🇦🇱 Albania41https://iptv-org.github.io/iptv/countries/al.m3u + 🇦🇱 Albania42https://iptv-org.github.io/iptv/countries/al.m3u 🇩🇿 Algeria71https://iptv-org.github.io/iptv/countries/dz.m3u 🇦🇸 American Samoa5https://iptv-org.github.io/iptv/countries/as.m3u 🇦🇩 Andorra33https://iptv-org.github.io/iptv/countries/ad.m3u @@ -575,7 +575,7 @@ Same thing, but split up into separate files: 🇰🇿 Kazakhstan67https://iptv-org.github.io/iptv/countries/kz.m3u 🇰🇪 Kenya63https://iptv-org.github.io/iptv/countries/ke.m3u 🇰🇮 Kiribati5https://iptv-org.github.io/iptv/countries/ki.m3u - 🇽🇰 Kosovo10https://iptv-org.github.io/iptv/countries/xk.m3u + 🇽🇰 Kosovo18https://iptv-org.github.io/iptv/countries/xk.m3u 🇰🇼 Kuwait53https://iptv-org.github.io/iptv/countries/kw.m3u 🇰🇬 Kyrgyzstan20https://iptv-org.github.io/iptv/countries/kg.m3u 🇱🇦 Laos24https://iptv-org.github.io/iptv/countries/la.m3u @@ -688,7 +688,7 @@ Same thing, but split up into separate files: 🇸🇹 Sao Tome and Principe24https://iptv-org.github.io/iptv/countries/st.m3u 🇸🇦 Saudi Arabia90https://iptv-org.github.io/iptv/countries/sa.m3u 🇸🇳 Senegal54https://iptv-org.github.io/iptv/countries/sn.m3u - 🇷🇸 Serbia68https://iptv-org.github.io/iptv/countries/rs.m3u + 🇷🇸 Serbia69https://iptv-org.github.io/iptv/countries/rs.m3u 🇸🇨 Seychelles23https://iptv-org.github.io/iptv/countries/sc.m3u 🇸🇱 Sierra Leone25https://iptv-org.github.io/iptv/countries/sl.m3u 🇸🇬 Singapore21https://iptv-org.github.io/iptv/countries/sg.m3u @@ -850,15 +850,15 @@ Same thing, but split up into separate files: Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u Asia-Pacific1135https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations344https://iptv-org.github.io/iptv/regions/asean.m3u - Balkan680https://iptv-org.github.io/iptv/regions/balkan.m3u + Balkan689https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe989https://iptv-org.github.io/iptv/regions/cee.m3u + Central and Eastern Europe998https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2864https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3776https://iptv-org.github.io/iptv/regions/emea.m3u + Europe2866https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3778https://iptv-org.github.io/iptv/regions/emea.m3u European Union1964https://iptv-org.github.io/iptv/regions/eu.m3u Hispanic America1681https://iptv-org.github.io/iptv/regions/hispam.m3u Latin America1998https://iptv-org.github.io/iptv/regions/latam.m3u From e2d1102da0cfef78e179dbba9d37fc97f4fb310b Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Fri, 18 Apr 2025 00:11:15 +0000 Subject: [PATCH 13/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14527003006) workflow. closes #21239, closes #21240, closes #21208, closes #21237, closes #21226 --- streams/cl.m3u | 2 +- streams/cn_cctv.m3u | 2 -- streams/co.m3u | 2 ++ streams/sg.m3u | 2 ++ streams/tr.m3u | 2 ++ streams/us_moveonjoy.m3u | 2 -- 6 files changed, 7 insertions(+), 5 deletions(-) diff --git a/streams/cl.m3u b/streams/cl.m3u index 1073e7039..3017b30f5 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -449,7 +449,7 @@ http://190.2.212.209:8050/play/a0oj https://paneltv.online:1936/8100/8100/playlist.m3u8 #EXTINF:-1 tvg-id="EnerGeekRadio.cl",EnerGeek Radio https://xui-backend.energeek.cl/live/11/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF -#EXTINF:-1 tvg-id="FanpopTV.cl",Fanpop TV (1080p) +#EXTINF:-1 tvg-id="EnerGeekFAN.cl@SD",EnerGeek FAN (1080p) https://xui-backend.energeek.cl/live/10/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF #EXTINF:-1 tvg-id="EnerGeek.cl",EnerGeek (1080p) https://xui-backend.energeek.cl/live/9/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF diff --git a/streams/cn_cctv.m3u b/streams/cn_cctv.m3u index 3c5d148f8..fd2e23f0b 100644 --- a/streams/cn_cctv.m3u +++ b/streams/cn_cctv.m3u @@ -3,8 +3,6 @@ https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL1.smil/playlist.m3u8 #EXTINF:-1 tvg-id="CCTVPlus2.cn",CCTV+ 2 (600p) [Not 24/7] https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL2.smil/playlist.m3u8 -#EXTINF:-1 tvg-id="CCTV1.cn",CCTV-1综合 (1080p) -https://node1.olelive.com:6443/live/CCTV1HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV1.cn",CCTV-1综合 (576p) http://42.176.185.28:9901/tsfile/live/1022_1.m3u8 #EXTINF:-1 tvg-id="CCTV2.cn",CCTV-2财经 (1080p) diff --git a/streams/co.m3u b/streams/co.m3u index 15046817e..c3a7706d5 100644 --- a/streams/co.m3u +++ b/streams/co.m3u @@ -328,3 +328,5 @@ https://cdns.livewave.co:19360/canalcapital/canalcapital.m3u8 https://ssh101stream.ssh101.com/akamaissh101/ssh101/multicanal/playlist.m3u8 #EXTINF:-1 tvg-id="Telepacifico.co",Telepacifico (1080p) https://play.cdn.enetres.net/6E5C615AA5FF4123ACAF0DAB57B7B8DC021/022/playlist.m3u8 +#EXTINF:-1 tvg-id="NSTV.co",NSTV (720p) +https://cp.panelchs.com:1936/8038/8038/playlist.m3u8 diff --git a/streams/sg.m3u b/streams/sg.m3u index 94262568b..82c9bcbb2 100644 --- a/streams/sg.m3u +++ b/streams/sg.m3u @@ -31,3 +31,5 @@ https://cdn-telkomsel-01.akamaized.net/Content/HLS/Live/channel(abe4ead2-1a88-43 https://d39v9xz8f7n8tk.cloudfront.net/hls/clr4ctv_vsnthm/master.m3u8 #EXTINF:-1 tvg-id="ZooMoo.sg",ZooMoo Asia (1080p) https://cdn4.skygo.mn/live/disk1/Zoomoo/HLSv3-FTA/Zoomoo.m3u8 +#EXTINF:-1 tvg-id="AXNAsia.sg",AXN Asia (576p) +http://125hvt.ddns.net:21585/axn/index.m3u8 diff --git a/streams/tr.m3u b/streams/tr.m3u index a275ed63d..1e6058533 100644 --- a/streams/tr.m3u +++ b/streams/tr.m3u @@ -822,3 +822,5 @@ https://saran-live.ercdn.net/natgeowild/index.m3u8 https://tv.arectv29.sbs/live/natgeowild.m3u8 #EXTINF:-1 tvg-id="NOWTV.tr",NOW TV (720p) https://uycyyuuzyh.turknet.ercdn.net/nphindgytw/nowtv/nowtv.m3u8 +#EXTINF:-1 tvg-id="Nickelodeon.tr@SD",Nickelodeon +http://fl1.moveonjoy.com/NICKELODEON/index.m3u8 diff --git a/streams/us_moveonjoy.m3u b/streams/us_moveonjoy.m3u index 372984acf..832a4a8e3 100644 --- a/streams/us_moveonjoy.m3u +++ b/streams/us_moveonjoy.m3u @@ -171,8 +171,6 @@ https://fl5.moveonjoy.com/NICK_JR/index.m3u8 http://fl2.moveonjoy.com/NICK_MUSIC/index.m3u8 #EXTINF:-1 tvg-id="NickMusic.us",Nick Music (480p) http://fl5.moveonjoy.com/NICK_MUSIC/index.m3u8 -#EXTINF:-1 tvg-id="NickelodeonEast.us",Nickelodeon East -http://fl1.moveonjoy.com/NICKELODEON/index.m3u8 #EXTINF:-1 tvg-id="NicktoonsEast.us",Nicktoons East http://fl1.moveonjoy.com/NICKTOONS/index.m3u8 #EXTINF:-1 tvg-id="OutdoorChannel.us",Outdoor Channel From 874758f413a54c56aaec85f5d4f977f3034798cc Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Fri, 18 Apr 2025 00:11:15 +0000 Subject: [PATCH 14/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14527003006) workflow. --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index cc586a0f1..8c9a78bd4 100644 --- a/README.md +++ b/README.md @@ -66,10 +66,10 @@ Same thing, but split up into separate files: Entertainment541https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u General2348https://iptv-org.github.io/iptv/categories/general.m3u - Kids176https://iptv-org.github.io/iptv/categories/kids.m3u + Kids177https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u - Movies233https://iptv-org.github.io/iptv/categories/movies.m3u + Movies234https://iptv-org.github.io/iptv/categories/movies.m3u Music664https://iptv-org.github.io/iptv/categories/music.m3u News769https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2112https://iptv-org.github.io/iptv/languages/eng.m3u + English2113https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -271,7 +271,7 @@ Same thing, but split up into separate files: Tooro1https://iptv-org.github.io/iptv/languages/ttj.m3u Tswana1https://iptv-org.github.io/iptv/languages/tsn.m3u Tumzabt1https://iptv-org.github.io/iptv/languages/mzb.m3u - Turkish259https://iptv-org.github.io/iptv/languages/tur.m3u + Turkish260https://iptv-org.github.io/iptv/languages/tur.m3u Turkmen8https://iptv-org.github.io/iptv/languages/tuk.m3u Uighur3https://iptv-org.github.io/iptv/languages/uig.m3u Ukrainian60https://iptv-org.github.io/iptv/languages/ukr.m3u @@ -691,7 +691,7 @@ Same thing, but split up into separate files: 🇷🇸 Serbia69https://iptv-org.github.io/iptv/countries/rs.m3u 🇸🇨 Seychelles23https://iptv-org.github.io/iptv/countries/sc.m3u 🇸🇱 Sierra Leone25https://iptv-org.github.io/iptv/countries/sl.m3u - 🇸🇬 Singapore21https://iptv-org.github.io/iptv/countries/sg.m3u + 🇸🇬 Singapore22https://iptv-org.github.io/iptv/countries/sg.m3u 🇸🇽 Sint Maarten18https://iptv-org.github.io/iptv/countries/sx.m3u 🇸🇰 Slovakia91https://iptv-org.github.io/iptv/countries/sk.m3u 🇸🇮 Slovenia55https://iptv-org.github.io/iptv/countries/si.m3u @@ -748,7 +748,7 @@ Same thing, but split up into separate files: 🇹🇴 Tonga5https://iptv-org.github.io/iptv/countries/to.m3u 🇹🇹 Trinidad and Tobago18https://iptv-org.github.io/iptv/countries/tt.m3u 🇹🇳 Tunisia66https://iptv-org.github.io/iptv/countries/tn.m3u - 🇹🇷 Turkey280https://iptv-org.github.io/iptv/countries/tr.m3u + 🇹🇷 Turkey281https://iptv-org.github.io/iptv/countries/tr.m3u 🇹🇲 Turkmenistan16https://iptv-org.github.io/iptv/countries/tm.m3u 🇹🇨 Turks and Caicos Islands12https://iptv-org.github.io/iptv/countries/tc.m3u 🇹🇻 Tuvalu5https://iptv-org.github.io/iptv/countries/tv.m3u @@ -847,25 +847,25 @@ Same thing, but split up into separate files: Africa546https://iptv-org.github.io/iptv/regions/afr.m3u Americas3602https://iptv-org.github.io/iptv/regions/amer.m3u Arab world402https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1135https://iptv-org.github.io/iptv/regions/apac.m3u - Association of Southeast Asian Nations344https://iptv-org.github.io/iptv/regions/asean.m3u - Balkan689https://iptv-org.github.io/iptv/regions/balkan.m3u + Asia2145https://iptv-org.github.io/iptv/regions/asia.m3u + Asia-Pacific1136https://iptv-org.github.io/iptv/regions/apac.m3u + Association of Southeast Asian Nations345https://iptv-org.github.io/iptv/regions/asean.m3u + Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u Central and Eastern Europe998https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2866https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3778https://iptv-org.github.io/iptv/regions/emea.m3u + Europe2867https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3779https://iptv-org.github.io/iptv/regions/emea.m3u European Union1964https://iptv-org.github.io/iptv/regions/eu.m3u Hispanic America1681https://iptv-org.github.io/iptv/regions/hispam.m3u Latin America1998https://iptv-org.github.io/iptv/regions/latam.m3u Latin America and the Caribbean2042https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u - Middle East807https://iptv-org.github.io/iptv/regions/mideast.m3u - Middle East and North Africa836https://iptv-org.github.io/iptv/regions/mena.m3u + Middle East808https://iptv-org.github.io/iptv/regions/mideast.m3u + Middle East and North Africa837https://iptv-org.github.io/iptv/regions/mena.m3u Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u North America2421https://iptv-org.github.io/iptv/regions/noram.m3u Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u @@ -873,8 +873,8 @@ Same thing, but split up into separate files: Oceania55https://iptv-org.github.io/iptv/regions/oce.m3u South America1261https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u - Southeast Asia344https://iptv-org.github.io/iptv/regions/sea.m3u - Southern Europe1057https://iptv-org.github.io/iptv/regions/ser.m3u + Southeast Asia345https://iptv-org.github.io/iptv/regions/sea.m3u + Southern Europe1058https://iptv-org.github.io/iptv/regions/ser.m3u Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u Western Europe781https://iptv-org.github.io/iptv/regions/wer.m3u From 58613d2d21def9a3f0e5ee0a6d2c70b8f0e82e56 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 00:11:00 +0000 Subject: [PATCH 15/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14543632139) workflow. closes #21242, closes #21076, closes #21246, closes #21245, closes #21244, closes #21243 --- streams/bo.m3u | 2 + streams/cn_cctv.m3u | 16 ---- streams/do.m3u | 2 + streams/iq.m3u | 2 + streams/it.m3u | 2 + streams/pl.m3u | 174 -------------------------------------------- 6 files changed, 8 insertions(+), 190 deletions(-) diff --git a/streams/bo.m3u b/streams/bo.m3u index 6855b3ac3..914132edb 100644 --- a/streams/bo.m3u +++ b/streams/bo.m3u @@ -159,3 +159,5 @@ https://5fe2654d6127d.streamlock.net:443/boliviatv/videoboliviatv/playlist.m3u8 https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvsports/playlist.m3u8 #EXTINF:-1 tvg-id="ZoyTVTurcas.bo",Zoy TV Turcas (720p) https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytvturcas/playlist.m3u8 +#EXTINF:-1 tvg-id="ZoyTVPlus.bo",ZoyTV Plus (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/zoytv/playlist.m3u8 diff --git a/streams/cn_cctv.m3u b/streams/cn_cctv.m3u index fd2e23f0b..fce9ccb8b 100644 --- a/streams/cn_cctv.m3u +++ b/streams/cn_cctv.m3u @@ -5,33 +5,17 @@ https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL1.smil/playlist.m3u8 https://cd-live-stream.news.cctvplus.com/live/smil:CHANNEL2.smil/playlist.m3u8 #EXTINF:-1 tvg-id="CCTV1.cn",CCTV-1综合 (576p) http://42.176.185.28:9901/tsfile/live/1022_1.m3u8 -#EXTINF:-1 tvg-id="CCTV2.cn",CCTV-2财经 (1080p) -https://node1.olelive.com:6443/live/CCTV2HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV4America.cn",CCTV-4 America (1080p) https://global.cgtn.cicc.media.caton.cloud/master/cgtn-america.m3u8 #EXTINF:-1 tvg-id="CCTV4Asia.cn",CCTV-4 Asia (480p) http://210.210.155.37/qwr9ew/s/s19/index.m3u8 -#EXTINF:-1 tvg-id="CCTV5Plus.cn",CCTV-5+体育赛事 (1080p) -https://node1.olelive.com:6443/live/CCTV5PHD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5体育 (1080p) http://1.85.0.62:808/hls/503/index.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5体育 (1080p) http://220.178.228.153:1935/live/cctv5/playlist.m3u8 #EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5体育 (1080p) http://223.95.111.98:5555/newlive/live/hls/5/live.m3u8 -#EXTINF:-1 tvg-id="CCTV5.cn",CCTV-5体育 (1080p) -https://node1.olelive.com:6443/live/CCTV5HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV6.cn",CCTV-6电影 (1080p) http://1.85.0.62:808/hls/6/index.m3u8 -#EXTINF:-1 tvg-id="CCTV7.cn",CCTV-7国防军事 (1080p) -https://node1.olelive.com:6443/live/CCTV7HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV8.cn",CCTV-8电视剧 (1080p) -https://node1.olelive.com:6443/live/CCTV8HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV9.cn",CCTV-9纪录 (1080p) -https://node1.olelive.com:6443/live/CCTV9HD/hls.m3u8 -#EXTINF:-1 tvg-id="CCTV10.cn",CCTV-10科教 (1080p) -https://node1.olelive.com:6443/live/CCTV10HD/hls.m3u8 #EXTINF:-1 tvg-id="CCTV13.cn",CCTV-13新闻 (1080p) https://live-play.cctvnews.cctv.com/cctv/merge_cctv13.m3u8 -#EXTINF:-1 tvg-id="CCTV13.cn",CCTV-13新闻 (1080p) -https://node1.olelive.com:6443/live/CCTV13HD/hls.m3u8 diff --git a/streams/do.m3u b/streams/do.m3u index db58dc992..a10613fe4 100644 --- a/streams/do.m3u +++ b/streams/do.m3u @@ -519,3 +519,5 @@ https://ss3.domint.net:3108/zol_str/vzol/playlist.m3u8 https://5790d294af2dc.streamlock.net/Zonavisiontv/Zonavisiontv/playlist.m3u8 #EXTINF:-1 tvg-id="ZTV.do",ZTV (720p) [Not 24/7] https://lb00zdigital.streamprolive.com/mnt/hls/live.m3u8 +#EXTINF:-1 tvg-id="AvivamientoTV.do",Avivamiento TV (480p) +https://ssh101.bozztv.com/ssh101/avivamientotv/playlist.m3u8 diff --git a/streams/iq.m3u b/streams/iq.m3u index d67bac805..846617e9e 100644 --- a/streams/iq.m3u +++ b/streams/iq.m3u @@ -150,3 +150,5 @@ https://ca-rt.onetv.app/Waar/index-0.m3u8 https://5a3ed7a72ed4b.streamlock.net/zagrostv/SMIL:myStream.smil/playlist.m3u8 #EXTINF:-1 tvg-id="",Zarok TV Sorani (720p) https://zindisorani.zaroktv.com.tr/hls/stream.m3u8 +#EXTINF:-1 tvg-id="AvarTV.iq",Avar TV (1080p) +https://avr.host247.net/live/AvarTv/playlist.m3u8 diff --git a/streams/it.m3u b/streams/it.m3u index bd0d8fd0a..d62df232b 100644 --- a/streams/it.m3u +++ b/streams/it.m3u @@ -677,3 +677,5 @@ https://stream10.xdevel.com/video1s976543-1932/stream/playlist.m3u8 https://streamcdne1-845d8509d2cb4f249dd0b2ae5755b6c2.msvdn.net/rtv38/rtv38_live_main/mainabr/rtv38_live_main/main_576/chunks_dvr.m3u8 #EXTINF:-1 tvg-id="Super.it",Super! https://495c5a85d9074f29acffeaea9e0215eb.msvdn.net/super/super_main/super_main_hbbtv/playlist.m3u8 +#EXTINF:-1 tvg-id="tv9Telemaremma.it",tv9 Telemaremma (576p) +https://rtmp-live-ingest-us-east-1-universe-dacast-com.akamaized.net/transmuxv1/streams/2095a288-1384-ed2e-5da0-278ccbb72295.m3u8 diff --git a/streams/pl.m3u b/streams/pl.m3u index eb1ae6e28..43c952319 100644 --- a/streams/pl.m3u +++ b/streams/pl.m3u @@ -1,39 +1,25 @@ #EXTM3U #EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) -http://178.219.128.68:64888/4FUNDANC -#EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) http://178.219.128.68:64889/4FUNDANC #EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) http://185.236.229.62:9981/play/a020 -#EXTINF:-1 tvg-id="4FunKids.pl",4 Fun Kids (576p) -http://178.219.128.68:64888/4FUNKIDS -#EXTINF:-1 tvg-id="4FunTV.pl",4 Fun TV (576p) -http://178.219.128.68:64888/4FUNTV #EXTINF:-1 tvg-id="4FunTV.pl",4FUN TV (576p) [Not 24/7] https://stream.4fun.tv:8888/hls/4f.m3u8 #EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://109.233.89.166/13_Ulica_HD/index.m3u8 -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) http://109.233.89.170/13_Ulica_HD/index.m3u8 #EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) http://178.219.128.68:64888/13ULICHD #EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) http://185.236.229.62:9981/play/a03o #EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://109.233.89.166/Active_Family_HD/index.m3u8 -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) http://178.219.128.68:64888/ACTIFAMIHD #EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) http://178.219.128.68:64889/ACTIFAMIHD #EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) http://185.236.229.62:9981/play/a04a -#EXTINF:-1 tvg-id="AdventureTV.pl",Adventure TV (1080p) -http://109.233.89.170/Adventure_HD/index.m3u8 #EXTINF:-1 tvg-id="AFVFamily.pl",AFV Family (720p) https://ec4a5bcc9d664b48985de6095931aaa7.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_AmericasFunniestHomeVideos/playlist.m3u8 #EXTINF:-1 tvg-id="AlfaTVP.pl",Alfa TVP (1080p) -http://109.233.89.166/Alfa_TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="AlfaTVP.pl",Alfa TVP (1080p) http://109.233.89.170/Alfa_TVP_HD/index.m3u8 #EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) http://109.233.89.166/AMC_HD/index.m3u8 @@ -43,8 +29,6 @@ http://109.233.89.170/AMC_HD/index.m3u8 http://178.219.128.68:64889/AMCHD #EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) http://185.236.229.62:9981/play/a05g -#EXTINF:-1 tvg-id="AntenaHD.pl",Antena HD (1080p) -http://109.233.89.170/Antena_TV_HD/index.m3u8 #EXTINF:-1 tvg-id="AXN.pl",AXN (1080p) http://178.219.128.68:64888/AXN #EXTINF:-1 tvg-id="AXN.pl",AXN (1080p) @@ -79,13 +63,9 @@ http://185.236.229.62:9981/play/a06t https://103f01c3ff79408e83c9212f8a374ecc.mediatailor.us-east-1.amazonaws.com/v1/master/0fb304b2320b25f067414d481a779b77db81760d/RakutenTV-eu_BjgtjmeDarmoweFilmy/playlist.m3u8 #EXTINF:-1 tvg-id="CarCityAdventures.pl",Car City Adventures (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/b6397b24-18b0-49c2-80bf-0333ae568e37/5.m3u8 -#EXTINF:-1 tvg-id="CBeebies.pl",CBeebies (1080p) -http://185.236.229.62:9981/play/a06s #EXTINF:-1 tvg-id="CBSEuropa.pl",CBS Europa (1080p) http://185.236.229.62:9981/play/a06i #EXTINF:-1 tvg-id="CBSReality.pl",CBS Reality (1080p) -http://109.233.89.170/CBS_Reality_HD/index.m3u8 -#EXTINF:-1 tvg-id="CBSReality.pl",CBS Reality (1080p) http://185.236.229.62:9981/play/a02v #EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) http://109.233.89.170/Comedy_Central_HD/index.m3u8 @@ -95,8 +75,6 @@ http://178.219.128.68:64889/COMECENTHD http://185.236.229.62:9981/play/a068 #EXTINF:-1 tvg-id="CrimePlusInvestigationPolsat.pl",Crime + Investigation Polsat (1080p) http://185.236.229.62:9981/play/a07w -#EXTINF:-1 tvg-id="DaVinci.pl",Da Vinci (1080p) -http://109.233.89.170/Da_Vinci_HD/index.m3u8 #EXTINF:-1 tvg-id="DaVinci.pl",Da Vinci (576p) http://185.236.229.62:9981/play/a024 #EXTINF:-1 tvg-id="DAZNCombat.pl",DAZN Combat (1080p) @@ -106,8 +84,6 @@ https://dazn-daznwomensfootball-rakuten.amagi.tv/hls/amagi_hls_data_rakutenAA-da #EXTINF:-1 tvg-id="DiscoPoloMusic.pl",Disco Polo Music (1080p) http://185.236.229.62:9981/play/a078 #EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.166/Disney_Channel/index.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) http://109.233.89.170/Disney_Channel/index.m3u8 #EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) http://109.233.89.170/Disney_Channel/mono.m3u8 @@ -115,8 +91,6 @@ http://109.233.89.170/Disney_Channel/mono.m3u8 http://178.219.128.68:64888/DISNCHAN #EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel PL (1080p) http://185.236.229.62:9981/play/a07d -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (1080p) -http://178.219.128.68:64888/DISNJUNI #EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) http://109.233.89.166/Disney_Junior/index.m3u8 #EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) @@ -124,12 +98,8 @@ http://109.233.89.170/Disney_Junior/index.m3u8 #EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) http://185.236.229.62:9981/play/a06n #EXTINF:-1 tvg-id="DisneyXD.pl",Disney XD (576p) -http://178.219.128.68:64888/DISNXD -#EXTINF:-1 tvg-id="DisneyXD.pl",Disney XD (576p) http://185.236.229.62:9981/play/a07c #EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) -http://178.219.128.68:64889/DLAC -#EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) http://185.236.229.62:9981/play/a04u #EXTINF:-1 tvg-id="dlaCiebietv.pl",dlaCiebie.tv (1080p) [Not 24/7] http://94.246.128.53:1935/tv/dlaCiebieTv/playlist.m3u8 @@ -178,18 +148,12 @@ http://109.233.89.170/ELEVEN_SPORTS_4_HD/index.m3u8 http://185.236.229.62:9981/play/a029 #EXTINF:-1 tvg-id="EpicDrama.pl",Epic Drama (1080p) http://195.189.60.33:9010/play/a00e -#EXTINF:-1 tvg-id="EskaRockTV.pl",Eska Rock TV (1080p) -http://178.219.128.68:64889/ESKAROCKTV -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://109.233.89.166/ESKA_TV_HD/index.m3u8 #EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) http://109.233.89.170/ESKA_TV_HD/index.m3u8 #EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) http://178.219.128.68:64888/ESKATVHD #EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) http://185.236.229.62:9981/play/a02f -#EXTINF:-1 tvg-id="EskaTVExtra.pl",Eska TV Extra (1080p) -http://178.219.128.68:64888/ESKATVEXTRHD #EXTINF:-1 tvg-id="EWTNPoland.pl",EWTN Poland (1080p) https://cdn3.wowza.com/1/ZHdrMWt1NjlDSzFu/bzdDVG10/hls/live/playlist.m3u8 #EXTINF:-1 tvg-id="EzoTV.pl",Ezo TV (576p) [Not 24/7] @@ -198,8 +162,6 @@ http://live.ezotv.pl:1935/live/EZOTV/playlist.m3u8 https://bd93cfed.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZhaWxBcm15X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="FIFAPlus.pl",FIFA+ (720p) https://a62dad94.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZJRkFQbHVzRW5nbGlzaF9ITFM/playlist.m3u8 -#EXTINF:-1 tvg-id="FightKlub.pl",Fight Klub (1080p) -http://185.236.229.62:9981/play/a02l #EXTINF:-1 tvg-id="FightBox.pl",FightBox (1080p) http://185.236.229.62:9981/play/a03n #EXTINF:-1 tvg-id="FightBox.pl",FightBox (1080p) @@ -225,8 +187,6 @@ http://178.219.128.68:64888/FILMPREMHD #EXTINF:-1 tvg-id="FilmBoxPremiumHD.pl",FilmBox Premium HD (1080p) http://185.236.229.62:9981/play/a02x #EXTINF:-1 tvg-id="FokusTV.pl",Fokus TV (1080p) -http://178.219.128.68:64889/FOKUTV -#EXTINF:-1 tvg-id="FokusTV.pl",Fokus TV (1080p) http://185.236.229.62:9981/play/a02g #EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) http://109.233.89.166/FOX_HD/index.m3u8 @@ -242,8 +202,6 @@ http://178.219.128.68:64889/FOXCOMEHD http://185.236.229.62:9981/play/a07t #EXTINF:-1 tvg-id="GolfChannel.pl",Golf Channel (1080p) http://185.236.229.62:9981/play/a03m -#EXTINF:-1 tvg-id="GolfZone.pl",Golf Zone (1080p) -http://195.189.60.33:9002/play/a006 #EXTINF:-1 tvg-id="Grjngo.pl",Grjngo (720p) https://b6c7c7d1020a4588982ca7c2625f85d1.mediatailor.us-east-1.amazonaws.com/v1/master/0fb304b2320b25f067414d481a779b77db81760d/RakutenTV-eu_GrjngoWesterny/playlist.m3u8 #EXTINF:-1 tvg-id="HardKnocksFightingChampionship.pl",Hard Knocks Fighting Championship (720p) @@ -261,20 +219,14 @@ http://109.233.89.170/History_2_HD/index.m3u8 #EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) http://185.236.229.62:9981/play/a03l #EXTINF:-1 tvg-id="HomeTV.pl",Home TV (1080p) -http://109.233.89.166/TVR_HD/index.m3u8 -#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (1080p) http://178.219.128.68:64889/HOMETV #EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) -http://109.233.89.166/Kino_Polska_HD/index.m3u8 -#EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) http://178.219.128.68:64888/KINOPOLSHD #EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) http://185.236.229.62:9981/play/a05v #EXTINF:-1 tvg-id="KinoPolskaMuzyka.pl",Kino Polska Muzyka (576p) http://185.236.229.62:9981/play/a030 #EXTINF:-1 tvg-id="KinoTV.pl",Kino TV (1080p) -http://178.219.128.68:64888/KINOTV -#EXTINF:-1 tvg-id="KinoTV.pl",Kino TV (1080p) http://185.236.229.62:9981/play/a031 #EXTINF:-1 tvg-id="LoneStar.pl",Lone Star (720p) https://6b88cde9.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0xvbmVTdGFyX0hMUw/playlist.m3u8 @@ -283,12 +235,8 @@ https://3ee905090d464be5a51478fd9c642e93.mediatailor.us-east-1.amazonaws.com/v1/ #EXTINF:-1 tvg-id="MonsterJam.pl",Monster Jam (720p) https://4b9627c7.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X01vbnN0ZXJKYW1fSExT/playlist.m3u8 #EXTINF:-1 tvg-id="Motowizja.pl",Motowizja (1080p) -http://109.233.89.170/Motowizja_HD/index.m3u8 -#EXTINF:-1 tvg-id="Motowizja.pl",Motowizja (1080p) http://185.236.229.62:9981/play/a02r #EXTINF:-1 tvg-id="MTV.pl",MTV (1080p) -http://109.233.89.166/MTV_Polska_HD/index.m3u8 -#EXTINF:-1 tvg-id="MTV.pl",MTV (1080p) http://178.219.128.68:64888/MTVHD #EXTINF:-1 tvg-id="NatGeoPeople.pl",Nat Geo People http://185.236.229.62:9981/play/a06f @@ -297,8 +245,6 @@ http://178.219.128.68:64889/NATIGEOGHD #EXTINF:-1 tvg-id="NationalGeographic.pl",National Geographic (1080p) http://185.236.229.62:9981/play/a04d #EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) -http://109.233.89.166/National_Geographic_Wild_HD/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) http://109.233.89.170/National_Geographic_Wild_HD/index.m3u8 #EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) http://185.236.229.62:9981/play/a05z @@ -307,8 +253,6 @@ http://185.236.229.62:9981/play/a065 #EXTINF:-1 tvg-id="NickJr.pl",Nick Jr. Poland (576i) http://178.219.128.68:64888/NICKJR #EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://109.233.89.166/Nickelodeon/index.m3u8 -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) http://109.233.89.170/Nickelodeon/index.m3u8 #EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) http://178.219.128.68:64889/NICK @@ -317,15 +261,9 @@ http://185.236.229.62:9981/play/a067 #EXTINF:-1 tvg-id="Nicktoons.pl",Nicktoons (1080p) http://185.236.229.62:9981/play/a06a #EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) -http://109.233.89.170/NOWA_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) http://178.219.128.68:64889/NOWATVHD #EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) http://185.236.229.62:9981/play/a02h -#EXTINF:-1 tvg-id="NutaTV.pl",Nuta TV (576p) -http://178.219.128.68:64888/NUTA -#EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) -http://109.233.89.166/Paramount_Channel_HD/index.m3u8 #EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) http://109.233.89.170/Paramount_Channel_HD/index.m3u8 #EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) @@ -335,20 +273,14 @@ https://3ab76e42.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdX #EXTINF:-1 tvg-id="PFLMMA.pl",PFL MMA (720p) https://a883593c.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1BGTE1NQV9ITFM/playlist.m3u8 #EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) -http://109.233.89.166/Polo_TV/index.m3u8 -#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) http://178.219.128.68:64888/POLOTV #EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) http://185.236.229.62:9981/play/a02e -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (1080p) -http://178.219.128.68:64889/POLO1 #EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) http://109.233.89.166/Polonia_1/index.m3u8 #EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) http://109.233.89.170/Polonia_1/index.m3u8 #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://109.233.89.166/Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) http://109.233.89.170/Polsat_HD/index.m3u8 #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) http://178.219.128.68:64889/POLSHD @@ -357,136 +289,94 @@ http://185.236.229.62:9981/play/a03v #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) [Geo-blocked] https://lb2-e2-19.pluscdn.pl/ch/1502600/308/dash/20a18c30/live.mpd #EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://109.233.89.166/Polsat_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) http://109.233.89.170/Polsat_2_HD/index.m3u8 #EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) http://178.219.128.68:64888/POLS2HD #EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) http://185.236.229.62:9981/play/a042 #EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) -http://109.233.89.170/Polsat_Cafe_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) http://178.219.128.68:64889/POLSCAFEHD #EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) http://185.236.229.62:9981/play/a03z #EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://109.233.89.166/Polsat_Doku_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) http://109.233.89.170/Polsat_Doku_HD/index.m3u8 #EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) http://178.219.128.68:64888/POLSDOKUHD #EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) http://185.236.229.62:9981/play/a07z #EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://109.233.89.166/Polsat_Film_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) http://109.233.89.170/Polsat_Film_HD/index.m3u8 #EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) http://178.219.128.68:64889/POLSFILMHD #EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) http://185.236.229.62:9981/play/a040 #EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) -http://109.233.89.166/Polsat_Games/index.m3u8 -#EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) http://178.219.128.68:64889/POLSGAME #EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) http://185.236.229.62:9981/play/a025 #EXTINF:-1 tvg-id="PolsatJimJam.pl",Polsat JimJam (576p) -http://109.233.89.166/Polsat_JimJam/index.m3u8 -#EXTINF:-1 tvg-id="PolsatJimJam.pl",Polsat JimJam (576p) http://185.236.229.62:9981/play/a07e #EXTINF:-1 tvg-id="PolsatMusic.pl",Polsat Music (1080p) -http://109.233.89.170/Polsat_Music_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatMusic.pl",Polsat Music (1080p) http://185.236.229.62:9981/play/a02b #EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://109.233.89.166/Polsat_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) http://109.233.89.170/Polsat_News_HD/index.m3u8 #EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) http://178.219.128.68:64888/POLSNEWSHD #EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (720p) [Geo-blocked] http://cdn-s-lb2.pluscdn.pl/lv/1517830/349/dash/81ec4c32/live.mpd #EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) -http://109.233.89.166/Polsat_News_2/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) http://178.219.128.68:64889/POLSNEWS2 #EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) http://185.236.229.62:9981/play/a03u #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://109.233.89.166/Polsat_News_Polityka/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) http://109.233.89.170/Polsat_News_Polityka/index.m3u8 #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) http://178.219.128.68:64888/SUPEHD #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) http://185.236.229.62:9981/play/a07h #EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://109.233.89.166/Polsat_Play_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) http://109.233.89.170/Polsat_Play_HD/index.m3u8 #EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) http://178.219.128.68:64888/POLSPLAYHD #EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) http://185.236.229.62:9981/play/a03w #EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) -http://109.233.89.170/Polsat_Rodzina_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) http://178.219.128.68:64889/POLSRODZHD #EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) http://185.236.229.62:9981/play/a079 #EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://109.233.89.166/Polsat_Seriale_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) http://109.233.89.170/Polsat_Seriale_HD/index.m3u8 #EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) http://178.219.128.68:64888/POLSROMA #EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) http://185.236.229.62:9981/play/a07b #EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) -http://109.233.89.170/Polsat_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) http://178.219.128.68:64889/POLSSPORHD #EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) http://185.236.229.62:9981/play/a07n #EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) -http://109.233.89.170/Polsat_Sport_Extra_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) http://178.219.128.68:64889/POLSSPOREXTRHD #EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) http://185.236.229.62:9981/play/a07q #EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://109.233.89.170/Polsat_Sport_Fight_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) http://178.219.128.68:64888/POLSSPORFIGHHD #EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) http://178.219.128.68:64889/POLSSPORFIGHHD #EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) http://185.236.229.62:9981/play/a06l #EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) -http://109.233.89.170/Polsat_Sport_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) http://178.219.128.68:64889/POLSSPORNEWSHD #EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) http://185.236.229.62:9981/play/a06m #EXTINF:-1 tvg-id="PolsatViasatExplore.pl",Polsat Viasat Explore (1080p) -http://178.219.128.68:64888/POLSVIASEXPLHD -#EXTINF:-1 tvg-id="PolsatViasatExplore.pl",Polsat Viasat Explore (1080p) http://178.219.128.68:64889/POLSVIASEXPLHD #EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) -http://178.219.128.68:64888/POLSVIASHISTHD -#EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) http://178.219.128.68:64889/POLSVIASHISTHD #EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) http://185.236.229.62:9981/play/a07o #EXTINF:-1 tvg-id="PolsatViasatNature.pl",Polsat Viasat Nature (1080p) -http://178.219.128.68:64888/POLSVIASNATUHD -#EXTINF:-1 tvg-id="PolsatViasatNature.pl",Polsat Viasat Nature (1080p) http://185.236.229.62:9981/play/a06g #EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080p) -http://178.219.128.68:64889/PULS2HD -#EXTINF:-1 tvg-id="Puls2.pl",Puls 2 (1080p) http://185.236.229.62:9981/play/a02y #EXTINF:-1 tvg-id="RadiowaCzworka.pl",Radio Czwórka (1080p) https://stream14.polskieradio.pl/pr4_video/video_pr4.stream/playlist.m3u8 @@ -499,8 +389,6 @@ https://fast-rakuten.okast.tv/fa2e8c4385712f9a9076eaf728c751de/channels/1a6ecfaa #EXTINF:-1 tvg-id="Revry.pl",Revry (720p) https://99d8b4b6.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1JldnJ5X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) -http://109.233.89.166/Romance_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) http://109.233.89.170/Romance_TV_HD/index.m3u8 #EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) http://185.236.229.62:9981/play/a05j @@ -516,10 +404,6 @@ http://stream.sferatv.pl:1935/sferalive/smil:sferalive.smil/playlist.m3u8 https://rakutenaa-fusemedia-shadesofblack-rakutena-giu24.amagi.tv/playlist/rakutenAA-fusemedia-shadesofblack-rakutenA/playlist.m3u8 #EXTINF:-1 tvg-id="SportKlub.pl",Sport Klub (1080p) http://185.236.229.62:9981/play/a02k -#EXTINF:-1 tvg-id="StarsTV.pl",Stars TV (1080p) -http://178.219.128.68:64888/STARTVHD -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://109.233.89.166/Stopklatka_HD/index.m3u8 #EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) http://109.233.89.170/Stopklatka_HD/index.m3u8 #EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) @@ -529,16 +413,12 @@ http://185.236.229.62:9981/play/a023 #EXTINF:-1 tvg-id="SundanceTV.pl",Sundance TV (1080p) http://185.236.229.62:9981/play/a03i #EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://109.233.89.166/Super_Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) http://109.233.89.170/Super_Polsat_HD/index.m3u8 #EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) http://178.219.128.68:64889/SUPEPOLSHD #EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) http://185.236.229.62:9981/play/a043 #EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) -http://109.233.89.166/Wydarzenia_24_HD/index.m3u8 -#EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) http://109.233.89.170/Wydarzenia_24_HD/index.m3u8 #EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) http://185.236.229.62:9981/play/a06j @@ -549,8 +429,6 @@ http://109.233.89.170/TeenNick/index.m3u8 #EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) http://109.233.89.173/TeenNick/index.m3u8 #EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://109.233.89.166/Tele_5_HD/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) http://109.233.89.170/Tele_5_HD/index.m3u8 #EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) http://178.219.128.68:64888/TELE5HD @@ -568,13 +446,9 @@ https://6ec8627d.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdX https://d39g1vxj2ef6in.cloudfront.net/v1/master/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/master.m3u8?ads.xumo_channelId=88883039 #EXTINF:-1 tvg-id="TOPBarca.pl",TOP Barca (1080p) https://amg17560-fcb-amg17560c1-rakuten-uk-4891.playouts.now.amagi.tv/playlist/amg17560-fcbarcelona-topbarcaenglish-rakutenuk/playlist.m3u8 -#EXTINF:-1 tvg-id="TopMoviesPolska.pl",Top Movies Polska (720p) -https://d14678b7277b4f21964f367309c8f3e2.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pl_TopMoviesPolska/playlist.m3u8 #EXTINF:-1 tvg-id="TrusoTV.pl",Truso TV (576p) [Not 24/7] https://stream.truso.tv/elblag/myStream_aac/playlist.m3u8 #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://109.233.89.166/TV4_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) http://109.233.89.170/TV4_HD/index.m3u8 #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) http://178.219.128.68:64889/TV4HD @@ -583,8 +457,6 @@ http://185.236.229.62:9981/play/a03x #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) [Geo-blocked] https://lb2-e2-32.pluscdn.pl/ch/1502601/309/dash/e25c2c93/live.mpd #EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://109.233.89.166/TV6_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) http://109.233.89.170/TV6_HD/index.m3u8 #EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) http://178.219.128.68:64889/TV6HD @@ -603,8 +475,6 @@ http://185.236.229.62:9981/play/a07l #EXTINF:-1 tvg-id="TVOkazje.pl",TV Okazje (576p) http://185.236.229.62:9981/play/a07m #EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) -http://109.233.89.166/TV_Puls_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) http://178.219.128.68:64889/TVPULSHD #EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) http://185.236.229.62:9981/play/a034 @@ -624,10 +494,6 @@ http://217.173.176.107:1935/live/tvk.stream/playlist.m3u8 https://live-ch1.trwam.cf.insyscd.net/out/v1/b99041a282774d4a8fe84a54243af5de/trwamtv-live-ch1.mpd #EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (576p) http://109.233.89.170/TV_TRWAM/index.m3u8 -#EXTINF:-1 tvg-id="TVWielkopolska.pl",TV Wielkopolska (614p) -https://stream6.nadaje.com:35308/live/stream-1/playlist.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://109.233.89.166/TVP1_HD/index.m3u8 #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) http://109.233.89.170/TVP1_HD/index.m3u8 #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) @@ -635,8 +501,6 @@ http://178.219.128.68:64889/TVP1HD #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) https://ec06-krk3.cache.orange.pl/dai4/org1/vb/104/tvp1hd/index.m3u8 #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://109.233.89.166/TVP2_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) http://109.233.89.170/TVP2_HD/index.m3u8 #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) http://178.219.128.68:64889/TVP2HD @@ -672,90 +536,62 @@ https://cdndai.pl/tvp3poznansd/index.m3u8 https://cdndai.pl/tvp3rzeszowsd/index.m3u8 #EXTINF:-1 tvg-id="TVP3Szczecin.pl",TVP 3 Szczecin (576p) https://cdndai.pl/tvp3szczecinsd/index.m3u8 -#EXTINF:-1 tvg-id="TVP3Warszawa.pl",TVP 3 Warszawa (1080p) -http://185.236.229.62:9981/play/a060 #EXTINF:-1 tvg-id="TVP3Warszawa.pl",TVP 3 Warszawa (576p) https://cdndai.pl/tvp3warszawasd/index.m3u8 #EXTINF:-1 tvg-id="TVP3Wroclaw.pl",TVP 3 Wrocław (576p) https://cdndai.pl/tvp3wroclawsd/index.m3u8 #EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (1080p) -http://109.233.89.170/TVP_ABC/index.m3u8 -#EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (1080p) http://178.219.128.68:64888/TVPABC #EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (576p) http://185.236.229.62:9981/play/a02z #EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://109.233.89.166/TVP_Dokument_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) http://109.233.89.170/TVP_Dokument_HD/index.m3u8 #EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) http://178.219.128.68:64889/TVPDOKUHD #EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) http://185.236.229.62:9981/play/a05b #EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) -http://109.233.89.166/TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) http://109.233.89.170/TVP_HD/index.m3u8 #EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) http://185.236.229.62:9981/play/a02i #EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (1080p) -http://109.233.89.170/TVP_Historia/index.m3u8 -#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (1080p) http://178.219.128.68:64889/TVPHIST #EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576p) http://185.236.229.62:9981/play/a035 #EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://109.233.89.166/TVP_INFO_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) http://109.233.89.170/TVP_INFO_HD/index.m3u8 #EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) http://178.219.128.68:64889/TVPINFOHD #EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) http://185.236.229.62:9981/play/a02j #EXTINF:-1 tvg-id="TVPKobieta.pl",TVP Kobieta (1080p) -http://109.233.89.170/TVP_Kobieta_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPKobieta.pl",TVP Kobieta (1080p) http://178.219.128.68:64889/TVPKOBIHD #EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080p) -http://178.219.128.68:64889/TVPKULT -#EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080p) http://185.236.229.62:9981/play/a02t #EXTINF:-1 tvg-id="TVPNauka.pl",TVP Nauka (1080p) -http://109.233.89.166/TVP_Nauka/index.m3u8 -#EXTINF:-1 tvg-id="TVPNauka.pl",TVP Nauka (1080p) http://109.233.89.170/TVP_Nauka/index.m3u8 #EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://109.233.89.166/TVP_Polonia_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) http://109.233.89.170/TVP_Polonia_HD/index.m3u8 #EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) http://178.219.128.68:64889/TVPPOLOHD #EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) http://185.236.229.62:9981/play/a08m #EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://109.233.89.166/TVP_Rozrywka/index.m3u8 -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) http://109.233.89.170/TVP_Rozrywka/index.m3u8 #EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) http://178.219.128.68:64889/TVPROZR #EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (576p) http://185.236.229.62:9981/play/a026 #EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) -http://109.233.89.166/TVP_Seriale/index.m3u8 -#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) http://178.219.128.68:64889/TVPSERI #EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) http://185.236.229.62:9981/play/a02w #EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://109.233.89.166/TVP_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) http://109.233.89.170/TVP_Sport_HD/index.m3u8 #EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) http://178.219.128.68:64889/TVPSPORHD #EXTINF:-1 tvg-id="TVPWorld.pl",TVP World (1080p) http://178.219.128.68:64888/TVPWORLHD -#EXTINF:-1 tvg-id="TVS.pl",TVS (1080p) -http://178.219.128.68:64888/TVS #EXTINF:-1 tvg-id="TVS.pl",TVS (576p) http://185.236.229.62:9981/play/a02p #EXTINF:-1 tvg-id="TVT.pl",TVT (720p) @@ -764,12 +600,6 @@ https://live.streamtvt.pl/LiveAppStreamTVT/streams/853271271313930867905724.m3u8 http://gargoyle.tomkow.pl/hls/tvt.m3u8 #EXTINF:-1 tvg-id="ViasatExploreClassic.pl",Viasat Explore Classic (720p) https://da9c49fa.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLXBsX1ZpYXNhdEV4cGxvcmVfSExT/playlist.m3u8 -#EXTINF:-1 tvg-id="ViDocTV.pl",ViDoc TV (1080p) -http://185.236.229.62:9981/play/a051 -#EXTINF:-1 tvg-id="VOXMusicTV.pl",VOX Music TV (576p) -http://109.233.89.166/VOX/index.m3u8 -#EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (1080p) -http://109.233.89.170/wPolsce.PL/index.m3u8 #EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) http://109.233.89.166/wPolsce.PL/index.m3u8 #EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) @@ -781,8 +611,6 @@ https://rakutenaa-mainstreammediafreesportsintl-rakuten-t7dc0.amagi.tv/playlist/ #EXTINF:-1 tvg-id="WorldPokerTour.pl",World Poker Tour (1080p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/15d59f2f-80da-4448-9bce-775cc9f470f7/1.m3u8 #EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://109.233.89.166/WP_HD/index.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) http://109.233.89.170/WP_HD/index.m3u8 #EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) http://178.219.128.68:64889/WPHD @@ -793,8 +621,6 @@ https://d39g1vxj2ef6in.cloudfront.net/v1/master/3fec3e5cac39a52b2132f9c66c83dae0 #EXTINF:-1 tvg-id="ZeeOne.pl",Zee One (720p) https://89ec2d15e090480bb419d940b8793b9c.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_ZeeWorld-1/playlist.m3u8 #EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://109.233.89.166/Zoom_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) http://109.233.89.170/Zoom_TV_HD/index.m3u8 #EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) http://178.219.128.68:64889/ZOOMTVHD From 4c5a0afe317e25a28d0f7aab425ed03afd3a3f1e Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Sat, 19 Apr 2025 00:11:00 +0000 Subject: [PATCH 16/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14543632139) workflow. --- README.md | 88 +++++++++++++++++++++++++++---------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 8c9a78bd4..fa3ade627 100644 --- a/README.md +++ b/README.md @@ -60,29 +60,29 @@ Same thing, but split up into separate files: Classic44https://iptv-org.github.io/iptv/categories/classic.m3u Comedy60https://iptv-org.github.io/iptv/categories/comedy.m3u Cooking23https://iptv-org.github.io/iptv/categories/cooking.m3u - Culture168https://iptv-org.github.io/iptv/categories/culture.m3u - Documentary81https://iptv-org.github.io/iptv/categories/documentary.m3u - Education152https://iptv-org.github.io/iptv/categories/education.m3u - Entertainment541https://iptv-org.github.io/iptv/categories/entertainment.m3u + Culture167https://iptv-org.github.io/iptv/categories/culture.m3u + Documentary80https://iptv-org.github.io/iptv/categories/documentary.m3u + Education150https://iptv-org.github.io/iptv/categories/education.m3u + Entertainment542https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u General2348https://iptv-org.github.io/iptv/categories/general.m3u - Kids177https://iptv-org.github.io/iptv/categories/kids.m3u + Kids175https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u Movies234https://iptv-org.github.io/iptv/categories/movies.m3u - Music664https://iptv-org.github.io/iptv/categories/music.m3u + Music659https://iptv-org.github.io/iptv/categories/music.m3u News769https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u - Religious692https://iptv-org.github.io/iptv/categories/religious.m3u + Religious693https://iptv-org.github.io/iptv/categories/religious.m3u Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u Shop86https://iptv-org.github.io/iptv/categories/shop.m3u - Sports267https://iptv-org.github.io/iptv/categories/sports.m3u + Sports266https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4729https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4728https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -138,7 +138,7 @@ Same thing, but split up into separate files: Chewa3https://iptv-org.github.io/iptv/languages/nya.m3u Chhattisgarhi1https://iptv-org.github.io/iptv/languages/hne.m3u Chiga1https://iptv-org.github.io/iptv/languages/cgg.m3u - Chinese188https://iptv-org.github.io/iptv/languages/zho.m3u + Chinese184https://iptv-org.github.io/iptv/languages/zho.m3u Croatian22https://iptv-org.github.io/iptv/languages/hrv.m3u Czech35https://iptv-org.github.io/iptv/languages/ces.m3u Danish19https://iptv-org.github.io/iptv/languages/dan.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2113https://iptv-org.github.io/iptv/languages/eng.m3u + English2112https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -165,7 +165,7 @@ Same thing, but split up into separate files: Ganda5https://iptv-org.github.io/iptv/languages/lug.m3u Gen1https://iptv-org.github.io/iptv/languages/gej.m3u Georgian9https://iptv-org.github.io/iptv/languages/kat.m3u - German257https://iptv-org.github.io/iptv/languages/deu.m3u + German256https://iptv-org.github.io/iptv/languages/deu.m3u Gikuyu2https://iptv-org.github.io/iptv/languages/kik.m3u Goan Konkani1https://iptv-org.github.io/iptv/languages/gom.m3u Greek125https://iptv-org.github.io/iptv/languages/ell.m3u @@ -184,7 +184,7 @@ Same thing, but split up into separate files: Iranian Persian1https://iptv-org.github.io/iptv/languages/pes.m3u Irish7https://iptv-org.github.io/iptv/languages/gle.m3u Isekiri1https://iptv-org.github.io/iptv/languages/its.m3u - Italian288https://iptv-org.github.io/iptv/languages/ita.m3u + Italian289https://iptv-org.github.io/iptv/languages/ita.m3u Japanese69https://iptv-org.github.io/iptv/languages/jpn.m3u Javanese3https://iptv-org.github.io/iptv/languages/jav.m3u Kabiyè1https://iptv-org.github.io/iptv/languages/kbp.m3u @@ -201,7 +201,7 @@ Same thing, but split up into separate files: Konkani (macrolanguage)2https://iptv-org.github.io/iptv/languages/kok.m3u Korean96https://iptv-org.github.io/iptv/languages/kor.m3u Kumam1https://iptv-org.github.io/iptv/languages/kdi.m3u - Kurdish31https://iptv-org.github.io/iptv/languages/kur.m3u + Kurdish32https://iptv-org.github.io/iptv/languages/kur.m3u Lango (Uganda)1https://iptv-org.github.io/iptv/languages/laj.m3u Lao8https://iptv-org.github.io/iptv/languages/lao.m3u Latin3https://iptv-org.github.io/iptv/languages/lat.m3u @@ -235,7 +235,7 @@ Same thing, but split up into separate files: Parsi-Dari3https://iptv-org.github.io/iptv/languages/prd.m3u Pashto16https://iptv-org.github.io/iptv/languages/pus.m3u Persian139https://iptv-org.github.io/iptv/languages/fas.m3u - Polish160https://iptv-org.github.io/iptv/languages/pol.m3u + Polish149https://iptv-org.github.io/iptv/languages/pol.m3u Portuguese337https://iptv-org.github.io/iptv/languages/por.m3u Pulaar1https://iptv-org.github.io/iptv/languages/fuc.m3u Quechua1https://iptv-org.github.io/iptv/languages/que.m3u @@ -252,7 +252,7 @@ Same thing, but split up into separate files: Slovak49https://iptv-org.github.io/iptv/languages/slk.m3u Slovenian13https://iptv-org.github.io/iptv/languages/slv.m3u Somali11https://iptv-org.github.io/iptv/languages/som.m3u - Spanish2071https://iptv-org.github.io/iptv/languages/spa.m3u + Spanish2073https://iptv-org.github.io/iptv/languages/spa.m3u Sranan Tongo3https://iptv-org.github.io/iptv/languages/srn.m3u Swahili24https://iptv-org.github.io/iptv/languages/swa.m3u Swedish16https://iptv-org.github.io/iptv/languages/swe.m3u @@ -286,7 +286,7 @@ Same thing, but split up into separate files: Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u Yue Chinese7https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2885https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2886https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -358,7 +358,7 @@ Same thing, but split up into separate files: 🇧🇯 Benin33https://iptv-org.github.io/iptv/countries/bj.m3u 🇧🇲 Bermuda7https://iptv-org.github.io/iptv/countries/bm.m3u 🇧🇹 Bhutan5https://iptv-org.github.io/iptv/countries/bt.m3u - 🇧🇴 Bolivia128https://iptv-org.github.io/iptv/countries/bo.m3u + 🇧🇴 Bolivia129https://iptv-org.github.io/iptv/countries/bo.m3u       Cochabamba1https://iptv-org.github.io/iptv/subdivisions/bo-c.m3u       La Paz2https://iptv-org.github.io/iptv/subdivisions/bo-l.m3u       Oruro1https://iptv-org.github.io/iptv/subdivisions/bo-o.m3u @@ -423,7 +423,7 @@ Same thing, but split up into separate files:       Maule1https://iptv-org.github.io/iptv/subdivisions/cl-ml.m3u       Nuble3https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u       Valparaiso2https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u - 🇨🇳 China143https://iptv-org.github.io/iptv/countries/cn.m3u + 🇨🇳 China139https://iptv-org.github.io/iptv/countries/cn.m3u 🇨🇴 Colombia194https://iptv-org.github.io/iptv/countries/co.m3u       Antioquia1https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u       Atlantico1https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u @@ -455,7 +455,7 @@ Same thing, but split up into separate files: 🇩🇰 Denmark57https://iptv-org.github.io/iptv/countries/dk.m3u 🇩🇯 Djibouti63https://iptv-org.github.io/iptv/countries/dj.m3u 🇩🇲 Dominica13https://iptv-org.github.io/iptv/countries/dm.m3u - 🇩🇴 Dominican Republic252https://iptv-org.github.io/iptv/countries/do.m3u + 🇩🇴 Dominican Republic253https://iptv-org.github.io/iptv/countries/do.m3u       Distrito Nacional (Santo Domingo)2https://iptv-org.github.io/iptv/subdivisions/do-01.m3u       El Seibo1https://iptv-org.github.io/iptv/subdivisions/do-08.m3u       La Altagracia2https://iptv-org.github.io/iptv/subdivisions/do-11.m3u @@ -489,7 +489,7 @@ Same thing, but split up into separate files: 🇬🇦 Gabon28https://iptv-org.github.io/iptv/countries/ga.m3u 🇬🇲 Gambia24https://iptv-org.github.io/iptv/countries/gm.m3u 🇬🇪 Georgia36https://iptv-org.github.io/iptv/countries/ge.m3u - 🇩🇪 Germany248https://iptv-org.github.io/iptv/countries/de.m3u + 🇩🇪 Germany247https://iptv-org.github.io/iptv/countries/de.m3u 🇬🇭 Ghana42https://iptv-org.github.io/iptv/countries/gh.m3u 🇬🇷 Greece145https://iptv-org.github.io/iptv/countries/gr.m3u       Attiki10https://iptv-org.github.io/iptv/subdivisions/gr-i.m3u @@ -555,10 +555,10 @@ Same thing, but split up into separate files:       Sumatera Selatan2https://iptv-org.github.io/iptv/subdivisions/id-ss.m3u       Yogyakarta3https://iptv-org.github.io/iptv/subdivisions/id-yo.m3u 🇮🇷 Iran124https://iptv-org.github.io/iptv/countries/ir.m3u - 🇮🇶 Iraq108https://iptv-org.github.io/iptv/countries/iq.m3u + 🇮🇶 Iraq109https://iptv-org.github.io/iptv/countries/iq.m3u 🇮🇪 Ireland56https://iptv-org.github.io/iptv/countries/ie.m3u 🇮🇱 Israel22https://iptv-org.github.io/iptv/countries/il.m3u - 🇮🇹 Italy324https://iptv-org.github.io/iptv/countries/it.m3u + 🇮🇹 Italy325https://iptv-org.github.io/iptv/countries/it.m3u       Trentino-Alto Adige3https://iptv-org.github.io/iptv/subdivisions/it-32.m3u 🇨🇮 Ivory Coast52https://iptv-org.github.io/iptv/countries/ci.m3u 🇯🇲 Jamaica19https://iptv-org.github.io/iptv/countries/jm.m3u @@ -665,7 +665,7 @@ Same thing, but split up into separate files:       Ucayali2https://iptv-org.github.io/iptv/subdivisions/pe-uca.m3u 🇵🇭 Philippines26https://iptv-org.github.io/iptv/countries/ph.m3u 🇵🇳 Pitcairn Islands5https://iptv-org.github.io/iptv/countries/pn.m3u - 🇵🇱 Poland203https://iptv-org.github.io/iptv/countries/pl.m3u + 🇵🇱 Poland192https://iptv-org.github.io/iptv/countries/pl.m3u 🇵🇹 Portugal83https://iptv-org.github.io/iptv/countries/pt.m3u 🇵🇷 Puerto Rico100https://iptv-org.github.io/iptv/countries/pr.m3u 🇶🇦 Qatar54https://iptv-org.github.io/iptv/countries/qa.m3u @@ -818,7 +818,7 @@ Same thing, but split up into separate files: 🇾🇪 Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u 🇿🇲 Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u 🇿🇼 Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2885https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2886https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -845,41 +845,41 @@ Same thing, but split up into separate files: Africa546https://iptv-org.github.io/iptv/regions/afr.m3u - Americas3602https://iptv-org.github.io/iptv/regions/amer.m3u - Arab world402https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2145https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1136https://iptv-org.github.io/iptv/regions/apac.m3u + Americas3604https://iptv-org.github.io/iptv/regions/amer.m3u + Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u + Asia2142https://iptv-org.github.io/iptv/regions/asia.m3u + Asia-Pacific1132https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations345https://iptv-org.github.io/iptv/regions/asean.m3u Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u - Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u + Caribbean367https://iptv-org.github.io/iptv/regions/carib.m3u Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe998https://iptv-org.github.io/iptv/regions/cee.m3u + Central and Eastern Europe987https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2867https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3779https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1964https://iptv-org.github.io/iptv/regions/eu.m3u - Hispanic America1681https://iptv-org.github.io/iptv/regions/hispam.m3u - Latin America1998https://iptv-org.github.io/iptv/regions/latam.m3u - Latin America and the Caribbean2042https://iptv-org.github.io/iptv/regions/lac.m3u + Europe2856https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3769https://iptv-org.github.io/iptv/regions/emea.m3u + European Union1953https://iptv-org.github.io/iptv/regions/eu.m3u + Hispanic America1683https://iptv-org.github.io/iptv/regions/hispam.m3u + Latin America2000https://iptv-org.github.io/iptv/regions/latam.m3u + Latin America and the Caribbean2044https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u - Middle East808https://iptv-org.github.io/iptv/regions/mideast.m3u - Middle East and North Africa837https://iptv-org.github.io/iptv/regions/mena.m3u + Middle East809https://iptv-org.github.io/iptv/regions/mideast.m3u + Middle East and North Africa838https://iptv-org.github.io/iptv/regions/mena.m3u Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u - North America2421https://iptv-org.github.io/iptv/regions/noram.m3u + North America2422https://iptv-org.github.io/iptv/regions/noram.m3u Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u Northern Europe153https://iptv-org.github.io/iptv/regions/neur.m3u Oceania55https://iptv-org.github.io/iptv/regions/oce.m3u - South America1261https://iptv-org.github.io/iptv/regions/southam.m3u + South America1262https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u Southeast Asia345https://iptv-org.github.io/iptv/regions/sea.m3u - Southern Europe1058https://iptv-org.github.io/iptv/regions/ser.m3u + Southern Europe1059https://iptv-org.github.io/iptv/regions/ser.m3u Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u - Western Europe781https://iptv-org.github.io/iptv/regions/wer.m3u + Western Europe780https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2885https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2886https://iptv-org.github.io/iptv/regions/undefined.m3u From 01a6f7f2760be9e717f6390f8f686093caf76923 Mon Sep 17 00:00:00 2001 From: Jxpl9 Date: Sat, 19 Apr 2025 16:54:06 +0200 Subject: [PATCH 17/44] BIG UPDATE - pl.m3u remove not working broadcasts --- streams/pl.m3u | 274 ------------------------------------------------- 1 file changed, 274 deletions(-) diff --git a/streams/pl.m3u b/streams/pl.m3u index 43c952319..353049fef 100644 --- a/streams/pl.m3u +++ b/streams/pl.m3u @@ -1,37 +1,17 @@ #EXTM3U #EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) -http://178.219.128.68:64889/4FUNDANC -#EXTINF:-1 tvg-id="4FunDance.pl",4 Fun Dance (576p) http://185.236.229.62:9981/play/a020 #EXTINF:-1 tvg-id="4FunTV.pl",4FUN TV (576p) [Not 24/7] https://stream.4fun.tv:8888/hls/4f.m3u8 #EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://109.233.89.170/13_Ulica_HD/index.m3u8 -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) -http://178.219.128.68:64888/13ULICHD -#EXTINF:-1 tvg-id="13Ulica.pl",13 Ulica (1080p) http://185.236.229.62:9981/play/a03o #EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://178.219.128.68:64888/ACTIFAMIHD -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) -http://178.219.128.68:64889/ACTIFAMIHD -#EXTINF:-1 tvg-id="ActiveFamily.pl",Active Family (1080p) http://185.236.229.62:9981/play/a04a #EXTINF:-1 tvg-id="AFVFamily.pl",AFV Family (720p) https://ec4a5bcc9d664b48985de6095931aaa7.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_AmericasFunniestHomeVideos/playlist.m3u8 -#EXTINF:-1 tvg-id="AlfaTVP.pl",Alfa TVP (1080p) -http://109.233.89.170/Alfa_TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) -http://109.233.89.166/AMC_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) -http://109.233.89.170/AMC_HD/index.m3u8 -#EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) -http://178.219.128.68:64889/AMCHD #EXTINF:-1 tvg-id="AMC.pl",AMC (1080p) http://185.236.229.62:9981/play/a05g #EXTINF:-1 tvg-id="AXN.pl",AXN (1080p) -http://178.219.128.68:64888/AXN -#EXTINF:-1 tvg-id="AXN.pl",AXN (1080p) http://185.236.229.62:9981/play/a07s #EXTINF:-1 tvg-id="AXNBlack.pl",AXN Black (576p) http://185.236.229.62:9981/play/a075 @@ -40,24 +20,12 @@ http://185.236.229.62:9981/play/a044 #EXTINF:-1 tvg-id="AXNWhite.pl",AXN White (576p) http://185.236.229.62:9981/play/a074 #EXTINF:-1 tvg-id="BBCBrit.pl",BBC Brit (1080p) -http://109.233.89.170/BBC_Brit_HD/index.m3u8 -#EXTINF:-1 tvg-id="BBCBrit.pl",BBC Brit (1080p) -http://178.219.128.68:64889/BBCBRITHD -#EXTINF:-1 tvg-id="BBCBrit.pl",BBC Brit (1080p) http://185.236.229.62:9981/play/a06r #EXTINF:-1 tvg-id="BBCEarth.pl",BBC Earth (1080p) -http://109.233.89.170/BBC_Earth_HD/index.m3u8 -#EXTINF:-1 tvg-id="BBCEarth.pl",BBC Earth (1080p) -http://178.219.128.68:64888/BBCEARTHD -#EXTINF:-1 tvg-id="BBCEarth.pl",BBC Earth (1080p) -http://178.219.128.68:64889/BBCEARTHD -#EXTINF:-1 tvg-id="BBCEarth.pl",BBC Earth (1080p) http://185.236.229.62:9981/play/a02o #EXTINF:-1 tvg-id="BBCFirst.pl",BBC First (1080p) http://185.236.229.62:9981/play/a02n #EXTINF:-1 tvg-id="BBCLifestyle.pl",BBC Lifestyle (1080p) -http://178.219.128.68:64888/BBCLIFEHD -#EXTINF:-1 tvg-id="BBCLifestyle.pl",BBC Lifestyle (1080p) http://185.236.229.62:9981/play/a06t #EXTINF:-1 tvg-id="Bigtime.pl",Bigtime (720p) https://103f01c3ff79408e83c9212f8a374ecc.mediatailor.us-east-1.amazonaws.com/v1/master/0fb304b2320b25f067414d481a779b77db81760d/RakutenTV-eu_BjgtjmeDarmoweFilmy/playlist.m3u8 @@ -68,10 +36,6 @@ http://185.236.229.62:9981/play/a06i #EXTINF:-1 tvg-id="CBSReality.pl",CBS Reality (1080p) http://185.236.229.62:9981/play/a02v #EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) -http://109.233.89.170/Comedy_Central_HD/index.m3u8 -#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) -http://178.219.128.68:64889/COMECENTHD -#EXTINF:-1 tvg-id="ComedyCentral.pl",Comedy Central (1080p) http://185.236.229.62:9981/play/a068 #EXTINF:-1 tvg-id="CrimePlusInvestigationPolsat.pl",Crime + Investigation Polsat (1080p) http://185.236.229.62:9981/play/a07w @@ -83,19 +47,9 @@ https://dazn-combat-rakuten.amagi.tv/hls/amagi_hls_data_rakutenAA-dazn-combat-ra https://dazn-daznwomensfootball-rakuten.amagi.tv/hls/amagi_hls_data_rakutenAA-dazn-daznwomensfootball-rakuten/CDN/master.m3u8 #EXTINF:-1 tvg-id="DiscoPoloMusic.pl",Disco Polo Music (1080p) http://185.236.229.62:9981/play/a078 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.170/Disney_Channel/index.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://109.233.89.170/Disney_Channel/mono.m3u8 -#EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel (1080p) -http://178.219.128.68:64888/DISNCHAN #EXTINF:-1 tvg-id="DisneyChannel.pl",Disney Channel PL (1080p) http://185.236.229.62:9981/play/a07d #EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) -http://109.233.89.166/Disney_Junior/index.m3u8 -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) -http://109.233.89.170/Disney_Junior/index.m3u8 -#EXTINF:-1 tvg-id="DisneyJunior.pl",Disney Junior (576p) http://185.236.229.62:9981/play/a06n #EXTINF:-1 tvg-id="DisneyXD.pl",Disney XD (576p) http://185.236.229.62:9981/play/a07c @@ -114,91 +68,47 @@ http://9b129915.akadatel.com/iptv/83GA6FAV4DPTPQ/20068/index.m3u8 #EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (2160p) http://185.236.229.62:9981/play/a03t #EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) -http://109.233.89.166/Eleven_Sports_1_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) -http://109.233.89.170/Eleven_Sports_1_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports1.pl",Eleven Sports 1 (1080p) http://185.236.229.62:9981/play/a05w #EXTINF:-1 tvg-id="ElevenSports1.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 1 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://windnew.iosplayer.ru/wind/premium71/mono.m3u8 #EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) -http://109.233.89.166/Eleven_Sports_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) -http://109.233.89.170/Eleven_Sports_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports2.pl",Eleven Sports 2 (1080p) http://185.236.229.62:9981/play/a05y #EXTINF:-1 tvg-id="ElevenSports2.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 2 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://windnew.iosplayer.ru/wind/premium72/mono.m3u8 #EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) -http://109.233.89.166/Eleven_Sports_3_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) -http://109.233.89.170/Eleven_Sports_3_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports3.pl",Eleven Sports 3 (1080p) http://185.236.229.62:9981/play/a061 #EXTINF:-1 tvg-id="ElevenSports3.pl" http-referrer="https://newembedplay.xyz/",Eleven Sports 3 (1080p) #EXTVLCOPT:http-referrer=https://newembedplay.xyz/ https://ddy6new.iosplayer.ru/ddy6/premium428/mono.m3u8 -#EXTINF:-1 tvg-id="ElevenSports4.pl",Eleven Sports 4 (1080p) -http://109.233.89.166/ELEVEN_SPORTS_4_HD/index.m3u8 -#EXTINF:-1 tvg-id="ElevenSports4.pl",Eleven Sports 4 (1080p) -http://109.233.89.170/ELEVEN_SPORTS_4_HD/index.m3u8 #EXTINF:-1 tvg-id="EpicDrama.pl",Epic Drama (1080p) http://185.236.229.62:9981/play/a029 -#EXTINF:-1 tvg-id="EpicDrama.pl",Epic Drama (1080p) -http://195.189.60.33:9010/play/a00e -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://109.233.89.170/ESKA_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) -http://178.219.128.68:64888/ESKATVHD #EXTINF:-1 tvg-id="EskaTV.pl",Eska TV (1080p) http://185.236.229.62:9981/play/a02f #EXTINF:-1 tvg-id="EWTNPoland.pl",EWTN Poland (1080p) https://cdn3.wowza.com/1/ZHdrMWt1NjlDSzFu/bzdDVG10/hls/live/playlist.m3u8 -#EXTINF:-1 tvg-id="EzoTV.pl",Ezo TV (576p) [Not 24/7] -http://live.ezotv.pl:1935/live/EZOTV/playlist.m3u8 #EXTINF:-1 tvg-id="FailArmy.pl",Fail Army (720p) https://bd93cfed.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZhaWxBcm15X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="FIFAPlus.pl",FIFA+ (720p) https://a62dad94.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X0ZJRkFQbHVzRW5nbGlzaF9ITFM/playlist.m3u8 #EXTINF:-1 tvg-id="FightBox.pl",FightBox (1080p) http://185.236.229.62:9981/play/a03n -#EXTINF:-1 tvg-id="FightBox.pl",FightBox (1080p) -http://195.189.60.33:9002/play/a007 #EXTINF:-1 tvg-id="FilmBoxAction.pl",FilmBox Action (576p) http://185.236.229.62:9981/play/a033 -#EXTINF:-1 tvg-id="FilmBoxAction.pl",FilmBox Action (576p) -http://195.189.60.33:9004/play/a00g -#EXTINF:-1 tvg-id="FilmBoxArthouse.pl",FilmBox Arthouse (576p) -http://195.189.60.33:9010/play/a00a -#EXTINF:-1 tvg-id="FilmBoxExtra.pl",FilmBox Extra (1080p) -http://178.219.128.68:64888/FILMEXTRHD #EXTINF:-1 tvg-id="FilmBoxExtra.pl",FilmBox Extra (1080p) http://185.236.229.62:9981/play/a036 -#EXTINF:-1 tvg-id="FilmBoxFamily.pl",FilmBox Family (1080p) -http://178.219.128.68:64888/FILMFAMI #EXTINF:-1 tvg-id="FilmBoxFamily.pl",FilmBox Family (576p) http://185.236.229.62:9981/play/a032 #EXTINF:-1 tvg-id="FilmBoxFamily.pl",FilmBox Family (576p) http://185.236.229.62:9981/play/a037 #EXTINF:-1 tvg-id="FilmBoxPremiumHD.pl",FilmBox Premium HD (1080p) -http://178.219.128.68:64888/FILMPREMHD -#EXTINF:-1 tvg-id="FilmBoxPremiumHD.pl",FilmBox Premium HD (1080p) http://185.236.229.62:9981/play/a02x #EXTINF:-1 tvg-id="FokusTV.pl",Fokus TV (1080p) http://185.236.229.62:9981/play/a02g #EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://109.233.89.166/FOX_HD/index.m3u8 -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://109.233.89.170/FOX_HD/index.m3u8 -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) -http://178.219.128.68:64889/FOXHD -#EXTINF:-1 tvg-id="Fox.pl",Fox (1080p) http://185.236.229.62:9981/play/a07u #EXTINF:-1 tvg-id="FoxComedy.pl",Fox Comedy (1080p) -http://178.219.128.68:64889/FOXCOMEHD -#EXTINF:-1 tvg-id="FoxComedy.pl",Fox Comedy (1080p) http://185.236.229.62:9981/play/a07t #EXTINF:-1 tvg-id="GolfChannel.pl",Golf Channel (1080p) http://185.236.229.62:9981/play/a03m @@ -207,21 +117,9 @@ https://b6c7c7d1020a4588982ca7c2625f85d1.mediatailor.us-east-1.amazonaws.com/v1/ #EXTINF:-1 tvg-id="HardKnocksFightingChampionship.pl",Hard Knocks Fighting Championship (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/2ee2b8d4-acc4-4296-9dc8-66f1ffd0fff8/5.m3u8 #EXTINF:-1 tvg-id="History.pl",History (1080p) -http://109.233.89.166/History_HD/index.m3u8 -#EXTINF:-1 tvg-id="History.pl",History (1080p) -http://109.233.89.170/History_HD/index.m3u8 -#EXTINF:-1 tvg-id="History.pl",History (1080p) http://185.236.229.62:9981/play/a07v #EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) -http://109.233.89.166/History_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) -http://109.233.89.170/History_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="History2.pl",History 2 (1080p) http://185.236.229.62:9981/play/a03l -#EXTINF:-1 tvg-id="HomeTV.pl",Home TV (1080p) -http://178.219.128.68:64889/HOMETV -#EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) -http://178.219.128.68:64888/KINOPOLSHD #EXTINF:-1 tvg-id="KinoPolska.pl",Kino Polska (1080p) http://185.236.229.62:9981/play/a05v #EXTINF:-1 tvg-id="KinoPolskaMuzyka.pl",Kino Polska Muzyka (576p) @@ -236,142 +134,66 @@ https://3ee905090d464be5a51478fd9c642e93.mediatailor.us-east-1.amazonaws.com/v1/ https://4b9627c7.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X01vbnN0ZXJKYW1fSExT/playlist.m3u8 #EXTINF:-1 tvg-id="Motowizja.pl",Motowizja (1080p) http://185.236.229.62:9981/play/a02r -#EXTINF:-1 tvg-id="MTV.pl",MTV (1080p) -http://178.219.128.68:64888/MTVHD #EXTINF:-1 tvg-id="NatGeoPeople.pl",Nat Geo People http://185.236.229.62:9981/play/a06f #EXTINF:-1 tvg-id="NationalGeographic.pl",National Geographic (1080p) -http://178.219.128.68:64889/NATIGEOGHD -#EXTINF:-1 tvg-id="NationalGeographic.pl",National Geographic (1080p) http://185.236.229.62:9981/play/a04d #EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) -http://109.233.89.170/National_Geographic_Wild_HD/index.m3u8 -#EXTINF:-1 tvg-id="NationalGeographicWild.pl",National Geographic Wild (1080p) http://185.236.229.62:9981/play/a05z #EXTINF:-1 tvg-id="NickJr.pl",Nick Jr. (576p) http://185.236.229.62:9981/play/a065 -#EXTINF:-1 tvg-id="NickJr.pl",Nick Jr. Poland (576i) -http://178.219.128.68:64888/NICKJR -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://109.233.89.170/Nickelodeon/index.m3u8 -#EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) -http://178.219.128.68:64889/NICK #EXTINF:-1 tvg-id="Nickelodeon.pl",Nickelodeon (576p) http://185.236.229.62:9981/play/a067 #EXTINF:-1 tvg-id="Nicktoons.pl",Nicktoons (1080p) http://185.236.229.62:9981/play/a06a #EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) -http://178.219.128.68:64889/NOWATVHD -#EXTINF:-1 tvg-id="NowaTV.pl",Nowa TV (1080p) http://185.236.229.62:9981/play/a02h #EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) -http://109.233.89.170/Paramount_Channel_HD/index.m3u8 -#EXTINF:-1 tvg-id="ParamountNetwork.pl",Paramount Network (1080p) http://185.236.229.62:9981/play/a069 #EXTINF:-1 tvg-id="PeopleAreAwesome.pl",People Are Awesome (720p) https://3ab76e42.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1Blb3BsZUFyZUF3ZXNvbWVfSExT/playlist.m3u8 #EXTINF:-1 tvg-id="PFLMMA.pl",PFL MMA (720p) https://a883593c.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1BGTE1NQV9ITFM/playlist.m3u8 #EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) -http://178.219.128.68:64888/POLOTV -#EXTINF:-1 tvg-id="PoloTV.pl",Polo TV (1080p) http://185.236.229.62:9981/play/a02e -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) -http://109.233.89.166/Polonia_1/index.m3u8 -#EXTINF:-1 tvg-id="Polonia1.pl",Polonia 1 (576p) -http://109.233.89.170/Polonia_1/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://109.233.89.170/Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) -http://178.219.128.68:64889/POLSHD #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) http://185.236.229.62:9981/play/a03v #EXTINF:-1 tvg-id="Polsat.pl",Polsat (1080p) [Geo-blocked] https://lb2-e2-19.pluscdn.pl/ch/1502600/308/dash/20a18c30/live.mpd #EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://109.233.89.170/Polsat_2_HD/index.m3u8 -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) -http://178.219.128.68:64888/POLS2HD -#EXTINF:-1 tvg-id="Polsat2.pl",Polsat 2 (1080p) http://185.236.229.62:9981/play/a042 #EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) -http://178.219.128.68:64889/POLSCAFEHD -#EXTINF:-1 tvg-id="PolsatCafe.pl",Polsat Cafe (1080p) http://185.236.229.62:9981/play/a03z #EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://109.233.89.170/Polsat_Doku_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) -http://178.219.128.68:64888/POLSDOKUHD -#EXTINF:-1 tvg-id="PolsatDoku.pl",Polsat Doku (1080p) http://185.236.229.62:9981/play/a07z #EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://109.233.89.170/Polsat_Film_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) -http://178.219.128.68:64889/POLSFILMHD -#EXTINF:-1 tvg-id="PolsatFilm.pl",Polsat Film (1080p) http://185.236.229.62:9981/play/a040 #EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) -http://178.219.128.68:64889/POLSGAME -#EXTINF:-1 tvg-id="PolsatGames.pl",Polsat Games (1080p) http://185.236.229.62:9981/play/a025 #EXTINF:-1 tvg-id="PolsatJimJam.pl",Polsat JimJam (576p) http://185.236.229.62:9981/play/a07e #EXTINF:-1 tvg-id="PolsatMusic.pl",Polsat Music (1080p) http://185.236.229.62:9981/play/a02b -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://109.233.89.170/Polsat_News_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (1080p) -http://178.219.128.68:64888/POLSNEWSHD #EXTINF:-1 tvg-id="PolsatNews.pl",Polsat News (720p) [Geo-blocked] http://cdn-s-lb2.pluscdn.pl/lv/1517830/349/dash/81ec4c32/live.mpd #EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) -http://178.219.128.68:64889/POLSNEWS2 -#EXTINF:-1 tvg-id="PolsatNews2.pl",Polsat News 2 (1080p) http://185.236.229.62:9981/play/a03u #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://109.233.89.170/Polsat_News_Polityka/index.m3u8 -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) -http://178.219.128.68:64888/SUPEHD -#EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) http://185.236.229.62:9981/play/a07h #EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://109.233.89.170/Polsat_Play_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) -http://178.219.128.68:64888/POLSPLAYHD -#EXTINF:-1 tvg-id="PolsatPlay.pl",Polsat Play (1080p) http://185.236.229.62:9981/play/a03w #EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) -http://178.219.128.68:64889/POLSRODZHD -#EXTINF:-1 tvg-id="PolsatRodzina.pl",Polsat Rodzina (1080p) http://185.236.229.62:9981/play/a079 #EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://109.233.89.170/Polsat_Seriale_HD/index.m3u8 -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) -http://178.219.128.68:64888/POLSROMA -#EXTINF:-1 tvg-id="PolsatSeriale.pl",Polsat Seriale (1080p) http://185.236.229.62:9981/play/a07b #EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) -http://178.219.128.68:64889/POLSSPORHD -#EXTINF:-1 tvg-id="PolsatSport.pl",Polsat Sport (1080p) http://185.236.229.62:9981/play/a07n #EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) -http://178.219.128.68:64889/POLSSPOREXTRHD -#EXTINF:-1 tvg-id="PolsatSportExtra.pl",Polsat Sport Extra (1080p) http://185.236.229.62:9981/play/a07q #EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://178.219.128.68:64888/POLSSPORFIGHHD -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) -http://178.219.128.68:64889/POLSSPORFIGHHD -#EXTINF:-1 tvg-id="PolsatSportFight.pl",Polsat Sport Fight (1080p) http://185.236.229.62:9981/play/a06l #EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) -http://178.219.128.68:64889/POLSSPORNEWSHD -#EXTINF:-1 tvg-id="PolsatSportNews.pl",Polsat Sport News (1080p) http://185.236.229.62:9981/play/a06m -#EXTINF:-1 tvg-id="PolsatViasatExplore.pl",Polsat Viasat Explore (1080p) -http://178.219.128.68:64889/POLSVIASEXPLHD -#EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) -http://178.219.128.68:64889/POLSVIASHISTHD #EXTINF:-1 tvg-id="PolsatViasatHistory.pl",Polsat Viasat History (1080p) http://185.236.229.62:9981/play/a07o #EXTINF:-1 tvg-id="PolsatViasatNature.pl",Polsat Viasat Nature (1080p) @@ -389,14 +211,8 @@ https://fast-rakuten.okast.tv/fa2e8c4385712f9a9076eaf728c751de/channels/1a6ecfaa #EXTINF:-1 tvg-id="Revry.pl",Revry (720p) https://99d8b4b6.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLWV1X1JldnJ5X0hMUw/playlist.m3u8 #EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) -http://109.233.89.170/Romance_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="RomanceTV.pl",Romance TV (1080p) http://185.236.229.62:9981/play/a05j #EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) -http://109.233.89.166/SciFi_HD/index.m3u8 -#EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) -http://109.233.89.170/SciFi_HD/index.m3u8 -#EXTINF:-1 tvg-id="SciFi.pl",Sci Fi (1080p) http://185.236.229.62:9981/play/a03k #EXTINF:-1 tvg-id="SferaTV.pl",Sfera TV (480p) [Not 24/7] http://stream.sferatv.pl:1935/sferalive/smil:sferalive.smil/playlist.m3u8 @@ -404,34 +220,14 @@ http://stream.sferatv.pl:1935/sferalive/smil:sferalive.smil/playlist.m3u8 https://rakutenaa-fusemedia-shadesofblack-rakutena-giu24.amagi.tv/playlist/rakutenAA-fusemedia-shadesofblack-rakutenA/playlist.m3u8 #EXTINF:-1 tvg-id="SportKlub.pl",Sport Klub (1080p) http://185.236.229.62:9981/play/a02k -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://109.233.89.170/Stopklatka_HD/index.m3u8 -#EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (1080p) -http://178.219.128.68:64889/STOPTV #EXTINF:-1 tvg-id="StopklatkaTV.pl",Stopklatka TV (576p) http://185.236.229.62:9981/play/a023 #EXTINF:-1 tvg-id="SundanceTV.pl",Sundance TV (1080p) http://185.236.229.62:9981/play/a03i #EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://109.233.89.170/Super_Polsat_HD/index.m3u8 -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) -http://178.219.128.68:64889/SUPEPOLSHD -#EXTINF:-1 tvg-id="SuperPolsat.pl",Super Polsat (1080p) http://185.236.229.62:9981/play/a043 #EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) -http://109.233.89.170/Wydarzenia_24_HD/index.m3u8 -#EXTINF:-1 tvg-id="Superstacja.pl",Superstacja (1080p) http://185.236.229.62:9981/play/a06j -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.166/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.170/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="TeenNick.pl",TeenNick (1080p) -http://109.233.89.173/TeenNick/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://109.233.89.170/Tele_5_HD/index.m3u8 -#EXTINF:-1 tvg-id="Tele5.pl",Tele5 (1080p) -http://178.219.128.68:64888/TELE5HD #EXTINF:-1 tvg-id="TelewizjaBiznesowa.pl",Telewizja Biznesowa (1080p) https://s-pl-01.mediatool.tv/playout/tbpl-abr/index.m3u8 #EXTINF:-1 tvg-id="TelewizjaJaslo.pl",Telewizja Jaslo (720p) @@ -449,18 +245,10 @@ https://amg17560-fcb-amg17560c1-rakuten-uk-4891.playouts.now.amagi.tv/playlist/a #EXTINF:-1 tvg-id="TrusoTV.pl",Truso TV (576p) [Not 24/7] https://stream.truso.tv/elblag/myStream_aac/playlist.m3u8 #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://109.233.89.170/TV4_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) -http://178.219.128.68:64889/TV4HD -#EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) http://185.236.229.62:9981/play/a03x #EXTINF:-1 tvg-id="TV4.pl",TV4 (1080p) [Geo-blocked] https://lb2-e2-32.pluscdn.pl/ch/1502601/309/dash/e25c2c93/live.mpd #EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://109.233.89.170/TV6_HD/index.m3u8 -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) -http://178.219.128.68:64889/TV6HD -#EXTINF:-1 tvg-id="TV6.pl",TV6 (1080p) http://185.236.229.62:9981/play/a03y #EXTINF:-1 tvg-id="TVASTA.pl",TV ASTA (720p) https://5cce8c6f0e84c.streamlock.net/LiveCast/smil:PlayStream9.smil/playlist.m3u8 @@ -475,36 +263,18 @@ http://185.236.229.62:9981/play/a07l #EXTINF:-1 tvg-id="TVOkazje.pl",TV Okazje (576p) http://185.236.229.62:9981/play/a07m #EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) -http://178.219.128.68:64889/TVPULSHD -#EXTINF:-1 tvg-id="TVPuls.pl",TV Puls (1080p) http://185.236.229.62:9981/play/a034 #EXTINF:-1 tvg-id="TVRegionalnaLubin.pl",TV Regionalna Lubin (576p) [Not 24/7] https://tvreg.klemit.net/regionalna/stream/index.m3u8 #EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://109.233.89.166/TV_Republika_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://109.233.89.170/TV_Republika_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) -http://178.219.128.68:64888/TVREPU -#EXTINF:-1 tvg-id="TVRepublika.pl",TV Republika (1080p) http://185.236.229.62:9981/play/a027 #EXTINF:-1 tvg-id="TVTorun.pl",TV Toruń (1080p) [Not 24/7] http://217.173.176.107:1935/live/tvk.stream/playlist.m3u8 #EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (1080p) [Geo-blocked] https://live-ch1.trwam.cf.insyscd.net/out/v1/b99041a282774d4a8fe84a54243af5de/trwamtv-live-ch1.mpd -#EXTINF:-1 tvg-id="TVTrwam.pl",TV Trwam (576p) -http://109.233.89.170/TV_TRWAM/index.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://109.233.89.170/TVP1_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) -http://178.219.128.68:64889/TVP1HD #EXTINF:-1 tvg-id="TVP1.pl",TVP1 (1080p) https://ec06-krk3.cache.orange.pl/dai4/org1/vb/104/tvp1hd/index.m3u8 #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://109.233.89.170/TVP2_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) -http://178.219.128.68:64889/TVP2HD -#EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) http://185.236.229.62:9981/play/a07p #EXTINF:-1 tvg-id="TVP2.pl",TVP2 (1080p) https://ec04-waw4.cache.orange.pl/dai4/org2/vb/105/tvp2hd/index.m3u8 @@ -540,58 +310,24 @@ https://cdndai.pl/tvp3szczecinsd/index.m3u8 https://cdndai.pl/tvp3warszawasd/index.m3u8 #EXTINF:-1 tvg-id="TVP3Wroclaw.pl",TVP 3 Wrocław (576p) https://cdndai.pl/tvp3wroclawsd/index.m3u8 -#EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (1080p) -http://178.219.128.68:64888/TVPABC #EXTINF:-1 tvg-id="TVPABC.pl",TVP ABC (576p) http://185.236.229.62:9981/play/a02z #EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://109.233.89.170/TVP_Dokument_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) -http://178.219.128.68:64889/TVPDOKUHD -#EXTINF:-1 tvg-id="TVPDokument.pl",TVP Dokument (1080p) http://185.236.229.62:9981/play/a05b #EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) -http://109.233.89.170/TVP_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPHD.pl",TVP HD (1080p) http://185.236.229.62:9981/play/a02i -#EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (1080p) -http://178.219.128.68:64889/TVPHIST #EXTINF:-1 tvg-id="TVPHistoria.pl",TVP Historia (576p) http://185.236.229.62:9981/play/a035 #EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://109.233.89.170/TVP_INFO_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) -http://178.219.128.68:64889/TVPINFOHD -#EXTINF:-1 tvg-id="TVPInfo.pl",TVP Info (1080p) http://185.236.229.62:9981/play/a02j -#EXTINF:-1 tvg-id="TVPKobieta.pl",TVP Kobieta (1080p) -http://178.219.128.68:64889/TVPKOBIHD #EXTINF:-1 tvg-id="TVPKultura.pl",TVP Kultura (1080p) http://185.236.229.62:9981/play/a02t -#EXTINF:-1 tvg-id="TVPNauka.pl",TVP Nauka (1080p) -http://109.233.89.170/TVP_Nauka/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://109.233.89.170/TVP_Polonia_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) -http://178.219.128.68:64889/TVPPOLOHD #EXTINF:-1 tvg-id="TVPPolonia.pl",TVP Polonia (1080p) http://185.236.229.62:9981/play/a08m -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://109.233.89.170/TVP_Rozrywka/index.m3u8 -#EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (1080p) -http://178.219.128.68:64889/TVPROZR #EXTINF:-1 tvg-id="TVPRozrywka.pl",TVP Rozrywka (576p) http://185.236.229.62:9981/play/a026 #EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) -http://178.219.128.68:64889/TVPSERI -#EXTINF:-1 tvg-id="TVPSeriale.pl",TVP Seriale (1080p) http://185.236.229.62:9981/play/a02w -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://109.233.89.170/TVP_Sport_HD/index.m3u8 -#EXTINF:-1 tvg-id="TVPSport.pl",TVP Sport (1080p) -http://178.219.128.68:64889/TVPSPORHD -#EXTINF:-1 tvg-id="TVPWorld.pl",TVP World (1080p) -http://178.219.128.68:64888/TVPWORLHD #EXTINF:-1 tvg-id="TVS.pl",TVS (576p) http://185.236.229.62:9981/play/a02p #EXTINF:-1 tvg-id="TVT.pl",TVT (720p) @@ -601,8 +337,6 @@ http://gargoyle.tomkow.pl/hls/tvt.m3u8 #EXTINF:-1 tvg-id="ViasatExploreClassic.pl",Viasat Explore Classic (720p) https://da9c49fa.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/UmFrdXRlblRWLXBsX1ZpYXNhdEV4cGxvcmVfSExT/playlist.m3u8 #EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) -http://109.233.89.166/wPolsce.PL/index.m3u8 -#EXTINF:-1 tvg-id="WPolscePL.pl",W Polsce PL (576p) http://185.236.229.62:9981/play/a022 #EXTINF:-1 tvg-id="WorldBilliards.pl",World Billiards (720p) https://9a81dd4ee3884d0dbcacafaf0d81327a.mediatailor.us-east-1.amazonaws.com/v1/master/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BilliardsTV/playlist.m3u8 @@ -610,20 +344,12 @@ https://9a81dd4ee3884d0dbcacafaf0d81327a.mediatailor.us-east-1.amazonaws.com/v1/ https://rakutenaa-mainstreammediafreesportsintl-rakuten-t7dc0.amagi.tv/playlist/rakutenAA-mainstreammediafreesportsintl-rakuten/playlist.m3u8 #EXTINF:-1 tvg-id="WorldPokerTour.pl",World Poker Tour (1080p) https://d39g1vxj2ef6in.cloudfront.net/v1/manifest/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/15d59f2f-80da-4448-9bce-775cc9f470f7/1.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://109.233.89.170/WP_HD/index.m3u8 -#EXTINF:-1 tvg-id="WPTV.pl",WP TV (1080p) -http://178.219.128.68:64889/WPHD #EXTINF:-1 tvg-id="WPTV.pl",WP TV (576p) http://185.236.229.62:9981/play/a02u #EXTINF:-1 tvg-id="ZNation.pl",Z Nation (720p) https://d39g1vxj2ef6in.cloudfront.net/v1/master/3fec3e5cac39a52b2132f9c66c83dae043dc17d4/prod-rakuten-stitched/master.m3u8?ads.xumo_channelId=88883098 #EXTINF:-1 tvg-id="ZeeOne.pl",Zee One (720p) https://89ec2d15e090480bb419d940b8793b9c.mediatailor.us-east-1.amazonaws.com/v1/master/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-eu_ZeeWorld-1/playlist.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://109.233.89.170/Zoom_TV_HD/index.m3u8 -#EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (1080p) -http://178.219.128.68:64889/ZOOMTVHD #EXTINF:-1 tvg-id="ZoomTV.pl",Zoom TV (576p) http://185.236.229.62:9981/play/a02a #EXTINF:-1 tvg-id="PolsatNewsPolityka.pl",Polsat News Polityka (1080p) [Geo-blocked] From cae95a0a2dd3168698ffbcb6751d9b1b17fadd32 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:12:38 +0000 Subject: [PATCH 18/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14554104493) workflow. closes #21251 --- streams/cn_yeslivetv.m3u | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/streams/cn_yeslivetv.m3u b/streams/cn_yeslivetv.m3u index 7d265c390..84c908f7a 100644 --- a/streams/cn_yeslivetv.m3u +++ b/streams/cn_yeslivetv.m3u @@ -1,27 +1,3 @@ #EXTM3U -#EXTINF:-1 tvg-id="CCTV5Plus.cn",CCTV5+ -https://pull-f5-spe.ixigua.com/live/YesLiveTV-7d098b36-c7e5-4941-8eb0-6af0f5ad3f8d.flv -#EXTINF:-1 tvg-id="HOYTV.hk",HOY TV開電視 -https://pull-f5-spe.ixigua.com/yeslivetv.com/934973832-202925490/index.m3u8 -#EXTINF:-1 tvg-id="",HOY資訊台 -https://pull-f5-spe.ixigua.com/live/YesLiveTV-3e9f20e4-e6fd-4292-ac7a-3180610b1edd/index.m3u8 -#EXTINF:-1 tvg-id="J2.hk",J2 -https://pull-f5-spe.ixigua.com/yeslivetv.com/6027316-581799927/index.m3u8 -#EXTINF:-1 tvg-id="ViuTV.hk",ViuTV -https://pull-f5-spe.ixigua.com/yeslivetv.com/711923214-581799927/index.m3u8 -#EXTINF:-1 tvg-id="ViuTVsix.hk",ViuTV Six -https://pull-f5-spe.ixigua.com/yeslivetv.com/154548299-581799927/index.m3u8 #EXTINF:-1 tvg-id="",博斯高球台 https://yeslivetv.com/twiptv/litv-longturn05/index.m3u8 -#EXTINF:-1 tvg-id="",無綫新聞台 -https://pull-f5-spe.ixigua.com/yeslivetv.com/446133069-816601364/index.m3u8 -#EXTINF:-1 tvg-id="",無綫財經·體育·資訊台 -https://pull-f5-spe.ixigua.com/yeslivetv.com/944048695-106799677/index.m3u8 -#EXTINF:-1 tvg-id="",翡翠台 -https://pull-f5-spe.ixigua.com/yeslivetv.com/291403ea-fabd-4dc1-bdfa-f14ebe74411e/index.m3u8 -#EXTINF:-1 tvg-id="",香港國際財經台 -https://pull-f5-spe.ixigua.com/live/YesLiveTV-312f21aa-d8cf-4d55-bd8f-87069342457d/index.m3u8 -#EXTINF:-1 tvg-id="",鳳凰中文 -https://pull-f5-spe.ixigua.com/yeslivetv.com/592947253-711982631/index.m3u8 -#EXTINF:-1 tvg-id="",鳳凰資訊 -https://pull-f5-spe.ixigua.com/yeslivetv.com/303328069-581799927/index.m3u8 From 0fd49df26ff983693796214904fe45f366e29056 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Sun, 20 Apr 2025 00:12:38 +0000 Subject: [PATCH 19/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14554104493) workflow. --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fa3ade627..8e4bab973 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ Same thing, but split up into separate files: Education150https://iptv-org.github.io/iptv/categories/education.m3u Entertainment542https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2348https://iptv-org.github.io/iptv/categories/general.m3u + General2349https://iptv-org.github.io/iptv/categories/general.m3u Kids175https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u @@ -78,11 +78,11 @@ Same thing, but split up into separate files: Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u Shop86https://iptv-org.github.io/iptv/categories/shop.m3u - Sports266https://iptv-org.github.io/iptv/categories/sports.m3u + Sports265https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4728https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4717https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -138,7 +138,7 @@ Same thing, but split up into separate files: Chewa3https://iptv-org.github.io/iptv/languages/nya.m3u Chhattisgarhi1https://iptv-org.github.io/iptv/languages/hne.m3u Chiga1https://iptv-org.github.io/iptv/languages/cgg.m3u - Chinese184https://iptv-org.github.io/iptv/languages/zho.m3u + Chinese181https://iptv-org.github.io/iptv/languages/zho.m3u Croatian22https://iptv-org.github.io/iptv/languages/hrv.m3u Czech35https://iptv-org.github.io/iptv/languages/ces.m3u Danish19https://iptv-org.github.io/iptv/languages/dan.m3u @@ -284,9 +284,9 @@ Same thing, but split up into separate files: Yakut1https://iptv-org.github.io/iptv/languages/sah.m3u Yoruba1https://iptv-org.github.io/iptv/languages/yor.m3u Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u - Yue Chinese7https://iptv-org.github.io/iptv/languages/yue.m3u + Yue Chinese5https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2886https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2879https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -423,7 +423,7 @@ Same thing, but split up into separate files:       Maule1https://iptv-org.github.io/iptv/subdivisions/cl-ml.m3u       Nuble3https://iptv-org.github.io/iptv/subdivisions/cl-nb.m3u       Valparaiso2https://iptv-org.github.io/iptv/subdivisions/cl-vs.m3u - 🇨🇳 China139https://iptv-org.github.io/iptv/countries/cn.m3u + 🇨🇳 China138https://iptv-org.github.io/iptv/countries/cn.m3u 🇨🇴 Colombia194https://iptv-org.github.io/iptv/countries/co.m3u       Antioquia1https://iptv-org.github.io/iptv/subdivisions/co-ant.m3u       Atlantico1https://iptv-org.github.io/iptv/subdivisions/co-atl.m3u @@ -520,7 +520,7 @@ Same thing, but split up into separate files: 🇬🇾 Guyana18https://iptv-org.github.io/iptv/countries/gy.m3u 🇭🇹 Haiti45https://iptv-org.github.io/iptv/countries/ht.m3u 🇭🇳 Honduras139https://iptv-org.github.io/iptv/countries/hn.m3u - 🇭🇰 Hong Kong14https://iptv-org.github.io/iptv/countries/hk.m3u + 🇭🇰 Hong Kong11https://iptv-org.github.io/iptv/countries/hk.m3u 🇭🇺 Hungary137https://iptv-org.github.io/iptv/countries/hu.m3u 🇮🇸 Iceland32https://iptv-org.github.io/iptv/countries/is.m3u 🇮🇳 India304https://iptv-org.github.io/iptv/countries/in.m3u @@ -818,7 +818,7 @@ Same thing, but split up into separate files: 🇾🇪 Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u 🇿🇲 Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u 🇿🇼 Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2886https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2879https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -847,8 +847,8 @@ Same thing, but split up into separate files: Africa546https://iptv-org.github.io/iptv/regions/afr.m3u Americas3604https://iptv-org.github.io/iptv/regions/amer.m3u Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2142https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1132https://iptv-org.github.io/iptv/regions/apac.m3u + Asia2141https://iptv-org.github.io/iptv/regions/asia.m3u + Asia-Pacific1131https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations345https://iptv-org.github.io/iptv/regions/asean.m3u Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u @@ -879,7 +879,7 @@ Same thing, but split up into separate files: West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u Western Europe780https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2886https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2879https://iptv-org.github.io/iptv/regions/undefined.m3u From d6b1d11f13a332a56b2f0b1125ceb4877fdcbc83 Mon Sep 17 00:00:00 2001 From: Aleksandr Statciuk <7253922+freearhey@users.noreply.github.com> Date: Mon, 21 Apr 2025 00:44:56 +0300 Subject: [PATCH 20/44] Update CONTRIBUTING.md --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 556ed05c7..6ed2f6f4c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,7 +12,7 @@ You have several options: -1. Create a new [issue](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=-----streams_add.yml&title=Add%3A+) and provide all the required information. If the request is approved, the link will be added to the playlist in the next update. +1. Create a new [issue](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=streams:add&projects=&template=1_streams_add.yml&title=Add%3A+) and provide all the required information. If the request is approved, the link will be added to the playlist in the next update. 2. Add the link to the playlist directly using a [pull request](https://github.com/iptv-org/iptv/pulls). @@ -51,7 +51,7 @@ If the link answers, you're with an Xtream Codes server. ### How to report a broken stream? -Fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=broken+stream&projects=&template=---broken-stream.yml&title=Broken%3A+) and as soon as a working replacement appears, we will add it to the playlist or at least remove the non-working one. +Fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=broken+stream,streams:remove&projects=&template=3_broken-stream.yml&title=Broken%3A+) and as soon as a working replacement appears, we will add it to the playlist or at least remove the non-working one. The only thing before publishing your report is to make sure that: @@ -93,7 +93,7 @@ After that, all you have to do is report any broken streams you find. ### How do I remove my channel from playlist? -To request removal of a link to a channel from the repository, you need to fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=removal+request&projects=&template=-removal-request.yml&title=Remove%3A+) and wait for the request to be reviewed (this usually takes no more than 1 business day). And if the request is approved, links to the channel will be immediately removed from the repository. +To request removal of a link to a channel from the repository, you need to fill out this [form](https://github.com/iptv-org/iptv/issues/new?assignees=&labels=removal+request&projects=&template=6_copyright-claim.yml&title=Remove%3A+) and wait for the request to be reviewed (this usually takes no more than 1 business day). And if the request is approved, links to the channel will be immediately removed from the repository. The channel will also be added to our [blocklist](https://github.com/iptv-org/database/blob/master/data/blocklist.csv) to avoid its appearance in our playlists in the future. From 468ea261c74f08fe3a996c8d326bb61dce5550f3 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 00:12:08 +0000 Subject: [PATCH 21/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14564612795) workflow. closes #21260, closes #21247, closes #21258, closes #21265, closes #21264, closes #21263, closes #21262, closes #21261, closes #21259, closes #21257, closes #21256 --- streams/at.m3u | 4 ++++ streams/cl.m3u | 4 ++-- streams/de.m3u | 2 +- streams/lv.m3u | 13 ------------- streams/my.m3u | 10 ++++++++++ 5 files changed, 17 insertions(+), 16 deletions(-) diff --git a/streams/at.m3u b/streams/at.m3u index 205a855a6..de25cdb9a 100644 --- a/streams/at.m3u +++ b/streams/at.m3u @@ -68,3 +68,7 @@ http://89.187.168.245:8080/live/sUPPERchannel2/index.m3u8 https://live1.markenfunk.com/t1/ngrp:live_all/playlist.m3u8 #EXTINF:-1 tvg-id="W24.at",W24 (720p) [Not 24/7] https://ms01.w24.at/W24/smil:liveevent.smil/playlist.m3u8 +#EXTINF:-1 tvg-id="AntenneSteiermark.at",Antenne Steiermark (720p) +https://60efd7a2b4d02.streamlock.net/a_steiermark/ngrp:livestream_all/playlist.m3u8 +#EXTINF:-1 tvg-id="AntenneKaernten.at",Antenne Kaernten (720p) +https://60efd7a2b4d02.streamlock.net/a_kaernten/ngrp:livestream_all/playlist.m3u8 diff --git a/streams/cl.m3u b/streams/cl.m3u index 3017b30f5..f3c1321cd 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -317,8 +317,6 @@ https://panel.miplay.cl:8082/spectrumchannel/index.m3u8 https://stv.janus.cl/playlist/stream.m3u8 #EXTINF:-1 tvg-id="Subela.cl",Súbela (720p) https://mdstrm.com/live-stream-playlist/5fad9b1d978fe1080e3ac4a8.m3u8 -#EXTINF:-1 tvg-id="SURTV.cl",Sur TV (720p) -https://paneltv.online:1936/8034/8034/playlist.m3u8 #EXTINF:-1 tvg-id="T13.cl",T13 (720p) https://jireh-2-hls-video-us-isp.dps.live/hls-video/10b92cafdf3646cbc1e727f3dc76863621a327fd/t13/t13.smil/playlist.m3u8 #EXTINF:-1 tvg-id="TVinet.cl",T-Vinet (480p) @@ -453,3 +451,5 @@ https://xui-backend.energeek.cl/live/11/playlist.m3u8?username=dEmoweBeneRGEek20 https://xui-backend.energeek.cl/live/10/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF #EXTINF:-1 tvg-id="EnerGeek.cl",EnerGeek (1080p) https://xui-backend.energeek.cl/live/9/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF +#EXTINF:-1 tvg-id="Kanade.cl",Kanade (1080p) +https://xui-backend.energeek.cl/live/deM0kanADeweB/Cerq7EpWHiWDuHTJ8ikz/13.m3u8 diff --git a/streams/de.m3u b/streams/de.m3u index 6df857b60..14a0b1431 100644 --- a/streams/de.m3u +++ b/streams/de.m3u @@ -71,7 +71,7 @@ https://sdn-global-live-streaming-packager-cache.3qsdn.com/13456/13456_264_live. https://sdn-global-live-streaming-packager-cache.3qsdn.com/65183/65183_264_live.m3u8 #EXTINF:-1 tvg-id="",Deluxe Rock (1080p) https://sdn-global-live-streaming-packager-cache.3qsdn.com/65181/65181_264_live.m3u8 -#EXTINF:-1 tvg-id="DeutschesMusikFernsehen.de",Deutsches Musik Fernsehen (1080p) [Not 24/7] +#EXTINF:-1 tvg-id="DMF.de@SD",DMF (1080p) [Not 24/7] https://d-m-f.iptv-playoutcenter.de/dmf/dmf1/playlist.m3u8 #EXTINF:-1 tvg-id="DF1.de",DF1 (720p) https://dbjwcot8t7nyd.cloudfront.net/out/v1/9d068a9428444b458324ad77b5a0a4b8/index.m3u8 diff --git a/streams/lv.m3u b/streams/lv.m3u index 7a3d2d8e5..1b67e65d9 100644 --- a/streams/lv.m3u +++ b/streams/lv.m3u @@ -1,26 +1,13 @@ #EXTM3U -#EXTINF:-1 tvg-id="1Plus2.lv",1+2 -http://89.254.128.5:22280/1_2/mono.m3u8 -#EXTINF:-1 tvg-id="8TV.lv",8TV (1080p) -http://89.254.128.5:22280/8tv_hd/index.m3u8 -#EXTINF:-1 tvg-id="Kanal7Baltics.lv",Kanal 7 Baltics (Latvia) (1080p) -http://89.254.128.5:22280/duo7_hd/index.m3u8 #EXTINF:-1 tvg-id="",Latvijas Radio 2 (240p) https://5a44e5b800a41.streamlock.net/liveVLR2/mp4:LR2/playlist.m3u8 #EXTINF:-1 tvg-id="",Latvijas Radio 3 Klasika (240p) https://5a44e5b800a41.streamlock.net/liveVLR3/mp4:Klasika/playlist.m3u8 -#EXTINF:-1 tvg-id="LatvijasSlagerkanals.lv",Latvijas Šlāgerkanāls (720p) -https://stream.onlive-media.com/live/streams/smk.m3u8 -#EXTINF:-1 tvg-id="LTV1.lv" http-referrer="http://89.254.128.5:22280/",LTV1 (1080p) -#EXTVLCOPT:http-referrer=http://89.254.128.5:22280/ -http://89.254.128.5:22280/ltv1_hd/index.m3u8 #EXTINF:-1 tvg-id="MovifyKino.lv" http-referrer="https://void.greenhosting.ru/",Movify Kino (576p) #EXTVLCOPT:http-referrer=https://void.greenhosting.ru/ https://void.greenhosting.ru/MovifyKino_Mpeg4/index.m3u8 #EXTINF:-1 tvg-id="Multimania.lv",Multimania (Latvia) (576p) https://void.greenhosting.ru/Multimania_Mpeg4/index.m3u8 -#EXTINF:-1 tvg-id="MuzikasVideoKanals.lv",Mūzikas Video Kanāls (720p) -https://stream.onlive-media.com/live/streams/mvk.m3u8 #EXTINF:-1 tvg-id="Pingviins.lv" http-referrer="https://void.greenhosting.ru/",Pingvīns (576p) [Geo-blocked] #EXTVLCOPT:http-referrer=https://void.greenhosting.ru/ https://void.greenhosting.ru/PingvinsLV_Mpeg4/video.m3u8 diff --git a/streams/my.m3u b/streams/my.m3u index 1c73198ba..c59268ef4 100644 --- a/streams/my.m3u +++ b/streams/my.m3u @@ -50,3 +50,13 @@ https://tonton-live-switch-ssar.akamaized.net/stream-8tv/master.m3u8?bpkio_servi https://tonton-live-switch-ssar.akamaized.net/stream-ntv7/master.m3u8?bpkio_serviceid=6c0958d82a830a02ca0936d9cfab8311 #EXTINF:-1 tvg-id="TVIKIM.my",TVIKIM https://edge-sg1.vediostream.com/abr/tvikim/playlist.m3u8 +#EXTINF:-1 tvg-id="TVIKIM.my",TVIKIM (1080p) +https://live.mana2.my/TvIkim/index.m3u8?auth_key=1745177920-648b7df03f404bc4ac20e90e96f817eb-0-35d3be6e85a129ce175b39a9819ca942&token=1745177920-648b7df03f404bc4ac20e90e96f817eb-0-35d3be6e85a129ce175b39a9819ca942 +#EXTINF:-1 tvg-id="SukeTV.my",Suke TV (720p) +https://live.mana2.my/SukeTv/index.m3u8?auth_key=1745177878-c9b78020e8d64aac92e7d5db06493530-0-951f497899c978ee5fbc2f1375671272&token=1745177878-c9b78020e8d64aac92e7d5db06493530-0-951f497899c978ee5fbc2f1375671272 +#EXTINF:-1 tvg-id="TV2.my",TV2 (1080p) +https://live.mana2.my/Tv2/index.m3u8?auth_key=1745177833-e4f0090e3d3b4ed1b2b4f5df87a24d34-0-d43f8be1101f9bb00363d62de6514e4d&token=1745177833-e4f0090e3d3b4ed1b2b4f5df87a24d34-0-d43f8be1101f9bb00363d62de6514e4d +#EXTINF:-1 tvg-id="SelangorTV.my",SelangorTV (1080p) +https://live.mana2.my/SelangorTv/index.m3u8?auth_key=1745177902-0210d7bbc24749879b1c370bfbd2b512-0-1a02652c616fd55ef43edbcf07d9c7dd&token=1745177902-0210d7bbc24749879b1c370bfbd2b512-0-1a02652c616fd55ef43edbcf07d9c7dd +#EXTINF:-1 tvg-id="TV1.my",TV1 (1080p) +https://live.mana2.my/Tv1/index.m3u8?auth_key=1745177809-03fbff3dfc194161829ff0dbf94a205a-0-c6dcdd3499b8b5488b7de0f6613b8047&token=1745177809-03fbff3dfc194161829ff0dbf94a205a-0-c6dcdd3499b8b5488b7de0f6613b8047 From 92259b55e63955a25d0ac87ede5524e33c0d406c Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Mon, 21 Apr 2025 00:12:08 +0000 Subject: [PATCH 22/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14564612795) workflow. --- README.md | 72 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 8e4bab973..7d6279183 100644 --- a/README.md +++ b/README.md @@ -61,28 +61,28 @@ Same thing, but split up into separate files: Comedy60https://iptv-org.github.io/iptv/categories/comedy.m3u Cooking23https://iptv-org.github.io/iptv/categories/cooking.m3u Culture167https://iptv-org.github.io/iptv/categories/culture.m3u - Documentary80https://iptv-org.github.io/iptv/categories/documentary.m3u + Documentary79https://iptv-org.github.io/iptv/categories/documentary.m3u Education150https://iptv-org.github.io/iptv/categories/education.m3u Entertainment542https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2349https://iptv-org.github.io/iptv/categories/general.m3u + General2347https://iptv-org.github.io/iptv/categories/general.m3u Kids175https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u Movies234https://iptv-org.github.io/iptv/categories/movies.m3u - Music659https://iptv-org.github.io/iptv/categories/music.m3u + Music660https://iptv-org.github.io/iptv/categories/music.m3u News769https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u Religious693https://iptv-org.github.io/iptv/categories/religious.m3u Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u - Shop86https://iptv-org.github.io/iptv/categories/shop.m3u + Shop87https://iptv-org.github.io/iptv/categories/shop.m3u Sports265https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4717https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4715https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2112https://iptv-org.github.io/iptv/languages/eng.m3u + English2111https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -165,7 +165,7 @@ Same thing, but split up into separate files: Ganda5https://iptv-org.github.io/iptv/languages/lug.m3u Gen1https://iptv-org.github.io/iptv/languages/gej.m3u Georgian9https://iptv-org.github.io/iptv/languages/kat.m3u - German256https://iptv-org.github.io/iptv/languages/deu.m3u + German259https://iptv-org.github.io/iptv/languages/deu.m3u Gikuyu2https://iptv-org.github.io/iptv/languages/kik.m3u Goan Konkani1https://iptv-org.github.io/iptv/languages/gom.m3u Greek125https://iptv-org.github.io/iptv/languages/ell.m3u @@ -204,16 +204,16 @@ Same thing, but split up into separate files: Kurdish32https://iptv-org.github.io/iptv/languages/kur.m3u Lango (Uganda)1https://iptv-org.github.io/iptv/languages/laj.m3u Lao8https://iptv-org.github.io/iptv/languages/lao.m3u - Latin3https://iptv-org.github.io/iptv/languages/lat.m3u - Latvian13https://iptv-org.github.io/iptv/languages/lav.m3u + Latin2https://iptv-org.github.io/iptv/languages/lat.m3u + Latvian8https://iptv-org.github.io/iptv/languages/lav.m3u Letzeburgesch12https://iptv-org.github.io/iptv/languages/ltz.m3u Lingala5https://iptv-org.github.io/iptv/languages/lin.m3u Lithuanian8https://iptv-org.github.io/iptv/languages/lit.m3u Luba-Lulua1https://iptv-org.github.io/iptv/languages/lua.m3u Macedonian34https://iptv-org.github.io/iptv/languages/mkd.m3u Maithili1https://iptv-org.github.io/iptv/languages/mai.m3u - Malay17https://iptv-org.github.io/iptv/languages/msa.m3u - Malayalam64https://iptv-org.github.io/iptv/languages/mal.m3u + Malay18https://iptv-org.github.io/iptv/languages/msa.m3u + Malayalam65https://iptv-org.github.io/iptv/languages/mal.m3u Maltese8https://iptv-org.github.io/iptv/languages/mlt.m3u Mandarin Chinese3https://iptv-org.github.io/iptv/languages/cmn.m3u Mandinka1https://iptv-org.github.io/iptv/languages/mnk.m3u @@ -242,7 +242,7 @@ Same thing, but split up into separate files: Romanian127https://iptv-org.github.io/iptv/languages/ron.m3u Romany1https://iptv-org.github.io/iptv/languages/rom.m3u Rundi1https://iptv-org.github.io/iptv/languages/run.m3u - Russian261https://iptv-org.github.io/iptv/languages/rus.m3u + Russian259https://iptv-org.github.io/iptv/languages/rus.m3u Saint Lucian Creole French2https://iptv-org.github.io/iptv/languages/acf.m3u Samoan2https://iptv-org.github.io/iptv/languages/smo.m3u Santali1https://iptv-org.github.io/iptv/languages/sat.m3u @@ -252,7 +252,7 @@ Same thing, but split up into separate files: Slovak49https://iptv-org.github.io/iptv/languages/slk.m3u Slovenian13https://iptv-org.github.io/iptv/languages/slv.m3u Somali11https://iptv-org.github.io/iptv/languages/som.m3u - Spanish2073https://iptv-org.github.io/iptv/languages/spa.m3u + Spanish2072https://iptv-org.github.io/iptv/languages/spa.m3u Sranan Tongo3https://iptv-org.github.io/iptv/languages/srn.m3u Swahili24https://iptv-org.github.io/iptv/languages/swa.m3u Swedish16https://iptv-org.github.io/iptv/languages/swe.m3u @@ -286,7 +286,7 @@ Same thing, but split up into separate files: Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u Yue Chinese5https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2879https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2878https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -346,7 +346,9 @@ Same thing, but split up into separate files: 🇦🇲 Armenia52https://iptv-org.github.io/iptv/countries/am.m3u 🇦🇼 Aruba21https://iptv-org.github.io/iptv/countries/aw.m3u 🇦🇺 Australia39https://iptv-org.github.io/iptv/countries/au.m3u - 🇦🇹 Austria73https://iptv-org.github.io/iptv/countries/at.m3u + 🇦🇹 Austria75https://iptv-org.github.io/iptv/countries/at.m3u +       Karnten1https://iptv-org.github.io/iptv/subdivisions/at-2.m3u +       Steiermark1https://iptv-org.github.io/iptv/subdivisions/at-6.m3u 🇦🇿 Azerbaijan46https://iptv-org.github.io/iptv/countries/az.m3u 🇧🇸 Bahamas15https://iptv-org.github.io/iptv/countries/bs.m3u 🇧🇭 Bahrain46https://iptv-org.github.io/iptv/countries/bh.m3u @@ -413,7 +415,7 @@ Same thing, but split up into separate files: 🇰🇾 Cayman Islands12https://iptv-org.github.io/iptv/countries/ky.m3u 🇨🇫 Central African Republic23https://iptv-org.github.io/iptv/countries/cf.m3u 🇹🇩 Chad24https://iptv-org.github.io/iptv/countries/td.m3u - 🇨🇱 Chile266https://iptv-org.github.io/iptv/countries/cl.m3u + 🇨🇱 Chile265https://iptv-org.github.io/iptv/countries/cl.m3u       Atacama1https://iptv-org.github.io/iptv/subdivisions/cl-at.m3u       Biobio3https://iptv-org.github.io/iptv/subdivisions/cl-bi.m3u       Coquimbo1https://iptv-org.github.io/iptv/subdivisions/cl-co.m3u @@ -489,7 +491,7 @@ Same thing, but split up into separate files: 🇬🇦 Gabon28https://iptv-org.github.io/iptv/countries/ga.m3u 🇬🇲 Gambia24https://iptv-org.github.io/iptv/countries/gm.m3u 🇬🇪 Georgia36https://iptv-org.github.io/iptv/countries/ge.m3u - 🇩🇪 Germany247https://iptv-org.github.io/iptv/countries/de.m3u + 🇩🇪 Germany248https://iptv-org.github.io/iptv/countries/de.m3u 🇬🇭 Ghana42https://iptv-org.github.io/iptv/countries/gh.m3u 🇬🇷 Greece145https://iptv-org.github.io/iptv/countries/gr.m3u       Attiki10https://iptv-org.github.io/iptv/subdivisions/gr-i.m3u @@ -579,7 +581,7 @@ Same thing, but split up into separate files: 🇰🇼 Kuwait53https://iptv-org.github.io/iptv/countries/kw.m3u 🇰🇬 Kyrgyzstan20https://iptv-org.github.io/iptv/countries/kg.m3u 🇱🇦 Laos24https://iptv-org.github.io/iptv/countries/la.m3u - 🇱🇻 Latvia57https://iptv-org.github.io/iptv/countries/lv.m3u + 🇱🇻 Latvia51https://iptv-org.github.io/iptv/countries/lv.m3u 🇱🇧 Lebanon69https://iptv-org.github.io/iptv/countries/lb.m3u 🇱🇸 Lesotho23https://iptv-org.github.io/iptv/countries/ls.m3u 🇱🇷 Liberia24https://iptv-org.github.io/iptv/countries/lr.m3u @@ -590,7 +592,7 @@ Same thing, but split up into separate files: 🇲🇴 Macao7https://iptv-org.github.io/iptv/countries/mo.m3u 🇲🇬 Madagascar23https://iptv-org.github.io/iptv/countries/mg.m3u 🇲🇼 Malawi26https://iptv-org.github.io/iptv/countries/mw.m3u - 🇲🇾 Malaysia32https://iptv-org.github.io/iptv/countries/my.m3u + 🇲🇾 Malaysia34https://iptv-org.github.io/iptv/countries/my.m3u 🇲🇻 Maldives15https://iptv-org.github.io/iptv/countries/mv.m3u 🇲🇱 Mali29https://iptv-org.github.io/iptv/countries/ml.m3u 🇲🇹 Malta45https://iptv-org.github.io/iptv/countries/mt.m3u @@ -818,7 +820,7 @@ Same thing, but split up into separate files: 🇾🇪 Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u 🇿🇲 Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u 🇿🇼 Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2879https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2878https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -845,11 +847,11 @@ Same thing, but split up into separate files: Africa546https://iptv-org.github.io/iptv/regions/afr.m3u - Americas3604https://iptv-org.github.io/iptv/regions/amer.m3u + Americas3603https://iptv-org.github.io/iptv/regions/amer.m3u Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2141https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1131https://iptv-org.github.io/iptv/regions/apac.m3u - Association of Southeast Asian Nations345https://iptv-org.github.io/iptv/regions/asean.m3u + Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u + Asia-Pacific1133https://iptv-org.github.io/iptv/regions/apac.m3u + Association of Southeast Asian Nations347https://iptv-org.github.io/iptv/regions/asean.m3u Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u Caribbean367https://iptv-org.github.io/iptv/regions/carib.m3u @@ -857,29 +859,29 @@ Same thing, but split up into separate files: Central and Eastern Europe987https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2856https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3769https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1953https://iptv-org.github.io/iptv/regions/eu.m3u - Hispanic America1683https://iptv-org.github.io/iptv/regions/hispam.m3u - Latin America2000https://iptv-org.github.io/iptv/regions/latam.m3u - Latin America and the Caribbean2044https://iptv-org.github.io/iptv/regions/lac.m3u + Europe2853https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3766https://iptv-org.github.io/iptv/regions/emea.m3u + European Union1950https://iptv-org.github.io/iptv/regions/eu.m3u + Hispanic America1682https://iptv-org.github.io/iptv/regions/hispam.m3u + Latin America1999https://iptv-org.github.io/iptv/regions/latam.m3u + Latin America and the Caribbean2043https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u Middle East809https://iptv-org.github.io/iptv/regions/mideast.m3u Middle East and North Africa838https://iptv-org.github.io/iptv/regions/mena.m3u Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u North America2422https://iptv-org.github.io/iptv/regions/noram.m3u Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u - Northern Europe153https://iptv-org.github.io/iptv/regions/neur.m3u + Northern Europe147https://iptv-org.github.io/iptv/regions/neur.m3u Oceania55https://iptv-org.github.io/iptv/regions/oce.m3u - South America1262https://iptv-org.github.io/iptv/regions/southam.m3u + South America1261https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u - Southeast Asia345https://iptv-org.github.io/iptv/regions/sea.m3u + Southeast Asia347https://iptv-org.github.io/iptv/regions/sea.m3u Southern Europe1059https://iptv-org.github.io/iptv/regions/ser.m3u Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u - Western Europe780https://iptv-org.github.io/iptv/regions/wer.m3u + Western Europe783https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2879https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2878https://iptv-org.github.io/iptv/regions/undefined.m3u From 51eb2b291d7e48764091e07bb417357c4f0bc6bc Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Tue, 22 Apr 2025 00:11:21 +0000 Subject: [PATCH 23/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14583785793) workflow. closes #21274, closes #21272 --- streams/cl.m3u | 3 +++ streams/cr.m3u | 2 ++ streams/tg.m3u | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/streams/cl.m3u b/streams/cl.m3u index f3c1321cd..7f2b3b173 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -453,3 +453,6 @@ https://xui-backend.energeek.cl/live/10/playlist.m3u8?username=dEmoweBeneRGEek20 https://xui-backend.energeek.cl/live/9/playlist.m3u8?username=dEmoweBeneRGEek2025&password=FK8tJm5kBxetEDAXSLDF #EXTINF:-1 tvg-id="Kanade.cl",Kanade (1080p) https://xui-backend.energeek.cl/live/deM0kanADeweB/Cerq7EpWHiWDuHTJ8ikz/13.m3u8 +#EXTINF:-1 tvg-id="VisionPlusTV.cl" http-referrer="https://visionplustv.cl/",Vision Plus TV (1080i) +#EXTVLCOPT:http-referrer=https://visionplustv.cl/ +https://5ff3d9babae13.streamlock.net/jwagpqxehu/jwagpqxehu/playlist.m3u8 diff --git a/streams/cr.m3u b/streams/cr.m3u index d4b406e01..c04632b40 100644 --- a/streams/cr.m3u +++ b/streams/cr.m3u @@ -160,3 +160,5 @@ https://stmv.streamingvip.click/xpressojovenradiotv/xpressojovenradiotv/playlist https://acceso.radiosportstv.online:3022/stream/play.m3u8 #EXTINF:-1 tvg-id="ZurquiTV.cr",Zurquí TV (720p) https://videoserver.tmcreativos.com:19360/gesfnvpamn/gesfnvpamn.m3u8 +#EXTINF:-1 tvg-id="RetroxTV.cr",Retrox TV (720p) +https://ssh101stream.ssh101.com/akamaissh101/ssh101/tvtvtv/playlist.m3u8 diff --git a/streams/tg.m3u b/streams/tg.m3u index d5c15c9dc..275ffca4a 100644 --- a/streams/tg.m3u +++ b/streams/tg.m3u @@ -1,7 +1,7 @@ #EXTM3U #EXTINF:-1 tvg-id="ACTV.tg",AC TV (480p) [Not 24/7] https://ssh101stream.ssh101.com/akamaissh101/ssh101/actvstream/playlist.m3u8 -#EXTINF:-1 tvg-id="ChandelTV.tg",Chandel TV (720p) +#EXTINF:-1 tvg-id="ChandelTV.tg",Chandel TV (720p) https://kali.vdopanel.com:3660/live/vj6jlam1rlive.m3u8 #EXTINF:-1 tvg-id="DynamicGospelTV.tg",Dynamic Gospel TV (480p) [Not 24/7] https://ssh101stream.ssh101.com/akamaissh101/ssh101/tvdynamicstream/playlist.m3u8 From 3834f37c42c7fc6133f9810f0877630823d21027 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Tue, 22 Apr 2025 00:11:21 +0000 Subject: [PATCH 24/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14583785793) workflow. --- README.md | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 7d6279183..62760f012 100644 --- a/README.md +++ b/README.md @@ -61,28 +61,28 @@ Same thing, but split up into separate files: Comedy60https://iptv-org.github.io/iptv/categories/comedy.m3u Cooking23https://iptv-org.github.io/iptv/categories/cooking.m3u Culture167https://iptv-org.github.io/iptv/categories/culture.m3u - Documentary79https://iptv-org.github.io/iptv/categories/documentary.m3u + Documentary78https://iptv-org.github.io/iptv/categories/documentary.m3u Education150https://iptv-org.github.io/iptv/categories/education.m3u Entertainment542https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2347https://iptv-org.github.io/iptv/categories/general.m3u - Kids175https://iptv-org.github.io/iptv/categories/kids.m3u + General2343https://iptv-org.github.io/iptv/categories/general.m3u + Kids174https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u - Lifestyle78https://iptv-org.github.io/iptv/categories/lifestyle.m3u + Lifestyle77https://iptv-org.github.io/iptv/categories/lifestyle.m3u Movies234https://iptv-org.github.io/iptv/categories/movies.m3u Music660https://iptv-org.github.io/iptv/categories/music.m3u - News769https://iptv-org.github.io/iptv/categories/news.m3u + News768https://iptv-org.github.io/iptv/categories/news.m3u Outdoor40https://iptv-org.github.io/iptv/categories/outdoor.m3u Relax2https://iptv-org.github.io/iptv/categories/relax.m3u Religious693https://iptv-org.github.io/iptv/categories/religious.m3u Science21https://iptv-org.github.io/iptv/categories/science.m3u Series149https://iptv-org.github.io/iptv/categories/series.m3u Shop87https://iptv-org.github.io/iptv/categories/shop.m3u - Sports265https://iptv-org.github.io/iptv/categories/sports.m3u + Sports263https://iptv-org.github.io/iptv/categories/sports.m3u Travel39https://iptv-org.github.io/iptv/categories/travel.m3u Weather13https://iptv-org.github.io/iptv/categories/weather.m3u XXX0https://iptv-org.github.io/iptv/categories/xxx.m3u - Undefined4715https://iptv-org.github.io/iptv/categories/undefined.m3u + Undefined4710https://iptv-org.github.io/iptv/categories/undefined.m3u @@ -150,7 +150,7 @@ Same thing, but split up into separate files: Dutch188https://iptv-org.github.io/iptv/languages/nld.m3u Dyula1https://iptv-org.github.io/iptv/languages/dyu.m3u Egyptian Arabic2https://iptv-org.github.io/iptv/languages/arz.m3u - English2111https://iptv-org.github.io/iptv/languages/eng.m3u + English2109https://iptv-org.github.io/iptv/languages/eng.m3u Estonian9https://iptv-org.github.io/iptv/languages/est.m3u Ewe2https://iptv-org.github.io/iptv/languages/ewe.m3u Faroese1https://iptv-org.github.io/iptv/languages/fao.m3u @@ -158,7 +158,7 @@ Same thing, but split up into separate files: Filipino1https://iptv-org.github.io/iptv/languages/fil.m3u Finnish23https://iptv-org.github.io/iptv/languages/fin.m3u Fon3https://iptv-org.github.io/iptv/languages/fon.m3u - French418https://iptv-org.github.io/iptv/languages/fra.m3u + French414https://iptv-org.github.io/iptv/languages/fra.m3u Fulah2https://iptv-org.github.io/iptv/languages/ful.m3u Gaelic2https://iptv-org.github.io/iptv/languages/gla.m3u Galician13https://iptv-org.github.io/iptv/languages/glg.m3u @@ -235,7 +235,7 @@ Same thing, but split up into separate files: Parsi-Dari3https://iptv-org.github.io/iptv/languages/prd.m3u Pashto16https://iptv-org.github.io/iptv/languages/pus.m3u Persian139https://iptv-org.github.io/iptv/languages/fas.m3u - Polish149https://iptv-org.github.io/iptv/languages/pol.m3u + Polish140https://iptv-org.github.io/iptv/languages/pol.m3u Portuguese337https://iptv-org.github.io/iptv/languages/por.m3u Pulaar1https://iptv-org.github.io/iptv/languages/fuc.m3u Quechua1https://iptv-org.github.io/iptv/languages/que.m3u @@ -345,7 +345,7 @@ Same thing, but split up into separate files:       Tucuman2https://iptv-org.github.io/iptv/subdivisions/ar-t.m3u 🇦🇲 Armenia52https://iptv-org.github.io/iptv/countries/am.m3u 🇦🇼 Aruba21https://iptv-org.github.io/iptv/countries/aw.m3u - 🇦🇺 Australia39https://iptv-org.github.io/iptv/countries/au.m3u + 🇦🇺 Australia40https://iptv-org.github.io/iptv/countries/au.m3u 🇦🇹 Austria75https://iptv-org.github.io/iptv/countries/at.m3u       Karnten1https://iptv-org.github.io/iptv/subdivisions/at-2.m3u       Steiermark1https://iptv-org.github.io/iptv/subdivisions/at-6.m3u @@ -394,7 +394,7 @@ Same thing, but split up into separate files: 🇻🇬 British Virgin Islands14https://iptv-org.github.io/iptv/countries/vg.m3u 🇧🇳 Brunei17https://iptv-org.github.io/iptv/countries/bn.m3u 🇧🇬 Bulgaria62https://iptv-org.github.io/iptv/countries/bg.m3u - 🇧🇫 Burkina Faso26https://iptv-org.github.io/iptv/countries/bf.m3u + 🇧🇫 Burkina Faso28https://iptv-org.github.io/iptv/countries/bf.m3u 🇧🇮 Burundi24https://iptv-org.github.io/iptv/countries/bi.m3u 🇰🇭 Cambodia35https://iptv-org.github.io/iptv/countries/kh.m3u 🇨🇲 Cameroon55https://iptv-org.github.io/iptv/countries/cm.m3u @@ -594,7 +594,7 @@ Same thing, but split up into separate files: 🇲🇼 Malawi26https://iptv-org.github.io/iptv/countries/mw.m3u 🇲🇾 Malaysia34https://iptv-org.github.io/iptv/countries/my.m3u 🇲🇻 Maldives15https://iptv-org.github.io/iptv/countries/mv.m3u - 🇲🇱 Mali29https://iptv-org.github.io/iptv/countries/ml.m3u + 🇲🇱 Mali28https://iptv-org.github.io/iptv/countries/ml.m3u 🇲🇹 Malta45https://iptv-org.github.io/iptv/countries/mt.m3u 🇲🇭 Marshall Islands5https://iptv-org.github.io/iptv/countries/mh.m3u 🇲🇶 Martinique25https://iptv-org.github.io/iptv/countries/mq.m3u @@ -667,7 +667,7 @@ Same thing, but split up into separate files:       Ucayali2https://iptv-org.github.io/iptv/subdivisions/pe-uca.m3u 🇵🇭 Philippines26https://iptv-org.github.io/iptv/countries/ph.m3u 🇵🇳 Pitcairn Islands5https://iptv-org.github.io/iptv/countries/pn.m3u - 🇵🇱 Poland192https://iptv-org.github.io/iptv/countries/pl.m3u + 🇵🇱 Poland180https://iptv-org.github.io/iptv/countries/pl.m3u 🇵🇹 Portugal83https://iptv-org.github.io/iptv/countries/pt.m3u 🇵🇷 Puerto Rico100https://iptv-org.github.io/iptv/countries/pr.m3u 🇶🇦 Qatar54https://iptv-org.github.io/iptv/countries/qa.m3u @@ -689,7 +689,7 @@ Same thing, but split up into separate files: 🇸🇲 San Marino29https://iptv-org.github.io/iptv/countries/sm.m3u 🇸🇹 Sao Tome and Principe24https://iptv-org.github.io/iptv/countries/st.m3u 🇸🇦 Saudi Arabia90https://iptv-org.github.io/iptv/countries/sa.m3u - 🇸🇳 Senegal54https://iptv-org.github.io/iptv/countries/sn.m3u + 🇸🇳 Senegal49https://iptv-org.github.io/iptv/countries/sn.m3u 🇷🇸 Serbia69https://iptv-org.github.io/iptv/countries/rs.m3u 🇸🇨 Seychelles23https://iptv-org.github.io/iptv/countries/sc.m3u 🇸🇱 Sierra Leone25https://iptv-org.github.io/iptv/countries/sl.m3u @@ -745,7 +745,7 @@ Same thing, but split up into separate files: 🇹🇯 Tajikistan28https://iptv-org.github.io/iptv/countries/tj.m3u 🇹🇿 Tanzania31https://iptv-org.github.io/iptv/countries/tz.m3u 🇹🇭 Thailand75https://iptv-org.github.io/iptv/countries/th.m3u - 🇹🇬 Togo36https://iptv-org.github.io/iptv/countries/tg.m3u + 🇹🇬 Togo35https://iptv-org.github.io/iptv/countries/tg.m3u 🇹🇰 Tokelau5https://iptv-org.github.io/iptv/countries/tk.m3u 🇹🇴 Tonga5https://iptv-org.github.io/iptv/countries/to.m3u 🇹🇹 Trinidad and Tobago18https://iptv-org.github.io/iptv/countries/tt.m3u @@ -846,22 +846,22 @@ Same thing, but split up into separate files: RegionChannelsPlaylist - Africa546https://iptv-org.github.io/iptv/regions/afr.m3u + Africa542https://iptv-org.github.io/iptv/regions/afr.m3u Americas3603https://iptv-org.github.io/iptv/regions/amer.m3u Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u - Asia-Pacific1133https://iptv-org.github.io/iptv/regions/apac.m3u + Asia-Pacific1134https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations347https://iptv-org.github.io/iptv/regions/asean.m3u Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u Caribbean367https://iptv-org.github.io/iptv/regions/carib.m3u Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe987https://iptv-org.github.io/iptv/regions/cee.m3u + Central and Eastern Europe975https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u - Europe2853https://iptv-org.github.io/iptv/regions/eur.m3u - Europe, the Middle East and Africa3766https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1950https://iptv-org.github.io/iptv/regions/eu.m3u + Europe2841https://iptv-org.github.io/iptv/regions/eur.m3u + Europe, the Middle East and Africa3750https://iptv-org.github.io/iptv/regions/emea.m3u + European Union1938https://iptv-org.github.io/iptv/regions/eu.m3u Hispanic America1682https://iptv-org.github.io/iptv/regions/hispam.m3u Latin America1999https://iptv-org.github.io/iptv/regions/latam.m3u Latin America and the Caribbean2043https://iptv-org.github.io/iptv/regions/lac.m3u @@ -872,13 +872,13 @@ Same thing, but split up into separate files: North America2422https://iptv-org.github.io/iptv/regions/noram.m3u Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u Northern Europe147https://iptv-org.github.io/iptv/regions/neur.m3u - Oceania55https://iptv-org.github.io/iptv/regions/oce.m3u + Oceania56https://iptv-org.github.io/iptv/regions/oce.m3u South America1261https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u Southeast Asia347https://iptv-org.github.io/iptv/regions/sea.m3u Southern Europe1059https://iptv-org.github.io/iptv/regions/ser.m3u - Sub-Saharan Africa491https://iptv-org.github.io/iptv/regions/ssa.m3u - West Africa253https://iptv-org.github.io/iptv/regions/wafr.m3u + Sub-Saharan Africa487https://iptv-org.github.io/iptv/regions/ssa.m3u + West Africa249https://iptv-org.github.io/iptv/regions/wafr.m3u Western Europe783https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u Undefined2878https://iptv-org.github.io/iptv/regions/undefined.m3u From 88e62715e81d7318b238203ff95b74753cda7dd0 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 03:47:28 +0300 Subject: [PATCH 25/44] Update tests --- tests/commands/api/generate.test.ts | 25 ++++++--- tests/commands/playlist/format.test.ts | 30 +++++++---- tests/commands/playlist/generate.test.ts | 39 +++++++++------ tests/commands/playlist/test.test.ts | 35 +++++++++---- tests/commands/playlist/update.test.ts | 40 ++++++++------- tests/commands/playlist/validate.test.ts | 64 +++++++++++++----------- tests/commands/readme/update.test.ts | 27 ++++++---- tests/commands/report/create.test.ts | 26 ++++++---- 8 files changed, 175 insertions(+), 111 deletions(-) diff --git a/tests/commands/api/generate.test.ts b/tests/commands/api/generate.test.ts index 7f8f68aa9..3f2178da6 100644 --- a/tests/commands/api/generate.test.ts +++ b/tests/commands/api/generate.test.ts @@ -1,19 +1,28 @@ import { execSync } from 'child_process' import fs from 'fs-extra' +import os from 'os' + +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/api_generate" && SET "API_DIR=tests/__data__/output/.api" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') }) -it('can create streams.json', () => { - execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/api_generate API_DIR=tests/__data__/output/.api npm run api:generate', - { encoding: 'utf8' } - ) +describe('api:generate', () => { + it('can create streams.json', () => { + const cmd = `${ENV_VAR} npm run api:generate` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - expect(content('output/.api/streams.json')).toMatchObject( - content('expected/api_generate/.api/streams.json') - ) + expect(content('output/.api/streams.json')).toMatchObject( + content('expected/api_generate/.api/streams.json') + ) + }) }) function content(filepath: string) { diff --git a/tests/commands/playlist/format.test.ts b/tests/commands/playlist/format.test.ts index d513c8b38..58174f93a 100644 --- a/tests/commands/playlist/format.test.ts +++ b/tests/commands/playlist/format.test.ts @@ -1,25 +1,33 @@ import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' +import os from 'os' + +let ENV_VAR = 'STREAMS_DIR=tests/__data__/output/streams' +if (os.platform() === 'win32') { + ENV_VAR = 'SET "STREAMS_DIR=tests/__data__/output/streams" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') fs.copySync('tests/__data__/input/playlist_format', 'tests/__data__/output/streams') }) -it('can format playlists', () => { - execSync('STREAMS_DIR=tests/__data__/output/streams npm run playlist:format', { - encoding: 'utf8' - }) +describe('playlist:format', () => { + it('can format playlists', () => { + const cmd = `${ENV_VAR} npm run playlist:format` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_format/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_format/', '')) + const files = glob + .sync('tests/__data__/expected/playlist_format/*.m3u') + .map(f => f.replace('tests/__data__/expected/playlist_format/', '')) - files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_format/${filepath}`) - ) + files.forEach(filepath => { + expect(content(`output/streams/${filepath}`), filepath).toBe( + content(`expected/playlist_format/${filepath}`) + ) + }) }) }) diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index 389ee022e..d51428aca 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -1,32 +1,39 @@ import { execSync } from 'child_process' import * as fs from 'fs-extra' import * as glob from 'glob' +import os from 'os' + +let ENV_VAR = + 'STREAMS_DIR=tests/__data__/input/playlist_generate DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output/.gh-pages LOGS_DIR=tests/__data__/output/logs' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "STREAMS_DIR=tests/__data__/input/playlist_generate" && SET "DATA_DIR=tests/__data__/input/data" && SET "PUBLIC_DIR=tests/__data__/output/.gh-pages" && SET "LOGS_DIR=tests/__data__/output/logs" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') }) -it('can generate playlists and logs', () => { - const stdout = execSync( - 'STREAMS_DIR=tests/__data__/input/playlist_generate DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output/.gh-pages LOGS_DIR=tests/__data__/output/logs npm run playlist:generate', - { encoding: 'utf8' } - ) +describe('playlist:generate', () => { + it('can generate playlists and logs', () => { + const cmd = `${ENV_VAR} npm run playlist:generate` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - if (process.env.DEBUG === 'true') console.log(stdout) + const playlists = glob + .sync('tests/__data__/expected/playlist_generate/.gh-pages/**/*.m3u') + .map((file: string) => file.replace('tests/__data__/expected/playlist_generate/', '')) - const playlists = glob - .sync('tests/__data__/expected/playlist_generate/.gh-pages/**/*.m3u') - .map((file: string) => file.replace('tests/__data__/expected/playlist_generate/', '')) + playlists.forEach((filepath: string) => { + expect(content(`output/${filepath}`), filepath).toBe( + content(`expected/playlist_generate/${filepath}`) + ) + }) - playlists.forEach((filepath: string) => { - expect(content(`output/${filepath}`), filepath).toBe( - content(`expected/playlist_generate/${filepath}`) + expect(content('output/logs/generators.log').split('\n').sort()).toStrictEqual( + content('expected/playlist_generate/logs/generators.log').split('\n').sort() ) }) - - expect(content('output/logs/generators.log').split('\n').sort()).toStrictEqual( - content('expected/playlist_generate/logs/generators.log').split('\n').sort() - ) }) function content(filepath: string) { diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index 0842f0f10..0020106dc 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,19 +1,32 @@ import { execSync } from 'child_process' +import os from 'os' type ExecError = { status: number stdout: string } -it('shows an error if the playlist contains a broken link', () => { - try { - execSync('ROOT_DIR=tests/__data__/input npm run playlist:test playlist_test/ag.m3u', { - encoding: 'utf8' - }) - process.exit(1) - } catch (error) { - expect((error as ExecError).status).toBe(1) - expect((error as ExecError).stdout).toContain('playlist_test/ag.m3u') - expect((error as ExecError).stdout).toContain('2 problems (1 errors, 1 warnings)') - } +let ENV_VAR = 'ROOT_DIR=tests/__data__/input' +if (os.platform() === 'win32') { + ENV_VAR = 'SET "ROOT_DIR=tests/__data__/input" &&' +} + +describe('playlist:test', () => { + it('shows an error if the playlist contains a broken link', () => { + const cmd = `${ENV_VAR} npm run playlist:test playlist_test/ag.m3u` + try { + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + checkStdout(stdout) + } catch (error) { + // NOTE: for Windows only + if (process.env.DEBUG === 'true') console.log(cmd, error) + checkStdout((error as ExecError).stdout) + } + }) }) + +function checkStdout(stdout: string) { + expect(stdout).toContain('playlist_test/ag.m3u') + expect(stdout).toContain('2 problems (1 errors, 1 warnings)') +} diff --git a/tests/commands/playlist/update.test.ts b/tests/commands/playlist/update.test.ts index cc104d8cc..16dbefaf8 100644 --- a/tests/commands/playlist/update.test.ts +++ b/tests/commands/playlist/update.test.ts @@ -1,33 +1,39 @@ import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' +import os from 'os' + +let ENV_VAR = 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/output/streams" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') fs.copySync('tests/__data__/input/playlist_update', 'tests/__data__/output/streams') }) -it('can update playlists', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams npm run playlist:update --silent', - { - encoding: 'utf8' - } - ) +describe('playlist:update', () => { + it('can update playlists', () => { + const cmd = `${ENV_VAR} npm run playlist:update --silent` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_update/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_update/', '')) + const files = glob + .sync('tests/__data__/expected/playlist_update/*.m3u') + .map(f => f.replace('tests/__data__/expected/playlist_update/', '')) - files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_update/${filepath}`) + files.forEach(filepath => { + expect(content(`output/streams/${filepath}`), filepath).toBe( + content(`expected/playlist_update/${filepath}`) + ) + }) + + expect(stdout).toBe( + 'OUTPUT=closes #14151, closes #14150, closes #14110, closes #14120, closes #14175, closes #14105, closes #14104, closes #14057, closes #14034, closes #13964, closes #13893, closes #13881, closes #13793, closes #13751, closes #13715\n' ) }) - - expect(stdout).toBe( - 'OUTPUT=closes #14151, closes #14150, closes #14110, closes #14120, closes #14175, closes #14105, closes #14104, closes #14057, closes #14034, closes #13964, closes #13893, closes #13881, closes #13793, closes #13751, closes #13715\n' - ) }) function content(filepath: string) { diff --git a/tests/commands/playlist/validate.test.ts b/tests/commands/playlist/validate.test.ts index b2a43324e..933099bc9 100644 --- a/tests/commands/playlist/validate.test.ts +++ b/tests/commands/playlist/validate.test.ts @@ -1,41 +1,47 @@ import { execSync } from 'child_process' +import os from 'os' type ExecError = { status: number stdout: string } -it('show an error if channel id in the blocklist', () => { - try { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate npm run playlist:validate -- us_blocked.m3u', - { - encoding: 'utf8' - } +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/playlist_validate" &&' +} + +describe('playlist:validate', () => { + it('show an error if channel id in the blocklist', () => { + const cmd = `${ENV_VAR} npm run playlist:validate -- us_blocked.m3u` + try { + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + checkStdout(stdout) + } catch (error) { + // NOTE: for Windows only + if (process.env.DEBUG === 'true') console.log(cmd, error) + checkStdout((error as ExecError).stdout) + } + }) + + it('show a warning if channel has wrong id', () => { + const cmd = `${ENV_VAR} npm run playlist:validate -- wrong_id.m3u` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect(stdout).toContain( + 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' ) - if (process.env.DEBUG === 'true') console.log(stdout) - process.exit(1) - } catch (error) { - if (process.env.DEBUG === 'true') console.log((error as ExecError).stdout) - expect((error as ExecError).status).toBe(1) - expect((error as ExecError).stdout).toContain(`us_blocked.m3u + }) +}) + +function checkStdout(stdout: string) { + expect(stdout).toContain(`us_blocked.m3u 2 error "FoxSports2.us" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0002) 4 error "TVN.pl" is on the blocklist due to NSFW content (https://github.com/iptv-org/iptv/issues/0003) 2 problems (2 errors, 0 warnings)`) - } -}) - -it('show a warning if channel has wrong id', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/playlist_validate npm run playlist:validate -- wrong_id.m3u', - { - encoding: 'utf8' - } - ) - if (process.env.DEBUG === 'true') console.log(stdout) - - expect(stdout).toContain( - 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' - ) -}) +} diff --git a/tests/commands/readme/update.test.ts b/tests/commands/readme/update.test.ts index f15e71f48..0ba363409 100644 --- a/tests/commands/readme/update.test.ts +++ b/tests/commands/readme/update.test.ts @@ -1,6 +1,14 @@ import { execSync } from 'child_process' import fs from 'fs-extra' import path from 'path' +import os from 'os' + +let ENV_VAR = + 'DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update README_DIR=tests/__data__/output/.readme' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "LOGS_DIR=tests/__data__/input/readme_update" && SET "README_DIR=tests/__data__/output/.readme" &&' +} beforeEach(() => { fs.emptyDirSync('tests/__data__/output') @@ -13,17 +21,18 @@ beforeEach(() => { 'tests/__data__/input/readme_update/.readme/template.md', 'tests/__data__/output/.readme/template.md' ) - - execSync( - 'DATA_DIR=tests/__data__/input/data LOGS_DIR=tests/__data__/input/readme_update README_DIR=tests/__data__/output/.readme npm run readme:update', - { encoding: 'utf8' } - ) }) -it('can update readme.md', () => { - expect(content('tests/__data__/output/readme.md')).toEqual( - content('tests/__data__/expected/readme_update/_readme.md') - ) +describe('readme:update', () => { + it('can update readme.md', () => { + const cmd = `${ENV_VAR} npm run readme:update` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect(content('tests/__data__/output/readme.md')).toEqual( + content('tests/__data__/expected/readme_update/_readme.md') + ) + }) }) function content(filepath: string) { diff --git a/tests/commands/report/create.test.ts b/tests/commands/report/create.test.ts index de449347a..18c799445 100644 --- a/tests/commands/report/create.test.ts +++ b/tests/commands/report/create.test.ts @@ -1,15 +1,20 @@ import { execSync } from 'child_process' +import os from 'os' -it('can create report', () => { - const stdout = execSync( - 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/report_create npm run report:create', - { - encoding: 'utf8' - } - ) +let ENV_VAR = 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/input/report_create' +if (os.platform() === 'win32') { + ENV_VAR = + 'SET "DATA_DIR=tests/__data__/input/data" && SET "STREAMS_DIR=tests/__data__/input/report_create" &&' +} - expect( - stdout.includes(` +describe('report:create', () => { + it('can create report', () => { + const cmd = `${ENV_VAR} npm run report:create` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect( + stdout.includes(` ┌─────────┬─────────────┬──────────────────┬─────────────────────────────┬───────────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────┐ │ (index) │ issueNumber │ type │ streamId │ streamUrl │ status │ ├─────────┼─────────────┼──────────────────┼─────────────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────┤ @@ -20,5 +25,6 @@ it('can create report', () => { │ 4 │ 16120 │ 'broken stream' │ undefined │ 'http://190.61.102.67:2000/play/a038/index.m3u8' │ 'wrong_link' │ │ 5 │ 19956 │ 'channel search' │ 'CNBCe.tr' │ undefined │ 'invalid_id' │ └─────────┴─────────────┴──────────────────┴─────────────────────────────┴───────────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────┘`) - ).toBe(true) + ).toBe(true) + }) }) From 5e8dee13a99e05488afe62bdfe90801c646e2cbe Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 23:17:48 +0300 Subject: [PATCH 26/44] Update tests --- tests/commands/api/generate.test.ts | 11 ++++------- tests/commands/playlist/format.test.ts | 9 ++++----- tests/commands/playlist/generate.test.ts | 13 ++++++------- tests/commands/playlist/update.test.ts | 9 ++++----- tests/commands/readme/update.test.ts | 7 ++----- 5 files changed, 20 insertions(+), 29 deletions(-) diff --git a/tests/commands/api/generate.test.ts b/tests/commands/api/generate.test.ts index 3f2178da6..931f543cb 100644 --- a/tests/commands/api/generate.test.ts +++ b/tests/commands/api/generate.test.ts @@ -1,3 +1,4 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import fs from 'fs-extra' import os from 'os' @@ -19,16 +20,12 @@ describe('api:generate', () => { const stdout = execSync(cmd, { encoding: 'utf8' }) if (process.env.DEBUG === 'true') console.log(cmd, stdout) - expect(content('output/.api/streams.json')).toMatchObject( - content('expected/api_generate/.api/streams.json') + expect(content('tests/__data__/output/.api/streams.json')).toMatchObject( + content('tests/__data__/expected/api_generate/.api/streams.json') ) }) }) function content(filepath: string) { - return JSON.parse( - fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) - ) + return JSON.parse(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) } diff --git a/tests/commands/playlist/format.test.ts b/tests/commands/playlist/format.test.ts index 58174f93a..070bfd7d9 100644 --- a/tests/commands/playlist/format.test.ts +++ b/tests/commands/playlist/format.test.ts @@ -1,3 +1,4 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' @@ -24,15 +25,13 @@ describe('playlist:format', () => { .map(f => f.replace('tests/__data__/expected/playlist_format/', '')) files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_format/${filepath}`) + expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_format/${filepath}`) ) }) }) }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index d51428aca..5c99f0269 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -1,3 +1,4 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import * as fs from 'fs-extra' import * as glob from 'glob' @@ -25,19 +26,17 @@ describe('playlist:generate', () => { .map((file: string) => file.replace('tests/__data__/expected/playlist_generate/', '')) playlists.forEach((filepath: string) => { - expect(content(`output/${filepath}`), filepath).toBe( - content(`expected/playlist_generate/${filepath}`) + expect(content(`tests/__data__/output/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_generate/${filepath}`) ) }) - expect(content('output/logs/generators.log').split('\n').sort()).toStrictEqual( - content('expected/playlist_generate/logs/generators.log').split('\n').sort() + expect(content('tests/__data__/output/logs/generators.log').split('\n').sort()).toStrictEqual( + content('tests/__data__/expected/playlist_generate/logs/generators.log').split('\n').sort() ) }) }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/playlist/update.test.ts b/tests/commands/playlist/update.test.ts index 16dbefaf8..a9949c499 100644 --- a/tests/commands/playlist/update.test.ts +++ b/tests/commands/playlist/update.test.ts @@ -1,3 +1,4 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import * as fs from 'fs-extra' import { glob } from 'glob' @@ -25,8 +26,8 @@ describe('playlist:update', () => { .map(f => f.replace('tests/__data__/expected/playlist_update/', '')) files.forEach(filepath => { - expect(content(`output/streams/${filepath}`), filepath).toBe( - content(`expected/playlist_update/${filepath}`) + expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( + content(`tests/__data__/expected/playlist_update/${filepath}`) ) }) @@ -37,7 +38,5 @@ describe('playlist:update', () => { }) function content(filepath: string) { - return fs.readFileSync(`tests/__data__/${filepath}`, { - encoding: 'utf8' - }) + return fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' }) } diff --git a/tests/commands/readme/update.test.ts b/tests/commands/readme/update.test.ts index 0ba363409..061179ed4 100644 --- a/tests/commands/readme/update.test.ts +++ b/tests/commands/readme/update.test.ts @@ -1,3 +1,4 @@ +import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' import fs from 'fs-extra' import path from 'path' @@ -36,9 +37,5 @@ describe('readme:update', () => { }) function content(filepath: string) { - const data = fs.readFileSync(path.resolve(filepath), { - encoding: 'utf8' - }) - - return JSON.stringify(data) + return JSON.stringify(fs.readFileSync(pathToFileURL(filepath), { encoding: 'utf8' })) } From c0514887ae53b8b2e6fe5af15cebd7f1d9b4dd13 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 23:24:44 +0300 Subject: [PATCH 27/44] Update .gitignore --- .gitignore | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 3fe46ea01..ad225b41d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ node_modules .secrets .actrc .DS_Store -.gh-pages -.api +/.gh-pages/ +/.api/ .env -/temp \ No newline at end of file +/temp/ \ No newline at end of file From b505949b821ff5ce99a6fb7ed8026aae1eb7b42a Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 23:25:16 +0300 Subject: [PATCH 28/44] Add tests/__data__/expected --- .../expected/api_generate/.api/streams.json | 57 +++++++++++++++++++ .../.gh-pages/categories/general.m3u | 7 +++ .../.gh-pages/categories/legislative.m3u | 1 + .../.gh-pages/categories/news.m3u | 3 + .../.gh-pages/categories/undefined.m3u | 15 +++++ .../.gh-pages/categories/weather.m3u | 3 + .../.gh-pages/categories/xxx.m3u | 3 + .../.gh-pages/countries/ad.m3u | 3 + .../.gh-pages/countries/ca.m3u | 3 + .../.gh-pages/countries/ru.m3u | 3 + .../.gh-pages/countries/undefined.m3u | 11 ++++ .../.gh-pages/index.category.m3u | 25 ++++++++ .../.gh-pages/index.country.m3u | 31 ++++++++++ .../.gh-pages/index.language.m3u | 23 ++++++++ .../playlist_generate/.gh-pages/index.m3u | 23 ++++++++ .../.gh-pages/index.region.m3u | 43 ++++++++++++++ .../.gh-pages/languages/eng.m3u | 3 + .../.gh-pages/languages/rus.m3u | 3 + .../.gh-pages/languages/undefined.m3u | 17 ++++++ .../.gh-pages/regions/afr.m3u | 1 + .../.gh-pages/regions/amer.m3u | 3 + .../.gh-pages/regions/apac.m3u | 1 + .../.gh-pages/regions/arab.m3u | 1 + .../.gh-pages/regions/asia.m3u | 5 ++ .../.gh-pages/regions/carib.m3u | 1 + .../.gh-pages/regions/cas.m3u | 3 + .../.gh-pages/regions/cis.m3u | 5 ++ .../.gh-pages/regions/emea.m3u | 7 +++ .../.gh-pages/regions/eur.m3u | 7 +++ .../.gh-pages/regions/hispam.m3u | 1 + .../.gh-pages/regions/int.m3u | 5 ++ .../.gh-pages/regions/lac.m3u | 1 + .../.gh-pages/regions/latam.m3u | 1 + .../.gh-pages/regions/maghreb.m3u | 1 + .../.gh-pages/regions/mena.m3u | 1 + .../.gh-pages/regions/mideast.m3u | 1 + .../.gh-pages/regions/nam.m3u | 3 + .../.gh-pages/regions/noram.m3u | 3 + .../.gh-pages/regions/nord.m3u | 1 + .../.gh-pages/regions/oce.m3u | 1 + .../.gh-pages/regions/sas.m3u | 1 + .../.gh-pages/regions/ssa.m3u | 1 + .../.gh-pages/regions/undefined.m3u | 11 ++++ .../.gh-pages/regions/wafr.m3u | 1 + .../.gh-pages/subdivisions/ca-on.m3u | 3 + 45 files changed, 347 insertions(+) create mode 100644 tests/__data__/expected/api_generate/.api/streams.json create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/index.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u create mode 100644 tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u diff --git a/tests/__data__/expected/api_generate/.api/streams.json b/tests/__data__/expected/api_generate/.api/streams.json new file mode 100644 index 000000000..b85871048 --- /dev/null +++ b/tests/__data__/expected/api_generate/.api/streams.json @@ -0,0 +1,57 @@ +[ + { + "channel": null, + "feed": null, + "url": "http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": null, + "feed": null, + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8", + "referrer": "http://imn.iq", + "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" + }, + { + "channel": "AndorraTV.ad", + "feed": "SD", + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/atv", + "referrer": null, + "user_agent": null + }, + { + "channel": "BBCNews.uk", + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "LDPRTV.ru", + "feed": null, + "url": "http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "MeteoMedia.ca", + "feed": null, + "url": "http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "VisitXTV.nl", + "feed": null, + "url": "https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "Zoo.ad", + "feed": null, + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/zoo", + "referrer": null, + "user_agent": null + } +] \ No newline at end of file diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u new file mode 100644 index 000000000..e9587edc7 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u new file mode 100644 index 000000000..cf4e62a9a --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u new file mode 100644 index 000000000..4182fcb1d --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u @@ -0,0 +1,15 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u new file mode 100644 index 000000000..d1e3a69bc --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="VisitXTV.nl" tvg-logo="https://i.imgur.com/RJ9wbNF.jpg" group-title="XXX",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u new file mode 100644 index 000000000..de466399a --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u new file mode 100644 index 000000000..cbfde9249 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u new file mode 100644 index 000000000..da6b5f4bb --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u @@ -0,0 +1,11 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u new file mode 100644 index 000000000..2ce7c040e --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u @@ -0,0 +1,25 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u new file mode 100644 index 000000000..f5eba15e4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u @@ -0,0 +1,31 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Andorra",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Canada",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kazakhstan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kyrgyzstan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Tajikistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Turkmenistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Uzbekistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u new file mode 100644 index 000000000..ed5f24014 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u @@ -0,0 +1,23 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Catalan",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="English",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russian",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Undefined",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Undefined",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u new file mode 100644 index 000000000..1d27713b1 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u @@ -0,0 +1,23 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u new file mode 100644 index 000000000..90c7438ce --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u @@ -0,0 +1,43 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Americas",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Asia",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Asia",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Central Asia",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Commonwealth of Independent States",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe, the Middle East and Africa",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe, the Middle East and Africa",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="North America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Northern America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u new file mode 100644 index 000000000..cf4e62a9a --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u new file mode 100644 index 000000000..cbfde9249 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u new file mode 100644 index 000000000..5d59e689d --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u @@ -0,0 +1,17 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u new file mode 100644 index 000000000..6f6d448e8 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u new file mode 100644 index 000000000..a9387b8b4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u new file mode 100644 index 000000000..6f6d448e8 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u new file mode 100644 index 000000000..16dd0c395 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u new file mode 100644 index 000000000..16dd0c395 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u @@ -0,0 +1,7 @@ +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u new file mode 100644 index 000000000..c549c09ce --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u @@ -0,0 +1,5 @@ +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u new file mode 100644 index 000000000..da6b5f4bb --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u @@ -0,0 +1,11 @@ +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u new file mode 100644 index 000000000..fcd718794 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u @@ -0,0 +1 @@ +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u new file mode 100644 index 000000000..4686c68f4 --- /dev/null +++ b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u @@ -0,0 +1,3 @@ +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 From e05896a567e2feaab103d25e2c9d31b7b62facf1 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 23:30:31 +0300 Subject: [PATCH 29/44] Update tests/__data__ --- .../expected/readme_update/_readme.md | 514 +++++++++--------- .../input/readme_update/.readme/template.md | 316 +++++------ 2 files changed, 415 insertions(+), 415 deletions(-) diff --git a/tests/__data__/expected/readme_update/_readme.md b/tests/__data__/expected/readme_update/_readme.md index 9fc78acc2..67b094c3d 100644 --- a/tests/__data__/expected/readme_update/_readme.md +++ b/tests/__data__/expected/readme_update/_readme.md @@ -1,257 +1,257 @@ -# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) - -Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. - -## Table of contents - -- 🚀 [How to use?](#how-to-use) -- 📺 [Playlists](#playlists) -- 🗄 [Database](#database) -- 👨‍💻 [API](#api) -- 📚 [Resources](#resources) -- 💬 [Discussions](#discussions) -- ❓ [FAQ](#faq) -- 🛠 [Contribution](#contribution) -- ⚖ [Legal](#legal) -- © [License](#license) - -## How to use? - -Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. - -![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) - -## Playlists - -There are several versions of playlists that differ in the way they are grouped. - -### Main playlist - -Playlist includes all known channels except adult channels. - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -And here is the full version: - -``` -https://iptv-org.github.io/iptv/index.nsfw.m3u -``` - -### Grouped by category - -
-Expand -
- -Playlist in which each channel has its _category_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CategoryChannelsPlaylist
Animation0https://iptv-org.github.io/iptv/categories/animation.m3u
Auto0https://iptv-org.github.io/iptv/categories/auto.m3u
Business0https://iptv-org.github.io/iptv/categories/business.m3u
Classic0https://iptv-org.github.io/iptv/categories/classic.m3u
Comedy0https://iptv-org.github.io/iptv/categories/comedy.m3u
Cooking0https://iptv-org.github.io/iptv/categories/cooking.m3u
Culture0https://iptv-org.github.io/iptv/categories/culture.m3u
Documentary0https://iptv-org.github.io/iptv/categories/documentary.m3u
Education0https://iptv-org.github.io/iptv/categories/education.m3u
Entertainment0https://iptv-org.github.io/iptv/categories/entertainment.m3u
Family0https://iptv-org.github.io/iptv/categories/family.m3u
General2https://iptv-org.github.io/iptv/categories/general.m3u
Kids0https://iptv-org.github.io/iptv/categories/kids.m3u
Legislative0https://iptv-org.github.io/iptv/categories/legislative.m3u
Lifestyle0https://iptv-org.github.io/iptv/categories/lifestyle.m3u
Movies0https://iptv-org.github.io/iptv/categories/movies.m3u
Music0https://iptv-org.github.io/iptv/categories/music.m3u
News1https://iptv-org.github.io/iptv/categories/news.m3u
Outdoor0https://iptv-org.github.io/iptv/categories/outdoor.m3u
Relax0https://iptv-org.github.io/iptv/categories/relax.m3u
Religious0https://iptv-org.github.io/iptv/categories/religious.m3u
Science0https://iptv-org.github.io/iptv/categories/science.m3u
Series0https://iptv-org.github.io/iptv/categories/series.m3u
Shop0https://iptv-org.github.io/iptv/categories/shop.m3u
Sports0https://iptv-org.github.io/iptv/categories/sports.m3u
Travel0https://iptv-org.github.io/iptv/categories/travel.m3u
Weather1https://iptv-org.github.io/iptv/categories/weather.m3u
XXX1https://iptv-org.github.io/iptv/categories/xxx.m3u
Undefined3https://iptv-org.github.io/iptv/categories/undefined.m3u
- -
- -### Grouped by language - -
-Expand -
- -Playlist in which each channel has its _language_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - -
LanguageChannelsPlaylist
Catalan1https://iptv-org.github.io/iptv/languages/cat.m3u
English1https://iptv-org.github.io/iptv/languages/eng.m3u
French1https://iptv-org.github.io/iptv/languages/fra.m3u
Russian1https://iptv-org.github.io/iptv/languages/rus.m3u
Undefined2https://iptv-org.github.io/iptv/languages/undefined.m3u
- -
- -### Grouped by country - -
-Expand -
- -Playlist in which each channel has its _country_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - -
CountryChannelsPlaylist
🇨🇲 Cameroon1https://iptv-org.github.io/iptv/countries/cm.m3u
🇨🇦 Canada2https://iptv-org.github.io/iptv/countries/ca.m3u
      Ontario1https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u
🇨🇻 Cape Verde1https://iptv-org.github.io/iptv/countries/cv.m3u
🇨🇬 Republic of the Congo1https://iptv-org.github.io/iptv/countries/cg.m3u
🇷🇪 Réunion1https://iptv-org.github.io/iptv/countries/re.m3u
🇷🇴 Romania1https://iptv-org.github.io/iptv/countries/ro.m3u
🇷🇺 Russia2https://iptv-org.github.io/iptv/countries/ru.m3u
🇷🇼 Rwanda1https://iptv-org.github.io/iptv/countries/rw.m3u
🇧🇱 Saint Barthélemy1https://iptv-org.github.io/iptv/countries/bl.m3u
🇸🇭 Saint Helena1https://iptv-org.github.io/iptv/countries/sh.m3u
🇰🇳 Saint Kitts and Nevis1https://iptv-org.github.io/iptv/countries/kn.m3u
Undefined2https://iptv-org.github.io/iptv/countries/undefined.m3u
- -
- -### Grouped by region - -
-Expand -
- -Playlist in which each channel has its _region_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.region.m3u -``` - -Same thing, but split up into separate files: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RegionChannelsPlaylist
Africa0https://iptv-org.github.io/iptv/regions/afr.m3u
Americas1https://iptv-org.github.io/iptv/regions/amer.m3u
Arab world0https://iptv-org.github.io/iptv/regions/arab.m3u
Asia2https://iptv-org.github.io/iptv/regions/asia.m3u
Asia-Pacific1https://iptv-org.github.io/iptv/regions/apac.m3u
Association of Southeast Asian Nations0https://iptv-org.github.io/iptv/regions/asean.m3u
Caribbean0https://iptv-org.github.io/iptv/regions/carib.m3u
Central America0https://iptv-org.github.io/iptv/regions/cenamer.m3u
Central Asia0https://iptv-org.github.io/iptv/regions/cas.m3u
Commonwealth of Independent States1https://iptv-org.github.io/iptv/regions/cis.m3u
Europe3https://iptv-org.github.io/iptv/regions/eur.m3u
Europe, the Middle East and Africa3https://iptv-org.github.io/iptv/regions/emea.m3u
Hispanic America0https://iptv-org.github.io/iptv/regions/hispam.m3u
Latin America0https://iptv-org.github.io/iptv/regions/latam.m3u
Latin America and the Caribbean0https://iptv-org.github.io/iptv/regions/lac.m3u
Maghreb0https://iptv-org.github.io/iptv/regions/maghreb.m3u
Middle East0https://iptv-org.github.io/iptv/regions/mideast.m3u
Middle East and North Africa0https://iptv-org.github.io/iptv/regions/mena.m3u
Nordics0https://iptv-org.github.io/iptv/regions/nord.m3u
North America1https://iptv-org.github.io/iptv/regions/noram.m3u
Northern America1https://iptv-org.github.io/iptv/regions/nam.m3u
Oceania0https://iptv-org.github.io/iptv/regions/oce.m3u
South America0https://iptv-org.github.io/iptv/regions/southam.m3u
South Asia1https://iptv-org.github.io/iptv/regions/sas.m3u
Sub-Saharan Africa0https://iptv-org.github.io/iptv/regions/ssa.m3u
West Africa0https://iptv-org.github.io/iptv/regions/wafr.m3u
Worldwide1https://iptv-org.github.io/iptv/regions/int.m3u
Undefined2https://iptv-org.github.io/iptv/regions/undefined.m3u
- -
- -## Database - -All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. - -## API - -The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. - -## Resources - -Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. - -## Discussions - -If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). - -## FAQ - -The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. - -## Contribution - -Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. - -And thank you to everyone who has already contributed! - -### Backers - - - -### Contributors - - - -## Legal - -No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) +# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) + +Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. + +## Table of contents + +- 🚀 [How to use?](#how-to-use) +- 📺 [Playlists](#playlists) +- 🗄 [Database](#database) +- 👨‍💻 [API](#api) +- 📚 [Resources](#resources) +- 💬 [Discussions](#discussions) +- ❓ [FAQ](#faq) +- 🛠 [Contribution](#contribution) +- ⚖ [Legal](#legal) +- © [License](#license) + +## How to use? + +Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. + +![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) + +## Playlists + +There are several versions of playlists that differ in the way they are grouped. + +### Main playlist + +Playlist includes all known channels except adult channels. + +``` +https://iptv-org.github.io/iptv/index.m3u +``` + +And here is the full version: + +``` +https://iptv-org.github.io/iptv/index.nsfw.m3u +``` + +### Grouped by category + +
+Expand +
+ +Playlist in which each channel has its _category_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CategoryChannelsPlaylist
Animation0https://iptv-org.github.io/iptv/categories/animation.m3u
Auto0https://iptv-org.github.io/iptv/categories/auto.m3u
Business0https://iptv-org.github.io/iptv/categories/business.m3u
Classic0https://iptv-org.github.io/iptv/categories/classic.m3u
Comedy0https://iptv-org.github.io/iptv/categories/comedy.m3u
Cooking0https://iptv-org.github.io/iptv/categories/cooking.m3u
Culture0https://iptv-org.github.io/iptv/categories/culture.m3u
Documentary0https://iptv-org.github.io/iptv/categories/documentary.m3u
Education0https://iptv-org.github.io/iptv/categories/education.m3u
Entertainment0https://iptv-org.github.io/iptv/categories/entertainment.m3u
Family0https://iptv-org.github.io/iptv/categories/family.m3u
General2https://iptv-org.github.io/iptv/categories/general.m3u
Kids0https://iptv-org.github.io/iptv/categories/kids.m3u
Legislative0https://iptv-org.github.io/iptv/categories/legislative.m3u
Lifestyle0https://iptv-org.github.io/iptv/categories/lifestyle.m3u
Movies0https://iptv-org.github.io/iptv/categories/movies.m3u
Music0https://iptv-org.github.io/iptv/categories/music.m3u
News1https://iptv-org.github.io/iptv/categories/news.m3u
Outdoor0https://iptv-org.github.io/iptv/categories/outdoor.m3u
Relax0https://iptv-org.github.io/iptv/categories/relax.m3u
Religious0https://iptv-org.github.io/iptv/categories/religious.m3u
Science0https://iptv-org.github.io/iptv/categories/science.m3u
Series0https://iptv-org.github.io/iptv/categories/series.m3u
Shop0https://iptv-org.github.io/iptv/categories/shop.m3u
Sports0https://iptv-org.github.io/iptv/categories/sports.m3u
Travel0https://iptv-org.github.io/iptv/categories/travel.m3u
Weather1https://iptv-org.github.io/iptv/categories/weather.m3u
XXX1https://iptv-org.github.io/iptv/categories/xxx.m3u
Undefined3https://iptv-org.github.io/iptv/categories/undefined.m3u
+ +
+ +### Grouped by language + +
+Expand +
+ +Playlist in which each channel has its _language_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + +
LanguageChannelsPlaylist
Catalan1https://iptv-org.github.io/iptv/languages/cat.m3u
English1https://iptv-org.github.io/iptv/languages/eng.m3u
French1https://iptv-org.github.io/iptv/languages/fra.m3u
Russian1https://iptv-org.github.io/iptv/languages/rus.m3u
Undefined2https://iptv-org.github.io/iptv/languages/undefined.m3u
+ +
+ +### Grouped by country + +
+Expand +
+ +Playlist in which each channel has its _country_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + +
CountryChannelsPlaylist
🇨🇲 Cameroon1https://iptv-org.github.io/iptv/countries/cm.m3u
🇨🇦 Canada2https://iptv-org.github.io/iptv/countries/ca.m3u
      Ontario1https://iptv-org.github.io/iptv/subdivisions/ca-on.m3u
🇨🇻 Cape Verde1https://iptv-org.github.io/iptv/countries/cv.m3u
🇨🇬 Republic of the Congo1https://iptv-org.github.io/iptv/countries/cg.m3u
🇷🇪 Réunion1https://iptv-org.github.io/iptv/countries/re.m3u
🇷🇴 Romania1https://iptv-org.github.io/iptv/countries/ro.m3u
🇷🇺 Russia2https://iptv-org.github.io/iptv/countries/ru.m3u
🇷🇼 Rwanda1https://iptv-org.github.io/iptv/countries/rw.m3u
🇧🇱 Saint Barthélemy1https://iptv-org.github.io/iptv/countries/bl.m3u
🇸🇭 Saint Helena1https://iptv-org.github.io/iptv/countries/sh.m3u
🇰🇳 Saint Kitts and Nevis1https://iptv-org.github.io/iptv/countries/kn.m3u
Undefined2https://iptv-org.github.io/iptv/countries/undefined.m3u
+ +
+ +### Grouped by region + +
+Expand +
+ +Playlist in which each channel has its _region_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.region.m3u +``` + +Same thing, but split up into separate files: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RegionChannelsPlaylist
Africa0https://iptv-org.github.io/iptv/regions/afr.m3u
Americas1https://iptv-org.github.io/iptv/regions/amer.m3u
Arab world0https://iptv-org.github.io/iptv/regions/arab.m3u
Asia2https://iptv-org.github.io/iptv/regions/asia.m3u
Asia-Pacific1https://iptv-org.github.io/iptv/regions/apac.m3u
Association of Southeast Asian Nations0https://iptv-org.github.io/iptv/regions/asean.m3u
Caribbean0https://iptv-org.github.io/iptv/regions/carib.m3u
Central America0https://iptv-org.github.io/iptv/regions/cenamer.m3u
Central Asia0https://iptv-org.github.io/iptv/regions/cas.m3u
Commonwealth of Independent States1https://iptv-org.github.io/iptv/regions/cis.m3u
Europe3https://iptv-org.github.io/iptv/regions/eur.m3u
Europe, the Middle East and Africa3https://iptv-org.github.io/iptv/regions/emea.m3u
Hispanic America0https://iptv-org.github.io/iptv/regions/hispam.m3u
Latin America0https://iptv-org.github.io/iptv/regions/latam.m3u
Latin America and the Caribbean0https://iptv-org.github.io/iptv/regions/lac.m3u
Maghreb0https://iptv-org.github.io/iptv/regions/maghreb.m3u
Middle East0https://iptv-org.github.io/iptv/regions/mideast.m3u
Middle East and North Africa0https://iptv-org.github.io/iptv/regions/mena.m3u
Nordics0https://iptv-org.github.io/iptv/regions/nord.m3u
North America1https://iptv-org.github.io/iptv/regions/noram.m3u
Northern America1https://iptv-org.github.io/iptv/regions/nam.m3u
Oceania0https://iptv-org.github.io/iptv/regions/oce.m3u
South America0https://iptv-org.github.io/iptv/regions/southam.m3u
South Asia1https://iptv-org.github.io/iptv/regions/sas.m3u
Sub-Saharan Africa0https://iptv-org.github.io/iptv/regions/ssa.m3u
West Africa0https://iptv-org.github.io/iptv/regions/wafr.m3u
Worldwide1https://iptv-org.github.io/iptv/regions/int.m3u
Undefined2https://iptv-org.github.io/iptv/regions/undefined.m3u
+ +
+ +## Database + +All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. + +## API + +The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. + +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + +## Discussions + +If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). + +## FAQ + +The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. + +## Contribution + +Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. + +And thank you to everyone who has already contributed! + +### Backers + + + +### Contributors + + + +## Legal + +No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). + +## License + +[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) diff --git a/tests/__data__/input/readme_update/.readme/template.md b/tests/__data__/input/readme_update/.readme/template.md index 04cab4cd5..4883a98e4 100644 --- a/tests/__data__/input/readme_update/.readme/template.md +++ b/tests/__data__/input/readme_update/.readme/template.md @@ -1,158 +1,158 @@ -# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) - -Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. - -## Table of contents - -- 🚀 [How to use?](#how-to-use) -- 📺 [Playlists](#playlists) -- 🗄 [Database](#database) -- 👨‍💻 [API](#api) -- 📚 [Resources](#resources) -- 💬 [Discussions](#discussions) -- ❓ [FAQ](#faq) -- 🛠 [Contribution](#contribution) -- ⚖ [Legal](#legal) -- © [License](#license) - -## How to use? - -Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. - -![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) - -## Playlists - -There are several versions of playlists that differ in the way they are grouped. - -### Main playlist - -Playlist includes all known channels except adult channels. - -``` -https://iptv-org.github.io/iptv/index.m3u -``` - -And here is the full version: - -``` -https://iptv-org.github.io/iptv/index.nsfw.m3u -``` - -### Grouped by category - -
-Expand -
- -Playlist in which each channel has its _category_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.category.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_categories.md" - -
- -### Grouped by language - -
-Expand -
- -Playlist in which each channel has its _language_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.language.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_languages.md" - -
- -### Grouped by country - -
-Expand -
- -Playlist in which each channel has its _country_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.country.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_countries.md" - -
- -### Grouped by region - -
-Expand -
- -Playlist in which each channel has its _region_ as a group title: - -``` -https://iptv-org.github.io/iptv/index.region.m3u -``` - -Same thing, but split up into separate files: - - -#include "tests/__data__/output/.readme/_regions.md" - -
- -## Database - -All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. - -## API - -The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. - -## Resources - -Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. - -## Discussions - -If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). - -## FAQ - -The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. - -## Contribution - -Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. - -And thank you to everyone who has already contributed! - -### Backers - - - -### Contributors - - - -## Legal - -No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) +# IPTV [![update](https://github.com/iptv-org/iptv/actions/workflows/update.yml/badge.svg)](https://github.com/iptv-org/iptv/actions/workflows/update.yml) + +Collection of publicly available IPTV (Internet Protocol television) channels from all over the world. + +## Table of contents + +- 🚀 [How to use?](#how-to-use) +- 📺 [Playlists](#playlists) +- 🗄 [Database](#database) +- 👨‍💻 [API](#api) +- 📚 [Resources](#resources) +- 💬 [Discussions](#discussions) +- ❓ [FAQ](#faq) +- 🛠 [Contribution](#contribution) +- ⚖ [Legal](#legal) +- © [License](#license) + +## How to use? + +Simply insert one of the links below into [any video player](https://github.com/iptv-org/awesome-iptv#apps) that supports live streaming and press _Open_. + +![VLC Network Panel](https://github.com/iptv-org/iptv/raw/master/.readme/preview.png) + +## Playlists + +There are several versions of playlists that differ in the way they are grouped. + +### Main playlist + +Playlist includes all known channels except adult channels. + +``` +https://iptv-org.github.io/iptv/index.m3u +``` + +And here is the full version: + +``` +https://iptv-org.github.io/iptv/index.nsfw.m3u +``` + +### Grouped by category + +
+Expand +
+ +Playlist in which each channel has its _category_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.category.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_categories.md" + +
+ +### Grouped by language + +
+Expand +
+ +Playlist in which each channel has its _language_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.language.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_languages.md" + +
+ +### Grouped by country + +
+Expand +
+ +Playlist in which each channel has its _country_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.country.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_countries.md" + +
+ +### Grouped by region + +
+Expand +
+ +Playlist in which each channel has its _region_ as a group title: + +``` +https://iptv-org.github.io/iptv/index.region.m3u +``` + +Same thing, but split up into separate files: + + +#include "tests/__data__/output/.readme/_regions.md" + +
+ +## Database + +All channel data is taken from the [iptv-org/database](https://github.com/iptv-org/database) repository. If you find any errors please open a new [issue](https://github.com/iptv-org/database/issues) there. + +## API + +The API documentation can be found in the [iptv-org/api](https://github.com/iptv-org/api) repository. + +## Resources + +Links to other useful IPTV-related resources can be found in the [iptv-org/awesome-iptv](https://github.com/iptv-org/awesome-iptv) repository. + +## Discussions + +If you need help finding a channel, have a question or idea, welcome to the [Discussions](https://github.com/orgs/iptv-org/discussions). + +## FAQ + +The answers to the most popular questions can be found in the [FAQ.md](FAQ.md) file. + +## Contribution + +Please make sure to read the [Contributing Guide](CONTRIBUTING.md) before sending an issue or making a pull request. + +And thank you to everyone who has already contributed! + +### Backers + + + +### Contributors + + + +## Legal + +No video files are stored in this repository. The repository simply contains user-submitted links to publicly available video stream URLs, which to the best of our knowledge have been intentionally made publicly by the copyright holders. If any links in these playlists infringe on your rights as a copyright holder, they may be removed by sending a [pull request](https://github.com/iptv-org/iptv/pulls) or opening an [issue](https://github.com/iptv-org/iptv/issues/new?assignees=freearhey&labels=removal+request&template=--removal-request.yml&title=Remove%3A+). However, note that we have **no control** over the destination of the link, and just removing the link from the playlist will not remove its contents from the web. Note that linking does not directly infringe copyright because no copy is made on the site providing the link, and thus this is **not** a valid reason to send a DMCA notice to GitHub. To remove this content from the web, you should contact the web host that's actually hosting the content (**not** GitHub, nor the maintainers of this repository). + +## License + +[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](LICENSE) From 66136e051cafbbe14c861232d9ebe8a03ba094df Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Tue, 22 Apr 2025 23:30:34 +0300 Subject: [PATCH 30/44] Update htmlTable.ts --- scripts/core/htmlTable.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/core/htmlTable.ts b/scripts/core/htmlTable.ts index 1caa85fa0..b4f7b42ac 100644 --- a/scripts/core/htmlTable.ts +++ b/scripts/core/htmlTable.ts @@ -16,15 +16,15 @@ export class HTMLTable { } toString() { - let output = '\n' + let output = '
\r\n' - output += ' \n ' + output += ' \r\n ' for (const column of this.columns) { output += `` } - output += '\n \n' + output += '\r\n \r\n' - output += ' \n' + output += ' \r\n' for (const item of this.data) { output += ' ' let i = 0 @@ -35,9 +35,9 @@ export class HTMLTable { output += `${item[prop]}` i++ } - output += '\n' + output += '\r\n' } - output += ' \n' + output += ' \r\n' output += '
${column.name}
' From 0e5a3bdfbccf006adea043854762cf9888e012a6 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 00:11:23 +0000 Subject: [PATCH 31/44] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14607007919) workflow. closes #21276, closes #21267, closes #21319, closes #21317, closes #21315, closes #21313 --- streams/ar.m3u | 2 ++ streams/cl.m3u | 2 ++ streams/co.m3u | 2 ++ streams/hu.m3u | 2 ++ streams/it.m3u | 2 -- streams/us_samsung.m3u | 4 ---- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/streams/ar.m3u b/streams/ar.m3u index b051df2b5..efb570748 100644 --- a/streams/ar.m3u +++ b/streams/ar.m3u @@ -368,3 +368,5 @@ https://stmv1.cnarlatam.com/xtremaseries/xtremaseries/playlist.m3u8 #EXTINF:-1 tvg-id="XtremaTerror.ar" http-referrer="https://xtrematv.com/?p=1456",Xtrema Terror #EXTVLCOPT:http-referrer=https://xtrematv.com/?p=1456 https://stmv6.voxtvhd.com.br/cineterror/cineterror/playlist.m3u8 +#EXTINF:-1 tvg-id="RetroMagico.ar",Retro Magico (720p) +https://stream.gia.tv/giatv/giatv-retromagico/retromagico/playlist.m3u8 diff --git a/streams/cl.m3u b/streams/cl.m3u index 7f2b3b173..0464629b7 100644 --- a/streams/cl.m3u +++ b/streams/cl.m3u @@ -456,3 +456,5 @@ https://xui-backend.energeek.cl/live/deM0kanADeweB/Cerq7EpWHiWDuHTJ8ikz/13.m3u8 #EXTINF:-1 tvg-id="VisionPlusTV.cl" http-referrer="https://visionplustv.cl/",Vision Plus TV (1080i) #EXTVLCOPT:http-referrer=https://visionplustv.cl/ https://5ff3d9babae13.streamlock.net/jwagpqxehu/jwagpqxehu/playlist.m3u8 +#EXTINF:-1 tvg-id="Nublevision.cl",Nublevision (720p) +https://tv.arkeo.cl:1936/nublevision/nublevision/playlist.m3u8 diff --git a/streams/co.m3u b/streams/co.m3u index c3a7706d5..52f9c14f9 100644 --- a/streams/co.m3u +++ b/streams/co.m3u @@ -330,3 +330,5 @@ https://ssh101stream.ssh101.com/akamaissh101/ssh101/multicanal/playlist.m3u8 https://play.cdn.enetres.net/6E5C615AA5FF4123ACAF0DAB57B7B8DC021/022/playlist.m3u8 #EXTINF:-1 tvg-id="NSTV.co",NSTV (720p) https://cp.panelchs.com:1936/8038/8038/playlist.m3u8 +#EXTINF:-1 tvg-id="NSTV.co",NSTV (720p) +http://138.186.23.7:22281/nstv/nstv/playlist.m3u8 diff --git a/streams/hu.m3u b/streams/hu.m3u index 4711e943b..f7582ade5 100644 --- a/streams/hu.m3u +++ b/streams/hu.m3u @@ -261,3 +261,5 @@ https://cloudfront44.lexanetwork.com:1344/relay01/HDE051.sdp/playlist.m3u8 https://cloudfront44.lexanetwork.com:1344/freerelay/zegtv.sdp/playlist.m3u8 #EXTINF:-1 tvg-id="ZugloTV.hu",Zuglo TV (360p) https://cloudfront44.lexanetwork.com:1344/freerelay/zuglotv.sdp/playlist.m3u8 +#EXTINF:-1 tvg-id="AXNSpin.hu@Poland",AXN Spin Poland (1080i) +http://nowatv.stream2.link:8080/live/64%3A1c%3Ab0%3Aa1%3A48%3Ac1/tfAjswfz6H/0577b50c-92ca-49bc-a769-48203eb96bfd.ts diff --git a/streams/it.m3u b/streams/it.m3u index d62df232b..03e6e6ed0 100644 --- a/streams/it.m3u +++ b/streams/it.m3u @@ -461,8 +461,6 @@ https://59d7d6f47d7fc.streamlock.net/supertv/supertv/playlist.m3u8 http://wms.shared.streamshow.it:1935/supertv/supertv/live.m3u8 #EXTINF:-1 tvg-id="SuperTVOristano.it",Super TV Oristano (720p) [Not 24/7] http://193.70.81.40:1935/supertvoristano/supertvoristano/playlist.m3u8 -#EXTINF:-1 tvg-id="Super.it",Super! (480p) -https://vimnitaly.akamaized.net/hls/live/2094034/super/master-2500.m3u8 #EXTINF:-1 tvg-id="SuperSix.it",SuperSix Lombardia (720p) https://5db313b643fd8.streamlock.net/SUPERSIXLombardia/SUPERSIXLombardia/playlist.m3u8 #EXTINF:-1 tvg-id="SuperTennisHD.it",SuperTennis HD diff --git a/streams/us_samsung.m3u b/streams/us_samsung.m3u index d3ee5b96d..f9129d92b 100644 --- a/streams/us_samsung.m3u +++ b/streams/us_samsung.m3u @@ -11,10 +11,6 @@ https://bonappetit-samsung.amagi.tv/playlist.m3u8 https://d37v4ie0vq884e.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-ujoygpbfraxho/bounce_xl.m3u8 #EXTINF:-1 tvg-id="BratTV.us",Brat TV (1080p) https://brat-samsung-us.amagi.tv/playlist.m3u8 -#EXTINF:-1 tvg-id="Buzzr.us",Buzzr (1080p) -https://buzzr-samsungus.amagi.tv/playlist.m3u8 -#EXTINF:-1 tvg-id="Buzzr.us",Buzzr (1080p) -https://cdn-ue1-prod.tsv2.amagi.tv/linear/samsungus-buzzr-samsungtv-us/playlist.m3u8 #EXTINF:-1 tvg-id="Circle.us",Circle (1080p) https://circle-samsung.amagi.tv/playlist.m3u8 #EXTINF:-1 tvg-id="Crime360.us",Crime 360 (720p) From 6498c221585b88cc3edc4a2ab0c2d9465a97adb8 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 23 Apr 2025 00:11:23 +0000 Subject: [PATCH 32/44] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/14607007919) workflow. --- README.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 62760f012..547810ecf 100644 --- a/README.md +++ b/README.md @@ -63,9 +63,9 @@ Same thing, but split up into separate files: Culture167https://iptv-org.github.io/iptv/categories/culture.m3u Documentary78https://iptv-org.github.io/iptv/categories/documentary.m3u Education150https://iptv-org.github.io/iptv/categories/education.m3u - Entertainment542https://iptv-org.github.io/iptv/categories/entertainment.m3u + Entertainment543https://iptv-org.github.io/iptv/categories/entertainment.m3u Family35https://iptv-org.github.io/iptv/categories/family.m3u - General2343https://iptv-org.github.io/iptv/categories/general.m3u + General2344https://iptv-org.github.io/iptv/categories/general.m3u Kids174https://iptv-org.github.io/iptv/categories/kids.m3u Legislative192https://iptv-org.github.io/iptv/categories/legislative.m3u Lifestyle77https://iptv-org.github.io/iptv/categories/lifestyle.m3u @@ -115,7 +115,7 @@ Same thing, but split up into separate files: Albanian46https://iptv-org.github.io/iptv/languages/sqi.m3u Alur1https://iptv-org.github.io/iptv/languages/alz.m3u Amharic7https://iptv-org.github.io/iptv/languages/amh.m3u - Arabic393https://iptv-org.github.io/iptv/languages/ara.m3u + Arabic392https://iptv-org.github.io/iptv/languages/ara.m3u Armenian25https://iptv-org.github.io/iptv/languages/hye.m3u Assamese7https://iptv-org.github.io/iptv/languages/asm.m3u Assyrian Neo-Aramaic1https://iptv-org.github.io/iptv/languages/aii.m3u @@ -235,7 +235,7 @@ Same thing, but split up into separate files: Parsi-Dari3https://iptv-org.github.io/iptv/languages/prd.m3u Pashto16https://iptv-org.github.io/iptv/languages/pus.m3u Persian139https://iptv-org.github.io/iptv/languages/fas.m3u - Polish140https://iptv-org.github.io/iptv/languages/pol.m3u + Polish141https://iptv-org.github.io/iptv/languages/pol.m3u Portuguese337https://iptv-org.github.io/iptv/languages/por.m3u Pulaar1https://iptv-org.github.io/iptv/languages/fuc.m3u Quechua1https://iptv-org.github.io/iptv/languages/que.m3u @@ -286,7 +286,7 @@ Same thing, but split up into separate files: Yucatec Maya1https://iptv-org.github.io/iptv/languages/yua.m3u Yue Chinese5https://iptv-org.github.io/iptv/languages/yue.m3u Zarma1https://iptv-org.github.io/iptv/languages/dje.m3u - Undefined2878https://iptv-org.github.io/iptv/languages/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/languages/undefined.m3u @@ -320,7 +320,7 @@ Same thing, but split up into separate files: 🇦🇴 Angola27https://iptv-org.github.io/iptv/countries/ao.m3u 🇦🇮 Anguilla12https://iptv-org.github.io/iptv/countries/ai.m3u 🇦🇬 Antigua and Barbuda13https://iptv-org.github.io/iptv/countries/ag.m3u - 🇦🇷 Argentina223https://iptv-org.github.io/iptv/countries/ar.m3u + 🇦🇷 Argentina224https://iptv-org.github.io/iptv/countries/ar.m3u       Buenos Aires18https://iptv-org.github.io/iptv/subdivisions/ar-b.m3u       Catamarca1https://iptv-org.github.io/iptv/subdivisions/ar-k.m3u       Chaco3https://iptv-org.github.io/iptv/subdivisions/ar-h.m3u @@ -667,9 +667,9 @@ Same thing, but split up into separate files:       Ucayali2https://iptv-org.github.io/iptv/subdivisions/pe-uca.m3u 🇵🇭 Philippines26https://iptv-org.github.io/iptv/countries/ph.m3u 🇵🇳 Pitcairn Islands5https://iptv-org.github.io/iptv/countries/pn.m3u - 🇵🇱 Poland180https://iptv-org.github.io/iptv/countries/pl.m3u + 🇵🇱 Poland181https://iptv-org.github.io/iptv/countries/pl.m3u 🇵🇹 Portugal83https://iptv-org.github.io/iptv/countries/pt.m3u - 🇵🇷 Puerto Rico100https://iptv-org.github.io/iptv/countries/pr.m3u + 🇵🇷 Puerto Rico99https://iptv-org.github.io/iptv/countries/pr.m3u 🇶🇦 Qatar54https://iptv-org.github.io/iptv/countries/qa.m3u 🇨🇬 Republic of the Congo33https://iptv-org.github.io/iptv/countries/cg.m3u       Brazzaville1https://iptv-org.github.io/iptv/subdivisions/cg-bzv.m3u @@ -750,7 +750,7 @@ Same thing, but split up into separate files: 🇹🇴 Tonga5https://iptv-org.github.io/iptv/countries/to.m3u 🇹🇹 Trinidad and Tobago18https://iptv-org.github.io/iptv/countries/tt.m3u 🇹🇳 Tunisia66https://iptv-org.github.io/iptv/countries/tn.m3u - 🇹🇷 Turkey281https://iptv-org.github.io/iptv/countries/tr.m3u + 🇹🇷 Turkey280https://iptv-org.github.io/iptv/countries/tr.m3u 🇹🇲 Turkmenistan16https://iptv-org.github.io/iptv/countries/tm.m3u 🇹🇨 Turks and Caicos Islands12https://iptv-org.github.io/iptv/countries/tc.m3u 🇹🇻 Tuvalu5https://iptv-org.github.io/iptv/countries/tv.m3u @@ -820,7 +820,7 @@ Same thing, but split up into separate files: 🇾🇪 Yemen46https://iptv-org.github.io/iptv/countries/ye.m3u 🇿🇲 Zambia24https://iptv-org.github.io/iptv/countries/zm.m3u 🇿🇼 Zimbabwe24https://iptv-org.github.io/iptv/countries/zw.m3u - Undefined2878https://iptv-org.github.io/iptv/countries/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/countries/undefined.m3u @@ -849,39 +849,39 @@ Same thing, but split up into separate files: Africa542https://iptv-org.github.io/iptv/regions/afr.m3u Americas3603https://iptv-org.github.io/iptv/regions/amer.m3u Arab world403https://iptv-org.github.io/iptv/regions/arab.m3u - Asia2143https://iptv-org.github.io/iptv/regions/asia.m3u + Asia2142https://iptv-org.github.io/iptv/regions/asia.m3u Asia-Pacific1134https://iptv-org.github.io/iptv/regions/apac.m3u Association of Southeast Asian Nations347https://iptv-org.github.io/iptv/regions/asean.m3u - Balkan690https://iptv-org.github.io/iptv/regions/balkan.m3u + Balkan689https://iptv-org.github.io/iptv/regions/balkan.m3u Benelux240https://iptv-org.github.io/iptv/regions/benelux.m3u - Caribbean367https://iptv-org.github.io/iptv/regions/carib.m3u + Caribbean366https://iptv-org.github.io/iptv/regions/carib.m3u Central America373https://iptv-org.github.io/iptv/regions/cenamer.m3u - Central and Eastern Europe975https://iptv-org.github.io/iptv/regions/cee.m3u + Central and Eastern Europe976https://iptv-org.github.io/iptv/regions/cee.m3u Central Asia109https://iptv-org.github.io/iptv/regions/cas.m3u Commonwealth of Independent States354https://iptv-org.github.io/iptv/regions/cis.m3u Europe2841https://iptv-org.github.io/iptv/regions/eur.m3u Europe, the Middle East and Africa3750https://iptv-org.github.io/iptv/regions/emea.m3u - European Union1938https://iptv-org.github.io/iptv/regions/eu.m3u + European Union1939https://iptv-org.github.io/iptv/regions/eu.m3u Hispanic America1682https://iptv-org.github.io/iptv/regions/hispam.m3u Latin America1999https://iptv-org.github.io/iptv/regions/latam.m3u Latin America and the Caribbean2043https://iptv-org.github.io/iptv/regions/lac.m3u Maghreb90https://iptv-org.github.io/iptv/regions/maghreb.m3u - Middle East809https://iptv-org.github.io/iptv/regions/mideast.m3u - Middle East and North Africa838https://iptv-org.github.io/iptv/regions/mena.m3u + Middle East808https://iptv-org.github.io/iptv/regions/mideast.m3u + Middle East and North Africa837https://iptv-org.github.io/iptv/regions/mena.m3u Nordics111https://iptv-org.github.io/iptv/regions/nord.m3u - North America2422https://iptv-org.github.io/iptv/regions/noram.m3u + North America2421https://iptv-org.github.io/iptv/regions/noram.m3u Northern America1582https://iptv-org.github.io/iptv/regions/nam.m3u Northern Europe147https://iptv-org.github.io/iptv/regions/neur.m3u Oceania56https://iptv-org.github.io/iptv/regions/oce.m3u - South America1261https://iptv-org.github.io/iptv/regions/southam.m3u + South America1262https://iptv-org.github.io/iptv/regions/southam.m3u South Asia408https://iptv-org.github.io/iptv/regions/sas.m3u Southeast Asia347https://iptv-org.github.io/iptv/regions/sea.m3u - Southern Europe1059https://iptv-org.github.io/iptv/regions/ser.m3u + Southern Europe1058https://iptv-org.github.io/iptv/regions/ser.m3u Sub-Saharan Africa487https://iptv-org.github.io/iptv/regions/ssa.m3u West Africa249https://iptv-org.github.io/iptv/regions/wafr.m3u Western Europe783https://iptv-org.github.io/iptv/regions/wer.m3u Worldwide57https://iptv-org.github.io/iptv/regions/int.m3u - Undefined2878https://iptv-org.github.io/iptv/regions/undefined.m3u + Undefined2880https://iptv-org.github.io/iptv/regions/undefined.m3u From a5ebe89004f4e96ef8bee97d1983701cc68b6279 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 05:19:55 +0300 Subject: [PATCH 33/44] Update tests/__data__ --- .../expected/api_generate/.api/streams.json | 112 +++++++++--------- .../__data__/expected/playlist_format/in.m3u | 6 +- .../__data__/expected/playlist_format/nl.m3u | 22 ++-- .../.gh-pages/categories/general.m3u | 14 +-- .../.gh-pages/categories/legislative.m3u | 2 +- .../.gh-pages/categories/news.m3u | 6 +- .../.gh-pages/categories/undefined.m3u | 30 ++--- .../.gh-pages/categories/weather.m3u | 6 +- .../.gh-pages/categories/xxx.m3u | 6 +- .../.gh-pages/countries/ad.m3u | 6 +- .../.gh-pages/countries/ca.m3u | 6 +- .../.gh-pages/countries/ru.m3u | 6 +- .../.gh-pages/countries/undefined.m3u | 22 ++-- .../.gh-pages/index.category.m3u | 50 ++++---- .../.gh-pages/index.country.m3u | 62 +++++----- .../.gh-pages/index.language.m3u | 46 +++---- .../playlist_generate/.gh-pages/index.m3u | 46 +++---- .../.gh-pages/index.region.m3u | 86 +++++++------- .../.gh-pages/languages/eng.m3u | 6 +- .../.gh-pages/languages/rus.m3u | 6 +- .../.gh-pages/languages/undefined.m3u | 34 +++--- .../.gh-pages/regions/afr.m3u | 2 +- .../.gh-pages/regions/amer.m3u | 6 +- .../.gh-pages/regions/apac.m3u | 2 +- .../.gh-pages/regions/arab.m3u | 2 +- .../.gh-pages/regions/asia.m3u | 10 +- .../.gh-pages/regions/carib.m3u | 2 +- .../.gh-pages/regions/cas.m3u | 6 +- .../.gh-pages/regions/cis.m3u | 10 +- .../.gh-pages/regions/emea.m3u | 14 +-- .../.gh-pages/regions/eur.m3u | 14 +-- .../.gh-pages/regions/hispam.m3u | 2 +- .../.gh-pages/regions/int.m3u | 10 +- .../.gh-pages/regions/lac.m3u | 2 +- .../.gh-pages/regions/latam.m3u | 2 +- .../.gh-pages/regions/maghreb.m3u | 2 +- .../.gh-pages/regions/mena.m3u | 2 +- .../.gh-pages/regions/mideast.m3u | 2 +- .../.gh-pages/regions/nam.m3u | 6 +- .../.gh-pages/regions/noram.m3u | 6 +- .../.gh-pages/regions/nord.m3u | 2 +- .../.gh-pages/regions/oce.m3u | 2 +- .../.gh-pages/regions/sas.m3u | 2 +- .../.gh-pages/regions/ssa.m3u | 2 +- .../.gh-pages/regions/undefined.m3u | 22 ++-- .../.gh-pages/regions/wafr.m3u | 2 +- .../.gh-pages/subdivisions/ca-on.m3u | 6 +- .../__data__/expected/playlist_update/cy.m3u | 6 +- .../__data__/expected/playlist_update/fr.m3u | 10 +- .../__data__/expected/playlist_update/uk.m3u | 14 +-- .../__data__/expected/playlist_update/us.m3u | 12 +- tests/__data__/input/api_generate/ad.m3u | 10 +- tests/__data__/input/api_generate/ca.m3u | 6 +- tests/__data__/input/api_generate/in.m3u | 6 +- tests/__data__/input/api_generate/uk.m3u | 6 +- .../__data__/input/api_generate/unsorted.m3u | 18 +-- .../__data__/input/playlist_edit/playlist.m3u | 8 +- tests/__data__/input/playlist_format/in.m3u | 6 +- tests/__data__/input/playlist_format/nl.m3u | 26 ++-- tests/__data__/input/playlist_generate/ad.m3u | 18 +-- tests/__data__/input/playlist_generate/ca.m3u | 6 +- tests/__data__/input/playlist_generate/in.m3u | 6 +- tests/__data__/input/playlist_generate/kg.m3u | 6 +- tests/__data__/input/playlist_generate/uk.m3u | 6 +- .../input/playlist_generate/unsorted.m3u | 22 ++-- tests/__data__/input/playlist_test/ag.m3u | 8 +- tests/__data__/input/playlist_update/br.m3u | 12 +- tests/__data__/input/playlist_update/cy.m3u | 14 +-- tests/__data__/input/playlist_update/uk.m3u | 10 +- .../input/playlist_validate/us_blocked.m3u | 14 +-- .../input/playlist_validate/wrong_id.m3u | 6 +- tests/__data__/input/report_create/br.m3u | 12 +- tests/__data__/input/report_create/cy.m3u | 10 +- tests/__data__/input/report_create/uk.m3u | 10 +- tests/__data__/input/report_create/us.m3u | 6 +- 75 files changed, 507 insertions(+), 507 deletions(-) diff --git a/tests/__data__/expected/api_generate/.api/streams.json b/tests/__data__/expected/api_generate/.api/streams.json index b85871048..55128bca3 100644 --- a/tests/__data__/expected/api_generate/.api/streams.json +++ b/tests/__data__/expected/api_generate/.api/streams.json @@ -1,57 +1,57 @@ -[ - { - "channel": null, - "feed": null, - "url": "http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8", - "referrer": null, - "user_agent": null - }, - { - "channel": null, - "feed": null, - "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8", - "referrer": "http://imn.iq", - "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" - }, - { - "channel": "AndorraTV.ad", - "feed": "SD", - "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/atv", - "referrer": null, - "user_agent": null - }, - { - "channel": "BBCNews.uk", - "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", - "referrer": null, - "user_agent": null - }, - { - "channel": "LDPRTV.ru", - "feed": null, - "url": "http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8", - "referrer": null, - "user_agent": null - }, - { - "channel": "MeteoMedia.ca", - "feed": null, - "url": "http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8", - "referrer": null, - "user_agent": null - }, - { - "channel": "VisitXTV.nl", - "feed": null, - "url": "https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8", - "referrer": null, - "user_agent": null - }, - { - "channel": "Zoo.ad", - "feed": null, - "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/zoo", - "referrer": null, - "user_agent": null - } +[ + { + "channel": null, + "feed": null, + "url": "http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": null, + "feed": null, + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8", + "referrer": "http://imn.iq", + "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" + }, + { + "channel": "AndorraTV.ad", + "feed": "SD", + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/atv", + "referrer": null, + "user_agent": null + }, + { + "channel": "BBCNews.uk", + "url": "http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "LDPRTV.ru", + "feed": null, + "url": "http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "MeteoMedia.ca", + "feed": null, + "url": "http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "VisitXTV.nl", + "feed": null, + "url": "https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8", + "referrer": null, + "user_agent": null + }, + { + "channel": "Zoo.ad", + "feed": null, + "url": "https://iptv-all.lanesh4d0w.repl.co/andorra/zoo", + "referrer": null, + "user_agent": null + } ] \ No newline at end of file diff --git a/tests/__data__/expected/playlist_format/in.m3u b/tests/__data__/expected/playlist_format/in.m3u index 44a00ace1..2615da4e4 100644 --- a/tests/__data__/expected/playlist_format/in.m3u +++ b/tests/__data__/expected/playlist_format/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] -https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/expected/playlist_format/nl.m3u b/tests/__data__/expected/playlist_format/nl.m3u index 8f1e0ba2a..d08a2ac80 100644 --- a/tests/__data__/expected/playlist_format/nl.m3u +++ b/tests/__data__/expected/playlist_format/nl.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",NPO 2 (302p) [Geo-blocked] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",NPO 2 (302p) [Geo-blocked] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u index e9587edc7..d43fa35f6 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/general.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/legislative.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u index cf4e62a9a..85c75b78b 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/news.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u index 4182fcb1d..cfdce7d0b 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/undefined.m3u @@ -1,15 +1,15 @@ -#EXTM3U -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/weather.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u index d1e3a69bc..a6791d64b 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/categories/xxx.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="VisitXTV.nl" tvg-logo="https://i.imgur.com/RJ9wbNF.jpg" group-title="XXX",Visit-X TV -https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="VisitXTV.nl" tvg-logo="https://i.imgur.com/RJ9wbNF.jpg" group-title="XXX",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u index de466399a..9bc95be27 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ad.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ca.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u index cbfde9249..b701890a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/ru.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u index da6b5f4bb..eb0364cd5 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/countries/undefined.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u index 2ce7c040e..b3235a876 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.category.m3u @@ -1,25 +1,25 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u index f5eba15e4..332df0029 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.country.m3u @@ -1,31 +1,31 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Andorra",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Canada",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kazakhstan",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kyrgyzstan",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Tajikistan",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Turkmenistan",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Uzbekistan",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Andorra",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Canada",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kazakhstan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Kyrgyzstan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russia",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Tajikistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Turkmenistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Uzbekistan",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u index ed5f24014..e9f88f8ac 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.language.m3u @@ -1,23 +1,23 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Catalan",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="English",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russian",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Undefined",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Undefined",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Catalan",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="English",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Russian",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Undefined",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Undefined",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u index 1d27713b1..fbf8cd755 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.m3u @@ -1,23 +1,23 @@ -#EXTM3U -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u index 90c7438ce..aa3534ff7 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/index.region.m3u @@ -1,43 +1,43 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Americas",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Asia",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Asia",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Central Asia",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Commonwealth of Independent States",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe, the Middle East and Africa",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe, the Middle East and Africa",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="North America",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Northern America",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Americas",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Asia",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Asia",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Central Asia",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Commonwealth of Independent States",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Commonwealth of Independent States",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Europe, the Middle East and Africa",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="Europe, the Middle East and Africa",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="Europe, the Middle East and Africa",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="North America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Northern America",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="International",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="International",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u index cf4e62a9a..85c75b78b 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/eng.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u index cbfde9249..b701890a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/rus.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u index 5d59e689d..0eeed846f 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/languages/undefined.m3u @@ -1,17 +1,17 @@ -#EXTM3U -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/afr.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/amer.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/apac.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/arab.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u index 6f6d448e8..1a2c778e0 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/asia.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/carib.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u index a9387b8b4..847591ab0 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cas.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u index 6f6d448e8..1a2c778e0 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/cis.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u index 16dd0c395..10fbb43f9 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/emea.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u index 16dd0c395..10fbb43f9 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/eur.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="AndorraTV.ad@SD" tvg-logo="" group-title="Undefined",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="LDPRTV.ru" tvg-logo="https://iptvx.one/icn/ldpr-tv.png" group-title="General",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="ElTR.kg" tvg-logo="https://i.ibb.co/r6czQwQ/365049798-774721644658455-5702658175909463406-n-2.png" group-title="General",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/hispam.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u index c549c09ce..15240af7d 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/int.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk" tvg-logo="https://raw.githubusercontent.com/Tapiosinn/tv-logos/master/countries/united-kingdom/bbc-news-uk.png" group-title="General;News",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu" tvg-logo="https://i.imgur.com/uOBQJZS.png" group-title="Undefined",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/lac.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/latam.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/maghreb.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mena.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/mideast.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nam.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/noram.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/nord.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/oce.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/sas.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/ssa.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u index da6b5f4bb..eb0364cd5 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/undefined.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 -#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTM3U +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined" http-referrer="http://imn.iq" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="AndorraTV.ad@HD" tvg-logo="" group-title="Undefined",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="" tvg-logo="" group-title="Undefined",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTINF:-1 tvg-id="Zoo.ad@HD" tvg-logo="" group-title="Undefined",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u index fcd718794..7452e53aa 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/regions/wafr.m3u @@ -1 +1 @@ -#EXTM3U +#EXTM3U diff --git a/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u index 4686c68f4..03a6963a3 100644 --- a/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u +++ b/tests/__data__/expected/playlist_generate/.gh-pages/subdivisions/ca-on.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca" tvg-logo="https://s1.twnmm.com/images/en_ca/mobile/logos/twn-mobile-logo.png" group-title="Weather",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/expected/playlist_update/cy.m3u b/tests/__data__/expected/playlist_update/cy.m3u index 987825ca1..13482713e 100644 --- a/tests/__data__/expected/playlist_update/cy.m3u +++ b/tests/__data__/expected/playlist_update/cy.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 diff --git a/tests/__data__/expected/playlist_update/fr.m3u b/tests/__data__/expected/playlist_update/fr.m3u index 82856b338..f4f93afdc 100644 --- a/tests/__data__/expected/playlist_update/fr.m3u +++ b/tests/__data__/expected/playlist_update/fr.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="TFX.fr" http-referrer="https://pkpakiplay.xyz/" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1",TFX -#EXTVLCOPT:http-referrer=https://pkpakiplay.xyz/ -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1 -https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY +#EXTM3U +#EXTINF:-1 tvg-id="TFX.fr" http-referrer="https://pkpakiplay.xyz/" http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1",TFX +#EXTVLCOPT:http-referrer=https://pkpakiplay.xyz/ +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 17_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1 +https://stitcher-ipv4.pluto.tv/v1/stitch/embed/hls/channel/64c109a4798def0008a6e03e/master.m3u8?advertisingId={PSID}&appVersion=unknown&deviceDNT={TARGETOPT}&deviceId={PSID}&deviceLat=0&deviceLon=0&deviceMake=samsung&deviceModel=samsung&deviceType=samsung-tvplus&deviceVersion=unknown&embedPartner=samsung-tvplus&profileFloor=&profileLimit=&samsung_app_domain={APP_DOMAIN}&samsung_app_name={APP_NAME}&us_privacy=1YNY diff --git a/tests/__data__/expected/playlist_update/uk.m3u b/tests/__data__/expected/playlist_update/uk.m3u index 6ebfc71cd..a60ea6210 100644 --- a/tests/__data__/expected/playlist_update/uk.m3u +++ b/tests/__data__/expected/playlist_update/uk.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 -#EXTINF:-1 tvg-id="BeanoTV.uk",Beano TV -https://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTINF:-1 tvg-id="BeanoTV.uk",Beano TV +https://a5b4bacecd47433dad06d3189fc7422e.mediatailor.us-east-1.amazonaws.com/v1/manifest/04fd913bb278d8775298c26fdca9d9841f37601f/RakutenTV-eu_BeanoTV/b1f233d5-847c-437d-aa4f-f73e67a85323/2.m3u8 diff --git a/tests/__data__/expected/playlist_update/us.m3u b/tests/__data__/expected/playlist_update/us.m3u index 5271483e5..80ce51958 100644 --- a/tests/__data__/expected/playlist_update/us.m3u +++ b/tests/__data__/expected/playlist_update/us.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCAmerica.us@East" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246",BBC America East (720p) -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246 -https://servilive.com:3126/live/tele2000live.m3u8 -#EXTINF:-1 tvg-id="FastTV.us",Fast TV -https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCAmerica.us@East" http-user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246",BBC America East (720p) +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36 Edge/12.246 +https://servilive.com:3126/live/tele2000live.m3u8 +#EXTINF:-1 tvg-id="FastTV.us",Fast TV +https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.m3u8 diff --git a/tests/__data__/input/api_generate/ad.m3u b/tests/__data__/input/api_generate/ad.m3u index 64a1dc0cf..9d8926e0e 100644 --- a/tests/__data__/input/api_generate/ad.m3u +++ b/tests/__data__/input/api_generate/ad.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="Zoo.ad",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTM3U +#EXTINF:-1 tvg-id="Zoo.ad",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv diff --git a/tests/__data__/input/api_generate/ca.m3u b/tests/__data__/input/api_generate/ca.m3u index 9c198b682..672601d7f 100644 --- a/tests/__data__/input/api_generate/ca.m3u +++ b/tests/__data__/input/api_generate/ca.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/input/api_generate/in.m3u b/tests/__data__/input/api_generate/in.m3u index 62594eb4b..c375e17ac 100644 --- a/tests/__data__/input/api_generate/in.m3u +++ b/tests/__data__/input/api_generate/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/input/api_generate/uk.m3u b/tests/__data__/input/api_generate/uk.m3u index 5e8c7318e..4a8a1f64a 100644 --- a/tests/__data__/input/api_generate/uk.m3u +++ b/tests/__data__/input/api_generate/uk.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/input/api_generate/unsorted.m3u b/tests/__data__/input/api_generate/unsorted.m3u index 1a9c40b9f..96f9299e2 100644 --- a/tests/__data__/input/api_generate/unsorted.m3u +++ b/tests/__data__/input/api_generate/unsorted.m3u @@ -1,9 +1,9 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV -https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 -#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 +#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 diff --git a/tests/__data__/input/playlist_edit/playlist.m3u b/tests/__data__/input/playlist_edit/playlist.m3u index 2ebf1ffa7..0abd41b6f 100644 --- a/tests/__data__/input/playlist_edit/playlist.m3u +++ b/tests/__data__/input/playlist_edit/playlist.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="HewadTV.af",Hewad TV (720p) [Not 24/7] -http://51.210.199.58/hls/stream.m3u8 -#EXTINF:-1 tvg-id="",Télévision française 1 (480p) +#EXTM3U +#EXTINF:-1 tvg-id="HewadTV.af",Hewad TV (720p) [Not 24/7] +http://51.210.199.58/hls/stream.m3u8 +#EXTINF:-1 tvg-id="",Télévision française 1 (480p) https://live.relentlessinnovations.net:1936/imantv/imantv/playlist.m3u8 \ No newline at end of file diff --git a/tests/__data__/input/playlist_format/in.m3u b/tests/__data__/input/playlist_format/in.m3u index 47c77da2e..3d0bcd359 100644 --- a/tests/__data__/input/playlist_format/in.m3u +++ b/tests/__data__/input/playlist_format/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="mn.in",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] -https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="mn.in",Manorama News -2 [U3] (480p) [Geo-blocked] [Not 24/7] +https://ythls.onrender.com/channel/UCP0uG-mcMImgKnJz-VjJZmQ.m3u8 diff --git a/tests/__data__/input/playlist_format/nl.m3u b/tests/__data__/input/playlist_format/nl.m3u index 5fdeaea52..39d56a3ef 100644 --- a/tests/__data__/input/playlist_format/nl.m3u +++ b/tests/__data__/input/playlist_format/nl.m3u @@ -1,13 +1,13 @@ -#EXTM3U -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (302p) [Geo-blocked] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8? -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 -#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 -#EXTINF:-1 tvg-id="",NPO 2 (Duplicate) -http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (302p) [Geo-blocked] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://stream.tvtap.net:8081/live/nl-npo2.stream/playlist.m3u8? +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo22.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO2.nl",NPO 2 (342p) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 +#EXTINF:-1 tvg-id="NPO1.nl@SD",NPO 1 (342p) [Geo-blocked] +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo1/npo1.isml/.m3u8 +#EXTINF:-1 tvg-id="",NPO 2 (Duplicate) +http://resolver.streaming.api.nos.nl/livestream?url=/live/npo/tvlive/npo2/npo2.isml/.m3u8 diff --git a/tests/__data__/input/playlist_generate/ad.m3u b/tests/__data__/input/playlist_generate/ad.m3u index 9a1c9e175..3c3bcae1d 100644 --- a/tests/__data__/input/playlist_generate/ad.m3u +++ b/tests/__data__/input/playlist_generate/ad.m3u @@ -1,9 +1,9 @@ -#EXTM3U -#EXTINF:-1 tvg-id="Zoo.ad@HD",Zoo (720p) -https://iptv-all.lanesh4d0w.repl.co/andorra/zoo -#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv -#EXTINF:-1 tvg-id="AndorraTV.ad@HD",ATV HD -https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd -#EXTINF:-1 tvg-id="AndorraTV.ad",ATV -https://iptv-all.lanesh4d0w.repl.co/andorra/atv2 +#EXTM3U +#EXTINF:-1 tvg-id="Zoo.ad@HD",Zoo (720p) +https://iptv-all.lanesh4d0w.repl.co/andorra/zoo +#EXTINF:-1 tvg-id="AndorraTV.ad@SD",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv +#EXTINF:-1 tvg-id="AndorraTV.ad@HD",ATV HD +https://iptv-all.lanesh4d0w.repl.co/andorra/atv_hd +#EXTINF:-1 tvg-id="AndorraTV.ad",ATV +https://iptv-all.lanesh4d0w.repl.co/andorra/atv2 diff --git a/tests/__data__/input/playlist_generate/ca.m3u b/tests/__data__/input/playlist_generate/ca.m3u index 9c198b682..672601d7f 100644 --- a/tests/__data__/input/playlist_generate/ca.m3u +++ b/tests/__data__/input/playlist_generate/ca.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia -http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="MeteoMedia.ca",Meteomedia +http://encodercdn1.frontline.ca/encoder181/output/Meteo_Media_720p/playlist.m3u8 diff --git a/tests/__data__/input/playlist_generate/in.m3u b/tests/__data__/input/playlist_generate/in.m3u index 62594eb4b..c375e17ac 100644 --- a/tests/__data__/input/playlist_generate/in.m3u +++ b/tests/__data__/input/playlist_generate/in.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",Daawah TV -http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",Daawah TV +http://51.15.246.58:8081/daawahtv/daawahtv2/playlist.m3u8 diff --git a/tests/__data__/input/playlist_generate/kg.m3u b/tests/__data__/input/playlist_generate/kg.m3u index 9c1d5a575..9bf0832b5 100644 --- a/tests/__data__/input/playlist_generate/kg.m3u +++ b/tests/__data__/input/playlist_generate/kg.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="ElTR.kg",ЭлТР (480p) [Not 24/7] -http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="ElTR.kg",ЭлТР (480p) [Not 24/7] +http://gohoski.fvds.ru:3000/mediabay/162/index.m3u8 diff --git a/tests/__data__/input/playlist_generate/uk.m3u b/tests/__data__/input/playlist_generate/uk.m3u index 5e8c7318e..4a8a1f64a 100644 --- a/tests/__data__/input/playlist_generate/uk.m3u +++ b/tests/__data__/input/playlist_generate/uk.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 diff --git a/tests/__data__/input/playlist_generate/unsorted.m3u b/tests/__data__/input/playlist_generate/unsorted.m3u index b2b798b15..826414ad2 100644 --- a/tests/__data__/input/playlist_generate/unsorted.m3u +++ b/tests/__data__/input/playlist_generate/unsorted.m3u @@ -1,11 +1,11 @@ -#EXTM3U -#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p) -http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 -#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV -https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 -#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] -#EXTVLCOPT:http-referrer=http://imn.iq -#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 -#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576i) -http://146.59.85.40:89/dunaworld/index.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="LDPRTV.ru",ЛДПР ТВ (1080p) +http://46.46.143.222:1935/live/mp4:ldpr.stream/blocked.m3u8 +#EXTINF:-1 tvg-id="VisitXTV.nl",Visit-X TV +https://stream.visit-x.tv/vxtv/ngrp:live_all/30fps.m3u8 +#EXTINF:-1 tvg-id="" user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",Andorra TV (720p) [Not 24/7] +#EXTVLCOPT:http-referrer=http://imn.iq +#EXTVLCOPT:http-user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index2.m3u8 +#EXTINF:-1 tvg-id="DunaWorld.hu",Duna World (576i) +http://146.59.85.40:89/dunaworld/index.m3u8 diff --git a/tests/__data__/input/playlist_test/ag.m3u b/tests/__data__/input/playlist_test/ag.m3u index 66b32b21d..f4716e013 100644 --- a/tests/__data__/input/playlist_test/ag.m3u +++ b/tests/__data__/input/playlist_test/ag.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="ABSTV.ag",ABS TV -https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145 -#EXTINF:-1 tvg-id="ABSTV.ag@HD",ABS TV (1080p) [Not 24/7] +#EXTM3U +#EXTINF:-1 tvg-id="ABSTV.ag",ABS TV +https://tego-cdn2a.sibercdn.com/Live_TV-ABSTV-10/tracks-v3a1/rewind-7200.m3u8?token=e5f61e7be8363eb781b4bdfe591bf917dd529c1a-SjY3NzRTbDZQNnFQVkZaNkZja2RxV3JKc1VBa05zQkdMNStJakRGV0VTTzNrOEVGVUlIQmxta1NLV0o3bzdVdQ-1736094545-1736008145 +#EXTINF:-1 tvg-id="ABSTV.ag@HD",ABS TV (1080p) [Not 24/7] https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/absliveantigua3 \ No newline at end of file diff --git a/tests/__data__/input/playlist_update/br.m3u b/tests/__data__/input/playlist_update/br.m3u index 6dcdaee15..31a869861 100644 --- a/tests/__data__/input/playlist_update/br.m3u +++ b/tests/__data__/input/playlist_update/br.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",VTV [Not 24/7] -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 -#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] -#EXTVLCOPT:http-referrer=https://example2.com/ -https://servilive.com:3126/live/tele2000live.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",VTV [Not 24/7] +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] +#EXTVLCOPT:http-referrer=https://example2.com/ +https://servilive.com:3126/live/tele2000live.m3u8 diff --git a/tests/__data__/input/playlist_update/cy.m3u b/tests/__data__/input/playlist_update/cy.m3u index 439794ad7..03c605e3e 100644 --- a/tests/__data__/input/playlist_update/cy.m3u +++ b/tests/__data__/input/playlist_update/cy.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",RIK HD Cyprus -http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 -#EXTINF:-1 tvg-id="",RIK 2 -http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 -#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",RIK HD Cyprus +http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 +#EXTINF:-1 tvg-id="",RIK 2 +http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 +#EXTINF:-1 tvg-id="AdaTV.cy",AdaTV +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 diff --git a/tests/__data__/input/playlist_update/uk.m3u b/tests/__data__/input/playlist_update/uk.m3u index c1deeea97..033f5a36b 100644 --- a/tests/__data__/input/playlist_update/uk.m3u +++ b/tests/__data__/input/playlist_update/uk.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 diff --git a/tests/__data__/input/playlist_validate/us_blocked.m3u b/tests/__data__/input/playlist_validate/us_blocked.m3u index 2ffa2273b..3a5e4bd53 100644 --- a/tests/__data__/input/playlist_validate/us_blocked.m3u +++ b/tests/__data__/input/playlist_validate/us_blocked.m3u @@ -1,7 +1,7 @@ -#EXTM3U -#EXTINF:-1 tvg-id="FoxSports2.us@Asia",Fox Sports 2 Asia (Thai) (720p) -https://example.com/playlist.m3u8 -#EXTINF:-1 tvg-id="TVN.pl",TVN -https://example.com/playlist2.m3u8 -#EXTINF:-1 tvg-id="EverydayHeroes.us",Everyday Heroes (720p) -https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="FoxSports2.us@Asia",Fox Sports 2 Asia (Thai) (720p) +https://example.com/playlist.m3u8 +#EXTINF:-1 tvg-id="TVN.pl",TVN +https://example.com/playlist2.m3u8 +#EXTINF:-1 tvg-id="EverydayHeroes.us",Everyday Heroes (720p) +https://a.jsrdn.com/broadcast/7b1451fa52/+0000/c.m3u8 diff --git a/tests/__data__/input/playlist_validate/wrong_id.m3u b/tests/__data__/input/playlist_validate/wrong_id.m3u index fd9867773..dc7ab8504 100644 --- a/tests/__data__/input/playlist_validate/wrong_id.m3u +++ b/tests/__data__/input/playlist_validate/wrong_id.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="qib22lAq1L.us",ABC (720p) -https://example.com/playlist2.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="qib22lAq1L.us",ABC (720p) +https://example.com/playlist2.m3u8 diff --git a/tests/__data__/input/report_create/br.m3u b/tests/__data__/input/report_create/br.m3u index 6dcdaee15..31a869861 100644 --- a/tests/__data__/input/report_create/br.m3u +++ b/tests/__data__/input/report_create/br.m3u @@ -1,6 +1,6 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",VTV [Not 24/7] -https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 -#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] -#EXTVLCOPT:http-referrer=https://example2.com/ -https://servilive.com:3126/live/tele2000live.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",VTV [Not 24/7] +https://ythls.onrender.com/channel/UC40TUSUx490U5uR1lZt3Ajg.m3u8 +#EXTINF:-1 tvg-id="",Tele2000 [Not 24/7] +#EXTVLCOPT:http-referrer=https://example2.com/ +https://servilive.com:3126/live/tele2000live.m3u8 diff --git a/tests/__data__/input/report_create/cy.m3u b/tests/__data__/input/report_create/cy.m3u index 581d0961b..82d0b78d4 100644 --- a/tests/__data__/input/report_create/cy.m3u +++ b/tests/__data__/input/report_create/cy.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",RIK HD Cyprus -http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 -#EXTINF:-1 tvg-id="",RIK 2 -http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",RIK HD Cyprus +http://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8 +#EXTINF:-1 tvg-id="",RIK 2 +http://l6.cloudskep.com/rikcy/rik2/playlist.m3u8 diff --git a/tests/__data__/input/report_create/uk.m3u b/tests/__data__/input/report_create/uk.m3u index c1deeea97..033f5a36b 100644 --- a/tests/__data__/input/report_create/uk.m3u +++ b/tests/__data__/input/report_create/uk.m3u @@ -1,5 +1,5 @@ -#EXTM3U -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 -#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] -http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (720p) [Not 24/7] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/index.m3u8 +#EXTINF:-1 tvg-id="BBCNews.uk",BBC News HD (480p) [Geo-blocked] +http://1111296894.rsc.cdn77.org/LS-ATL-54548-6/playlist.m3u8 diff --git a/tests/__data__/input/report_create/us.m3u b/tests/__data__/input/report_create/us.m3u index 92cee65b0..78ea4deb5 100644 --- a/tests/__data__/input/report_create/us.m3u +++ b/tests/__data__/input/report_create/us.m3u @@ -1,3 +1,3 @@ -#EXTM3U -#EXTINF:-1 tvg-id="",TUTV -https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8 +#EXTM3U +#EXTINF:-1 tvg-id="",TUTV +https://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8 From c38ab0f070fb97f7bc7505fca9d2fe9378e7351e Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 05:21:23 +0300 Subject: [PATCH 34/44] Update update.test.ts --- tests/commands/playlist/update.test.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/commands/playlist/update.test.ts b/tests/commands/playlist/update.test.ts index a9949c499..a430b8df4 100644 --- a/tests/commands/playlist/update.test.ts +++ b/tests/commands/playlist/update.test.ts @@ -21,9 +21,12 @@ describe('playlist:update', () => { const stdout = execSync(cmd, { encoding: 'utf8' }) if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_update/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_update/', '')) + const files = glob.sync('tests/__data__/expected/playlist_update/*.m3u').map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_update/').toString() + + return fileUrl.replace(pathToRemove, '') + }) files.forEach(filepath => { expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( From 0deb0c8e015a32fba552d287769728e860187045 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 05:21:33 +0300 Subject: [PATCH 35/44] Update scripts --- scripts/models/playlist.ts | 4 ++-- scripts/models/stream.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/models/playlist.ts b/scripts/models/playlist.ts index ba0a25c5c..d3022a5af 100644 --- a/scripts/models/playlist.ts +++ b/scripts/models/playlist.ts @@ -17,10 +17,10 @@ export class Playlist { } toString() { - let output = '#EXTM3U\n' + let output = '#EXTM3U\r\n' this.streams.forEach((stream: Stream) => { - output += stream.toString(this.options) + '\n' + output += stream.toString(this.options) + '\r\n' }) return output diff --git a/scripts/models/stream.ts b/scripts/models/stream.ts index 2de399efc..443a249b9 100644 --- a/scripts/models/stream.ts +++ b/scripts/models/stream.ts @@ -352,14 +352,14 @@ export class Stream { output += `,${this.getTitle()}` if (this.referrer) { - output += `\n#EXTVLCOPT:http-referrer=${this.referrer}` + output += `\r\n#EXTVLCOPT:http-referrer=${this.referrer}` } if (this.userAgent) { - output += `\n#EXTVLCOPT:http-user-agent=${this.userAgent}` + output += `\r\n#EXTVLCOPT:http-user-agent=${this.userAgent}` } - output += `\n${this.url}` + output += `\r\n${this.url}` return output } From 844771bfb1ca6e29b6be97c970b7d2dcfff9dee1 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 05:42:52 +0300 Subject: [PATCH 36/44] Update tests --- tests/commands/playlist/format.test.ts | 9 ++++++--- tests/commands/playlist/generate.test.ts | 7 ++++++- tests/commands/playlist/test.test.ts | 7 ++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/tests/commands/playlist/format.test.ts b/tests/commands/playlist/format.test.ts index 070bfd7d9..f6c631252 100644 --- a/tests/commands/playlist/format.test.ts +++ b/tests/commands/playlist/format.test.ts @@ -20,9 +20,12 @@ describe('playlist:format', () => { const stdout = execSync(cmd, { encoding: 'utf8' }) if (process.env.DEBUG === 'true') console.log(cmd, stdout) - const files = glob - .sync('tests/__data__/expected/playlist_format/*.m3u') - .map(f => f.replace('tests/__data__/expected/playlist_format/', '')) + const files = glob.sync('tests/__data__/expected/playlist_format/*.m3u').map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_format/').toString() + + return fileUrl.replace(pathToRemove, '') + }) files.forEach(filepath => { expect(content(`tests/__data__/output/streams/${filepath}`), filepath).toBe( diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index 5c99f0269..fa27be5b1 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -23,7 +23,12 @@ describe('playlist:generate', () => { const playlists = glob .sync('tests/__data__/expected/playlist_generate/.gh-pages/**/*.m3u') - .map((file: string) => file.replace('tests/__data__/expected/playlist_generate/', '')) + .map(filepath => { + const fileUrl = pathToFileURL(filepath).toString() + const pathToRemove = pathToFileURL('tests/__data__/expected/playlist_generate/').toString() + + return fileUrl.replace(pathToRemove, '') + }) playlists.forEach((filepath: string) => { expect(content(`tests/__data__/output/${filepath}`), filepath).toBe( diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index 0020106dc..1b42c3d58 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,4 +1,5 @@ import { execSync } from 'child_process' +import path from 'node:path' import os from 'os' type ExecError = { @@ -27,6 +28,10 @@ describe('playlist:test', () => { }) function checkStdout(stdout: string) { - expect(stdout).toContain('playlist_test/ag.m3u') + expect(stdout).toContain(slash('playlist_test/ag.m3u')) expect(stdout).toContain('2 problems (1 errors, 1 warnings)') } + +function slash(filepath: string) { + return filepath.split(path.sep).join(path.posix.sep) +} From e11619c0542915a827f96c418fdb8da3a749894e Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:55:48 +0300 Subject: [PATCH 37/44] Update dependencies --- package-lock.json | 865 +++++++++------------------------------------- package.json | 3 +- yarn.lock | 317 ++++------------- 3 files changed, 230 insertions(+), 955 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4df46535d..7f48efc86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "dependencies": { "@eslint/eslintrc": "^3.3.0", "@eslint/js": "^9.21.0", - "@freearhey/core": "^0.7.0", + "@freearhey/core": "^0.8.2", "@freearhey/search-js": "^0.1.2", "@inquirer/prompts": "^7.4.1", "@octokit/core": "^6.1.4", @@ -18,6 +18,7 @@ "@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/types": "^11.1.0", "@types/cli-progress": "^3.11.3", + "@types/fs-extra": "^11.0.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.198", "@types/numeral": "^2.0.3", @@ -1065,23 +1066,20 @@ } }, "node_modules/@freearhey/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz", - "integrity": "sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz", + "integrity": "sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA==", "dependencies": { - "@types/fs-extra": "^11.0.2", - "@types/lodash": "^4.14.198", - "@types/luxon": "^3.3.2", - "fs-extra": "^11.1.1", - "glob": "^10.3.4", + "consola": "^3.4.2", + "dayjs": "^1.11.13", + "fs-extra": "^11.3.0", + "glob": "^11.0.1", "lodash": "^4.17.21", - "luxon": "^3.4.3", - "natural-orderby": "^3.0.2", - "node-gzip": "^1.1.2", + "natural-orderby": "^5.0.0", "normalize-url": "^6.1.0", "object-treeify": "^2.1.1", - "run-script-os": "^1.1.6", - "signale": "^1.4.0" + "pako": "^2.1.0", + "timer-node": "^5.0.9" } }, "node_modules/@freearhey/core/node_modules/normalize-url": { @@ -1493,9 +1491,9 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "engines": { "node": ">=12" }, @@ -2287,15 +2285,6 @@ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2379,9 +2368,9 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/fs-extra": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz", - "integrity": "sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", "dependencies": { "@types/jsonfile": "*", "@types/node": "*" @@ -2432,9 +2421,9 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "node_modules/@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", "dependencies": { "@types/node": "*" } @@ -2444,11 +2433,6 @@ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" }, - "node_modules/@types/luxon": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", - "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==" - }, "node_modules/@types/node": { "version": "22.13.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", @@ -3221,6 +3205,14 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, "node_modules/console-table-printer": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz", @@ -3285,6 +3277,11 @@ "node": ">=12.20" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -3400,6 +3397,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "peer": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -3407,7 +3405,8 @@ "node_modules/error-ex/node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "peer": true }, "node_modules/esbuild": { "version": "0.25.1", @@ -3790,25 +3789,6 @@ "bser": "2.1.1" } }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -3949,9 +3929,9 @@ } }, "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -3962,9 +3942,9 @@ } }, "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -4058,21 +4038,22 @@ } }, "node_modules/glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4117,14 +4098,14 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -4529,20 +4510,17 @@ } }, "node_modules/jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/jake": { @@ -5197,11 +5175,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -5241,9 +5214,9 @@ } }, "node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "engines": { "node": ">= 10.0.0" } @@ -5292,40 +5265,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "peer": true }, - "node_modules/load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "engines": { - "node": ">=4" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -5364,14 +5303,6 @@ "yallist": "^3.0.2" } }, - "node_modules/luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==", - "engines": { - "node": ">=12" - } - }, "node_modules/m3u-linter": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz", @@ -5389,14 +5320,6 @@ "node": ">=10.0.0" } }, - "node_modules/m3u-linter/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/m3u-linter/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", @@ -5405,79 +5328,6 @@ "node": ">= 10" } }, - "node_modules/m3u-linter/node_modules/glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/m3u-linter/node_modules/minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/m3u-linter/node_modules/path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", @@ -5664,9 +5514,9 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/natural-orderby": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz", - "integrity": "sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz", + "integrity": "sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==", "engines": { "node": ">=18" } @@ -5676,11 +5526,6 @@ "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==" }, - "node_modules/node-gzip": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz", - "integrity": "sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw==" - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -5836,6 +5681,11 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -5897,26 +5747,26 @@ "peer": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", "engines": { - "node": "14 || >=16.14" + "node": "20 || >=22" } }, "node_modules/path-to-regexp": { @@ -5940,14 +5790,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "engines": { - "node": ">=4" - } - }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", @@ -5957,79 +5799,6 @@ "node": ">= 6" } }, - "node_modules/pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "dependencies": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "engines": { - "node": ">=4" - } - }, - "node_modules/pkg-conf/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "engines": { - "node": ">=4" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -6335,15 +6104,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==", - "bin": { - "run-os": "index.js", - "run-script-os": "index.js" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -6385,83 +6145,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "peer": true }, - "node_modules/signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "dependencies": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/signale/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/signale/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/signale/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/signale/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/signale/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/simple-wcswidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", @@ -6723,6 +6406,11 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/timer-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz", + "integrity": "sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew==" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -7741,23 +7429,20 @@ } }, "@freearhey/core": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz", - "integrity": "sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA==", + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz", + "integrity": "sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA==", "requires": { - "@types/fs-extra": "^11.0.2", - "@types/lodash": "^4.14.198", - "@types/luxon": "^3.3.2", - "fs-extra": "^11.1.1", - "glob": "^10.3.4", + "consola": "^3.4.2", + "dayjs": "^1.11.13", + "fs-extra": "^11.3.0", + "glob": "^11.0.1", "lodash": "^4.17.21", - "luxon": "^3.4.3", - "natural-orderby": "^3.0.2", - "node-gzip": "^1.1.2", + "natural-orderby": "^5.0.0", "normalize-url": "^6.1.0", "object-treeify": "^2.1.1", - "run-script-os": "^1.1.6", - "signale": "^1.4.0" + "pako": "^2.1.0", + "timer-node": "^5.0.9" }, "dependencies": { "normalize-url": { @@ -7982,9 +7667,9 @@ }, "dependencies": { "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" }, "ansi-styles": { "version": "6.2.1", @@ -8623,12 +8308,6 @@ "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==" }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, "@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -8712,9 +8391,9 @@ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "@types/fs-extra": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz", - "integrity": "sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", "requires": { "@types/jsonfile": "*", "@types/node": "*" @@ -8765,9 +8444,9 @@ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" }, "@types/jsonfile": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz", - "integrity": "sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", "requires": { "@types/node": "*" } @@ -8777,11 +8456,6 @@ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz", "integrity": "sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg==" }, - "@types/luxon": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz", - "integrity": "sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ==" - }, "@types/node": { "version": "22.13.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz", @@ -9318,6 +8992,11 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, + "consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==" + }, "console-table-printer": { "version": "2.12.1", "resolved": "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz", @@ -9367,6 +9046,11 @@ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", "integrity": "sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==" }, + "dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + }, "debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -9443,6 +9127,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "peer": true, "requires": { "is-arrayish": "^0.2.1" }, @@ -9450,7 +9135,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "peer": true } } }, @@ -9726,21 +9412,6 @@ "bser": "2.1.1" } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - }, - "dependencies": { - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - } - } - }, "file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -9838,9 +9509,9 @@ } }, "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -9848,9 +9519,9 @@ }, "dependencies": { "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" } } }, @@ -9909,15 +9580,16 @@ } }, "glob": { - "version": "10.3.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz", - "integrity": "sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", + "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", "requires": { "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -9929,9 +9601,9 @@ } }, "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", "requires": { "brace-expansion": "^2.0.1" } @@ -10255,12 +9927,11 @@ } }, "jackspeak": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz", - "integrity": "sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "@isaacs/cliui": "^8.0.2" } }, "jake": { @@ -10761,11 +10432,6 @@ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -10797,9 +10463,9 @@ }, "dependencies": { "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" } } }, @@ -10838,33 +10504,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "peer": true }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - } - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -10897,11 +10536,6 @@ "yallist": "^3.0.2" } }, - "luxon": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz", - "integrity": "sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg==" - }, "m3u-linter": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz", @@ -10913,61 +10547,10 @@ "is-valid-path": "^0.1.1" }, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" - }, - "glob": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", - "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^4.0.1", - "minimatch": "^10.0.0", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - } - }, - "jackspeak": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", - "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", - "requires": { - "@isaacs/cliui": "^8.0.2" - } - }, - "lru-cache": { - "version": "11.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", - "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==" - }, - "minimatch": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", - "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "path-scurry": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", - "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", - "requires": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - } } } }, @@ -11102,20 +10685,15 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "natural-orderby": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz", - "integrity": "sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz", + "integrity": "sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==" }, "node-cleanup": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz", "integrity": "sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw==" }, - "node-gzip": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz", - "integrity": "sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw==" - }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -11226,6 +10804,11 @@ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -11269,18 +10852,18 @@ "peer": true }, "path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", "requires": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" }, "dependencies": { "lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==" + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==" } } }, @@ -11299,71 +10882,12 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, "pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "peer": true }, - "pkg-conf": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", - "integrity": "sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg=", - "requires": { - "find-up": "^2.0.0", - "load-json-file": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - } - } - }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -11560,11 +11084,6 @@ "queue-microtask": "^1.2.2" } }, - "run-script-os": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz", - "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==" - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11594,67 +11113,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "peer": true }, - "signale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", - "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", - "requires": { - "chalk": "^2.3.2", - "figures": "^2.0.0", - "pkg-conf": "^2.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, "simple-wcswidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz", @@ -11846,6 +11304,11 @@ } } }, + "timer-node": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz", + "integrity": "sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew==" + }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", diff --git a/package.json b/package.json index 6533852a2..c03d75ccc 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "dependencies": { "@eslint/eslintrc": "^3.3.0", "@eslint/js": "^9.21.0", - "@freearhey/core": "^0.7.0", + "@freearhey/core": "^0.8.2", "@freearhey/search-js": "^0.1.2", "@inquirer/prompts": "^7.4.1", "@octokit/core": "^6.1.4", @@ -48,6 +48,7 @@ "@octokit/plugin-rest-endpoint-methods": "^7.1.3", "@octokit/types": "^11.1.0", "@types/cli-progress": "^3.11.3", + "@types/fs-extra": "^11.0.4", "@types/jest": "^29.5.14", "@types/lodash": "^4.14.198", "@types/numeral": "^2.0.3", diff --git a/yarn.lock b/yarn.lock index 94e14d2f5..1491b68a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -366,24 +366,21 @@ "@eslint/core" "^0.12.0" levn "^0.4.1" -"@freearhey/core@^0.7.0": - version "0.7.0" - resolved "https://registry.npmjs.org/@freearhey/core/-/core-0.7.0.tgz" - integrity sha512-HXkKPYGY7ife7JAc1q/Qxzy0WUdSnyt3rHThCShZHgnH3rz0tpkjHFW7LNegB3he0IKn/Zc95/YSOQ97Fq8ctA== +"@freearhey/core@^0.8.2": + version "0.8.2" + resolved "https://registry.npmjs.org/@freearhey/core/-/core-0.8.2.tgz" + integrity sha512-jlb1XUbhUf3lqD3B9Wmx3c8qYG4+s1I0cr2FFQfiMpJh4nMvfUNdJr2OhH31S/dbNP12ycT6RPVoZ2j2G3+mXA== dependencies: - "@types/fs-extra" "^11.0.2" - "@types/lodash" "^4.14.198" - "@types/luxon" "^3.3.2" - fs-extra "^11.1.1" - glob "^10.3.4" + consola "^3.4.2" + dayjs "^1.11.13" + fs-extra "^11.3.0" + glob "^11.0.1" lodash "^4.17.21" - luxon "^3.4.3" - natural-orderby "^3.0.2" - node-gzip "^1.1.2" + natural-orderby "^5.0.0" normalize-url "^6.1.0" object-treeify "^2.1.1" - run-script-os "^1.1.6" - signale "^1.4.0" + pako "^2.1.0" + timer-node "^5.0.9" "@freearhey/search-js@^0.1.2": version "0.1.2" @@ -967,11 +964,6 @@ resolved "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz" integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== -"@pkgjs/parseargs@^0.11.0": - version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" - integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" @@ -1041,10 +1033,10 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== -"@types/fs-extra@^11.0.2": - version "11.0.2" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.2.tgz" - integrity sha512-c0hrgAOVYr21EX8J0jBMXGLMgJqVf/v6yxi0dLaJboW9aQPh16Id+z6w2Tx1hm+piJOLv8xPfVKZCLfjPw/IMQ== +"@types/fs-extra@^11.0.4": + version "11.0.4" + resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz" + integrity sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ== dependencies: "@types/jsonfile" "*" "@types/node" "*" @@ -1089,9 +1081,9 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/jsonfile@*": - version "6.1.1" - resolved "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.1.tgz" - integrity sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png== + version "6.1.4" + resolved "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz" + integrity sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ== dependencies: "@types/node" "*" @@ -1100,11 +1092,6 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.198.tgz" integrity sha512-trNJ/vtMZYMLhfN45uLq4ShQSw0/S7xCTLLVM+WM1rmFpba/VS42jVUgaO3w/NOLiWR/09lnYk0yMaA/atdIsg== -"@types/luxon@^3.3.2": - version "3.3.2" - resolved "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.2.tgz" - integrity sha512-l5cpE57br4BIjK+9BSkFBOsWtwv6J9bJpC7gdXIzZyI0vuKvNTk0wZZrkQxMGsUAuGW9+WMNWF2IJMD7br2yeQ== - "@types/node@*", "@types/node@>=18": version "22.13.10" resolved "https://registry.npmjs.org/@types/node/-/node-22.13.10.tgz" @@ -1263,16 +1250,9 @@ ansi-regex@^5.0.1: integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + version "6.1.0" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -1486,15 +1466,6 @@ caniuse-lite@^1.0.30001688: resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz" integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== -chalk@^2.3.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -1554,13 +1525,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" @@ -1573,11 +1537,6 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - colors@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" @@ -1615,6 +1574,11 @@ concat-map@0.0.1: resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== +consola@^3.4.2: + version "3.4.2" + resolved "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + console-table-printer@^2.12.1: version "2.12.1" resolved "https://registry.npmjs.org/console-table-printer/-/console-table-printer-2.12.1.tgz" @@ -1659,6 +1623,11 @@ dateformat@^5.0.3: resolved "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz" integrity sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA== +dayjs@^1.11.13: + version "1.11.13" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" + integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.4.0" resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" @@ -1771,11 +1740,6 @@ escalade@^3.1.1, escalade@^3.2.0: resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - escape-string-regexp@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" @@ -1968,13 +1932,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figures@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz" - integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= - dependencies: - escape-string-regexp "^1.0.5" - file-entry-cache@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" @@ -1996,13 +1953,6 @@ fill-range@^7.1.1: dependencies: to-regex-range "^5.0.1" -find-up@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" @@ -2062,10 +2012,10 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -fs-extra@^11.1.1: - version "11.1.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== +fs-extra@^11.3.0: + version "11.3.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz" + integrity sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -2132,21 +2082,10 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.3.4: - version "10.3.4" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.4.tgz" - integrity sha512-6LFElP3A+i/Q8XQKEvZjkEWEOTgAIALR9AO2rwT8bgPhDd1anmqDJDZ6lLddI4ehxxxR1S5RIqKe1uapMQfYaQ== - dependencies: - foreground-child "^3.1.0" - jackspeak "^2.0.3" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -glob@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz" - integrity sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g== +glob@^11.0.0, glob@^11.0.1: + version "11.0.1" + resolved "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz" + integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== dependencies: foreground-child "^3.1.0" jackspeak "^4.0.1" @@ -2194,7 +2133,7 @@ globals@^16.0.0: resolved "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz" integrity sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A== -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.9" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz" integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== @@ -2209,11 +2148,6 @@ graphql@^16.8.1: resolved "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz" integrity sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ== -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" @@ -2484,19 +2418,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.3.3" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.3.tgz" - integrity sha512-R2bUw+kVZFS/h1AZqBKrSgDmdmjApzgY0AlCPumopFiAlbUxE2gf+SCuBzQ0cP5hHmUmFYF5yw55T97Th5Kstg== - dependencies: - "@isaacs/cliui" "^8.0.2" - optionalDependencies: - "@pkgjs/parseargs" "^0.11.0" - jackspeak@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz" - integrity sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw== + version "4.1.0" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz" + integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== dependencies: "@isaacs/cliui" "^8.0.2" @@ -2908,11 +2833,6 @@ json-buffer@3.0.1: resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" @@ -2972,24 +2892,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" @@ -3020,9 +2922,9 @@ lodash@^4.17.21: integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== lru-cache@^11.0.0: - version "11.0.2" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz" - integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== + version "11.1.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz" + integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A== lru-cache@^5.1.1: version "5.1.1" @@ -3031,16 +2933,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -"lru-cache@^9.1.1 || ^10.0.0": - version "10.0.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" - integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== - -luxon@^3.4.3: - version "3.4.3" - resolved "https://registry.npmjs.org/luxon/-/luxon-3.4.3.tgz" - integrity sha512-tFWBiv3h7z+T/tDaoxA8rqTxy1CHV6gHS//QdaH4pulbq/JuBSGgQspQQqcgnwdAx6pNI7cmvz5Sv/addzHmUg== - m3u-linter@^0.4.2: version "0.4.2" resolved "https://registry.npmjs.org/m3u-linter/-/m3u-linter-0.4.2.tgz" @@ -3133,13 +3025,6 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^9.0.4: version "9.0.5" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" @@ -3147,7 +3032,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: +minipass@^7.1.2: version "7.1.2" resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz" integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== @@ -3191,21 +3076,16 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -natural-orderby@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/natural-orderby/-/natural-orderby-3.0.2.tgz" - integrity sha512-x7ZdOwBxZCEm9MM7+eQCjkrNLrW3rkBKNHVr78zbtqnMGVNlnDi6C/eUEYgxHNrcbu0ymvjzcwIL/6H1iHri9g== +natural-orderby@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/natural-orderby/-/natural-orderby-5.0.0.tgz" + integrity sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg== node-cleanup@^2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/node-cleanup/-/node-cleanup-2.1.2.tgz" integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== -node-gzip@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/node-gzip/-/node-gzip-1.1.2.tgz" - integrity sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw== - node-int64@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" @@ -3284,13 +3164,6 @@ outvariant@^1.4.0, outvariant@^1.4.3: resolved "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz" integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -3305,13 +3178,6 @@ p-limit@^3.0.2, p-limit@^3.1.0: dependencies: yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" @@ -3326,11 +3192,6 @@ p-locate@^5.0.0: dependencies: p-limit "^3.0.2" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" @@ -3341,6 +3202,11 @@ package-json-from-dist@^1.0.0: resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -3348,14 +3214,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -3366,11 +3224,6 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" @@ -3391,14 +3244,6 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== - dependencies: - lru-cache "^9.1.1 || ^10.0.0" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz" @@ -3422,24 +3267,11 @@ picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - pirates@^4.0.4: version "4.0.6" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -pkg-conf@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz" - integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= - dependencies: - find-up "^2.0.0" - load-json-file "^4.0.0" - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" @@ -3574,11 +3406,6 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-script-os@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz" - integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -3626,15 +3453,6 @@ signal-exit@^4.1.0: resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -signale@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz" - integrity sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w== - dependencies: - chalk "^2.3.2" - figures "^2.0.0" - pkg-conf "^2.1.0" - simple-wcswidth@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/simple-wcswidth/-/simple-wcswidth-1.0.1.tgz" @@ -3768,11 +3586,6 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" @@ -3788,13 +3601,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -3823,6 +3629,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +timer-node@^5.0.9: + version "5.0.9" + resolved "https://registry.npmjs.org/timer-node/-/timer-node-5.0.9.tgz" + integrity sha512-zXxCE/5/YDi0hY9pygqgRqjRbrFRzigYxOudG0I3syaqAAmX9/w9sxex1bNFCN6c1S66RwPtEIJv65dN+1psew== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -3925,9 +3736,9 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== update-browserslist-db@^1.1.1: version "1.1.1" From e82155e38ede595017dd12c8ddfc8b3cd0e4ba8e Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:56:02 +0300 Subject: [PATCH 38/44] Update tests/__data__ --- .../input/readme_update/generators.log | 148 +++++++++--------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/tests/__data__/input/readme_update/generators.log b/tests/__data__/input/readme_update/generators.log index 63cfea058..55adb62b0 100644 --- a/tests/__data__/input/readme_update/generators.log +++ b/tests/__data__/input/readme_update/generators.log @@ -1,75 +1,75 @@ -{"type":"category","filepath":"categories/auto.m3u","count":0} -{"type":"category","filepath":"categories/animation.m3u","count":0} -{"type":"category","filepath":"categories/business.m3u","count":0} -{"type":"category","filepath":"categories/classic.m3u","count":0} -{"type":"category","filepath":"categories/comedy.m3u","count":0} -{"type":"category","filepath":"categories/cooking.m3u","count":0} -{"type":"category","filepath":"categories/culture.m3u","count":0} -{"type":"category","filepath":"categories/documentary.m3u","count":0} -{"type":"category","filepath":"categories/education.m3u","count":0} -{"type":"category","filepath":"categories/entertainment.m3u","count":0} -{"type":"category","filepath":"categories/family.m3u","count":0} -{"type":"category","filepath":"categories/general.m3u","count":2} -{"type":"category","filepath":"categories/kids.m3u","count":0} -{"type":"category","filepath":"categories/legislative.m3u","count":0} -{"type":"category","filepath":"categories/lifestyle.m3u","count":0} -{"type":"category","filepath":"categories/movies.m3u","count":0} -{"type":"category","filepath":"categories/music.m3u","count":0} -{"type":"category","filepath":"categories/news.m3u","count":1} -{"type":"category","filepath":"categories/outdoor.m3u","count":0} -{"type":"category","filepath":"categories/relax.m3u","count":0} -{"type":"category","filepath":"categories/religious.m3u","count":0} -{"type":"category","filepath":"categories/series.m3u","count":0} -{"type":"category","filepath":"categories/science.m3u","count":0} -{"type":"category","filepath":"categories/shop.m3u","count":0} -{"type":"category","filepath":"categories/sports.m3u","count":0} -{"type":"category","filepath":"categories/travel.m3u","count":0} -{"type":"category","filepath":"categories/weather.m3u","count":1} -{"type":"category","filepath":"categories/xxx.m3u","count":1} -{"type":"category","filepath":"categories/undefined.m3u","count":3} -{"type":"country","filepath":"countries/cm.m3u","count":1} -{"type":"country","filepath":"countries/ca.m3u","count":2} -{"type":"country","filepath":"countries/cv.m3u","count":1} -{"type":"country","filepath":"countries/cg.m3u","count":1} -{"type":"country","filepath":"countries/ro.m3u","count":1} -{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} -{"type":"country","filepath":"countries/ru.m3u","count":2} -{"type":"country","filepath":"countries/rw.m3u","count":1} -{"type":"country","filepath":"countries/re.m3u","count":1} -{"type":"country","filepath":"countries/undefined.m3u","count":2} -{"type":"country","filepath":"countries/bl.m3u","count":1} -{"type":"country","filepath":"countries/sh.m3u","count":1} -{"type":"country","filepath":"countries/kn.m3u","count":1} -{"type":"language","filepath":"languages/cat.m3u","count":1} -{"type":"language","filepath":"languages/eng.m3u","count":1} -{"type":"language","filepath":"languages/fra.m3u","count":1} -{"type":"language","filepath":"languages/rus.m3u","count":1} -{"type":"language","filepath":"languages/undefined.m3u","count":2} -{"type":"region","filepath":"regions/afr.m3u","count":0} -{"type":"region","filepath":"regions/amer.m3u","count":1} -{"type":"region","filepath":"regions/apac.m3u","count":1} -{"type":"region","filepath":"regions/arab.m3u","count":0} -{"type":"region","filepath":"regions/asean.m3u","count":0} -{"type":"region","filepath":"regions/asia.m3u","count":2} -{"type":"region","filepath":"regions/carib.m3u","count":0} -{"type":"region","filepath":"regions/cas.m3u","count":0} -{"type":"region","filepath":"regions/cenamer.m3u","count":0} -{"type":"region","filepath":"regions/cis.m3u","count":1} -{"type":"region","filepath":"regions/emea.m3u","count":3} -{"type":"region","filepath":"regions/eur.m3u","count":3} -{"type":"region","filepath":"regions/hispam.m3u","count":0} -{"type":"region","filepath":"regions/lac.m3u","count":0} -{"type":"region","filepath":"regions/latam.m3u","count":0} -{"type":"region","filepath":"regions/maghreb.m3u","count":0} -{"type":"region","filepath":"regions/mena.m3u","count":0} -{"type":"region","filepath":"regions/mideast.m3u","count":0} -{"type":"region","filepath":"regions/nam.m3u","count":1} -{"type":"region","filepath":"regions/noram.m3u","count":1} -{"type":"region","filepath":"regions/nord.m3u","count":0} -{"type":"region","filepath":"regions/oce.m3u","count":0} -{"type":"region","filepath":"regions/undefined.m3u","count":2} -{"type":"region","filepath":"regions/sas.m3u","count":1} -{"type":"region","filepath":"regions/int.m3u","count":1} -{"type":"region","filepath":"regions/southam.m3u","count":0} -{"type":"region","filepath":"regions/ssa.m3u","count":0} +{"type":"category","filepath":"categories/auto.m3u","count":0} +{"type":"category","filepath":"categories/animation.m3u","count":0} +{"type":"category","filepath":"categories/business.m3u","count":0} +{"type":"category","filepath":"categories/classic.m3u","count":0} +{"type":"category","filepath":"categories/comedy.m3u","count":0} +{"type":"category","filepath":"categories/cooking.m3u","count":0} +{"type":"category","filepath":"categories/culture.m3u","count":0} +{"type":"category","filepath":"categories/documentary.m3u","count":0} +{"type":"category","filepath":"categories/education.m3u","count":0} +{"type":"category","filepath":"categories/entertainment.m3u","count":0} +{"type":"category","filepath":"categories/family.m3u","count":0} +{"type":"category","filepath":"categories/general.m3u","count":2} +{"type":"category","filepath":"categories/kids.m3u","count":0} +{"type":"category","filepath":"categories/legislative.m3u","count":0} +{"type":"category","filepath":"categories/lifestyle.m3u","count":0} +{"type":"category","filepath":"categories/movies.m3u","count":0} +{"type":"category","filepath":"categories/music.m3u","count":0} +{"type":"category","filepath":"categories/news.m3u","count":1} +{"type":"category","filepath":"categories/outdoor.m3u","count":0} +{"type":"category","filepath":"categories/relax.m3u","count":0} +{"type":"category","filepath":"categories/religious.m3u","count":0} +{"type":"category","filepath":"categories/series.m3u","count":0} +{"type":"category","filepath":"categories/science.m3u","count":0} +{"type":"category","filepath":"categories/shop.m3u","count":0} +{"type":"category","filepath":"categories/sports.m3u","count":0} +{"type":"category","filepath":"categories/travel.m3u","count":0} +{"type":"category","filepath":"categories/weather.m3u","count":1} +{"type":"category","filepath":"categories/xxx.m3u","count":1} +{"type":"category","filepath":"categories/undefined.m3u","count":3} +{"type":"country","filepath":"countries/cm.m3u","count":1} +{"type":"country","filepath":"countries/ca.m3u","count":2} +{"type":"country","filepath":"countries/cv.m3u","count":1} +{"type":"country","filepath":"countries/cg.m3u","count":1} +{"type":"country","filepath":"countries/ro.m3u","count":1} +{"type":"subdivision","filepath":"subdivisions/ca-on.m3u","count":1} +{"type":"country","filepath":"countries/ru.m3u","count":2} +{"type":"country","filepath":"countries/rw.m3u","count":1} +{"type":"country","filepath":"countries/re.m3u","count":1} +{"type":"country","filepath":"countries/undefined.m3u","count":2} +{"type":"country","filepath":"countries/bl.m3u","count":1} +{"type":"country","filepath":"countries/sh.m3u","count":1} +{"type":"country","filepath":"countries/kn.m3u","count":1} +{"type":"language","filepath":"languages/cat.m3u","count":1} +{"type":"language","filepath":"languages/eng.m3u","count":1} +{"type":"language","filepath":"languages/fra.m3u","count":1} +{"type":"language","filepath":"languages/rus.m3u","count":1} +{"type":"language","filepath":"languages/undefined.m3u","count":2} +{"type":"region","filepath":"regions/afr.m3u","count":0} +{"type":"region","filepath":"regions/amer.m3u","count":1} +{"type":"region","filepath":"regions/apac.m3u","count":1} +{"type":"region","filepath":"regions/arab.m3u","count":0} +{"type":"region","filepath":"regions/asean.m3u","count":0} +{"type":"region","filepath":"regions/asia.m3u","count":2} +{"type":"region","filepath":"regions/carib.m3u","count":0} +{"type":"region","filepath":"regions/cas.m3u","count":0} +{"type":"region","filepath":"regions/cenamer.m3u","count":0} +{"type":"region","filepath":"regions/cis.m3u","count":1} +{"type":"region","filepath":"regions/emea.m3u","count":3} +{"type":"region","filepath":"regions/eur.m3u","count":3} +{"type":"region","filepath":"regions/hispam.m3u","count":0} +{"type":"region","filepath":"regions/lac.m3u","count":0} +{"type":"region","filepath":"regions/latam.m3u","count":0} +{"type":"region","filepath":"regions/maghreb.m3u","count":0} +{"type":"region","filepath":"regions/mena.m3u","count":0} +{"type":"region","filepath":"regions/mideast.m3u","count":0} +{"type":"region","filepath":"regions/nam.m3u","count":1} +{"type":"region","filepath":"regions/noram.m3u","count":1} +{"type":"region","filepath":"regions/nord.m3u","count":0} +{"type":"region","filepath":"regions/oce.m3u","count":0} +{"type":"region","filepath":"regions/undefined.m3u","count":2} +{"type":"region","filepath":"regions/sas.m3u","count":1} +{"type":"region","filepath":"regions/int.m3u","count":1} +{"type":"region","filepath":"regions/southam.m3u","count":0} +{"type":"region","filepath":"regions/ssa.m3u","count":0} {"type":"region","filepath":"regions/wafr.m3u","count":0} \ No newline at end of file From 7f78b5770ecbd73480ce16a239650a5bb8388ddf Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:56:11 +0300 Subject: [PATCH 39/44] Update tests --- tests/commands/playlist/edit.test.ts | 1 - tests/commands/playlist/generate.test.ts | 6 ++-- tests/commands/playlist/test.test.ts | 15 +++------- tests/commands/playlist/validate.test.ts | 36 +++++++++++------------- 4 files changed, 24 insertions(+), 34 deletions(-) diff --git a/tests/commands/playlist/edit.test.ts b/tests/commands/playlist/edit.test.ts index 4651e5ef8..3334b6dee 100644 --- a/tests/commands/playlist/edit.test.ts +++ b/tests/commands/playlist/edit.test.ts @@ -39,5 +39,4 @@ function checkStdout(stdout: string) { expect(stdout).toContain('TF1.fr (TF1, Télévision française 1)') expect(stdout).toContain('Type...') expect(stdout).toContain('Skip') - expect(stdout).toContain("File 'tests/__data__/output/playlist.m3u' successfully saved") } diff --git a/tests/commands/playlist/generate.test.ts b/tests/commands/playlist/generate.test.ts index fa27be5b1..4e14d0d30 100644 --- a/tests/commands/playlist/generate.test.ts +++ b/tests/commands/playlist/generate.test.ts @@ -1,8 +1,8 @@ import { pathToFileURL } from 'node:url' import { execSync } from 'child_process' +import os, { EOL } from 'node:os' import * as fs from 'fs-extra' import * as glob from 'glob' -import os from 'os' let ENV_VAR = 'STREAMS_DIR=tests/__data__/input/playlist_generate DATA_DIR=tests/__data__/input/data PUBLIC_DIR=tests/__data__/output/.gh-pages LOGS_DIR=tests/__data__/output/logs' @@ -36,8 +36,8 @@ describe('playlist:generate', () => { ) }) - expect(content('tests/__data__/output/logs/generators.log').split('\n').sort()).toStrictEqual( - content('tests/__data__/expected/playlist_generate/logs/generators.log').split('\n').sort() + expect(content('tests/__data__/output/logs/generators.log').split(EOL).sort()).toStrictEqual( + content('tests/__data__/expected/playlist_generate/logs/generators.log').split(EOL).sort() ) }) }) diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index 1b42c3d58..515dbf824 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,6 +1,6 @@ import { execSync } from 'child_process' import path from 'node:path' -import os from 'os' +import os from 'node:os' type ExecError = { status: number @@ -16,22 +16,15 @@ describe('playlist:test', () => { it('shows an error if the playlist contains a broken link', () => { const cmd = `${ENV_VAR} npm run playlist:test playlist_test/ag.m3u` try { - const stdout = execSync(cmd, { encoding: 'utf8' }) - if (process.env.DEBUG === 'true') console.log(cmd, stdout) - checkStdout(stdout) + execSync(cmd, { encoding: 'utf8' }) } catch (error) { - // NOTE: for Windows only if (process.env.DEBUG === 'true') console.log(cmd, error) - checkStdout((error as ExecError).stdout) + expect((error as ExecError).stdout).toContain(slash('playlist_test/ag.m3u')) + expect((error as ExecError).stdout).toContain('2 problems (1 errors, 1 warnings)') } }) }) -function checkStdout(stdout: string) { - expect(stdout).toContain(slash('playlist_test/ag.m3u')) - expect(stdout).toContain('2 problems (1 errors, 1 warnings)') -} - function slash(filepath: string) { return filepath.split(path.sep).join(path.posix.sep) } diff --git a/tests/commands/playlist/validate.test.ts b/tests/commands/playlist/validate.test.ts index 933099bc9..feef97bbf 100644 --- a/tests/commands/playlist/validate.test.ts +++ b/tests/commands/playlist/validate.test.ts @@ -17,31 +17,29 @@ describe('playlist:validate', () => { it('show an error if channel id in the blocklist', () => { const cmd = `${ENV_VAR} npm run playlist:validate -- us_blocked.m3u` try { - const stdout = execSync(cmd, { encoding: 'utf8' }) - if (process.env.DEBUG === 'true') console.log(cmd, stdout) - checkStdout(stdout) + execSync(cmd, { encoding: 'utf8' }) } catch (error) { - // NOTE: for Windows only if (process.env.DEBUG === 'true') console.log(cmd, error) - checkStdout((error as ExecError).stdout) + expect((error as ExecError).stdout).toContain('us_blocked.m3u') + expect((error as ExecError).stdout).toContain( + '2 error "FoxSports2.us" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0002)' + ) + expect((error as ExecError).stdout).toContain( + '4 error "TVN.pl" is on the blocklist due to NSFW content (https://github.com/iptv-org/iptv/issues/0003)' + ) + expect((error as ExecError).stdout).toContain('2 problems (2 errors, 0 warnings)') } }) it('show a warning if channel has wrong id', () => { const cmd = `${ENV_VAR} npm run playlist:validate -- wrong_id.m3u` - const stdout = execSync(cmd, { encoding: 'utf8' }) - if (process.env.DEBUG === 'true') console.log(cmd, stdout) - - expect(stdout).toContain( - 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' - ) + try { + execSync(cmd, { encoding: 'utf8' }) + } catch (error) { + if (process.env.DEBUG === 'true') console.log(cmd, error) + expect((error as ExecError).stdout).toContain( + 'wrong_id.m3u\n 2 warning "qib22lAq1L.us" is not in the database\n\n1 problems (0 errors, 1 warnings)\n' + ) + } }) }) - -function checkStdout(stdout: string) { - expect(stdout).toContain(`us_blocked.m3u - 2 error "FoxSports2.us" is on the blocklist due to claims of copyright holders (https://github.com/iptv-org/iptv/issues/0002) - 4 error "TVN.pl" is on the blocklist due to NSFW content (https://github.com/iptv-org/iptv/issues/0003) - -2 problems (2 errors, 0 warnings)`) -} From e6354bdd2390cb4e1102419dd3f1c90b99c07091 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:56:19 +0300 Subject: [PATCH 40/44] Update scripts --- scripts/commands/playlist/edit.ts | 2 +- scripts/commands/playlist/generate.ts | 54 ++++++++++---------- scripts/commands/playlist/test.ts | 2 +- scripts/commands/playlist/validate.ts | 6 +-- scripts/generators/categoriesGenerator.ts | 21 ++++---- scripts/generators/countriesGenerator.ts | 25 ++++----- scripts/generators/indexCategoryGenerator.ts | 17 +++--- scripts/generators/indexCountryGenerator.ts | 17 +++--- scripts/generators/indexGenerator.ts | 17 +++--- scripts/generators/indexLanguageGenerator.ts | 17 +++--- scripts/generators/indexNsfwGenerator.ts | 17 +++--- scripts/generators/indexRegionGenerator.ts | 17 +++--- scripts/generators/languagesGenerator.ts | 21 ++++---- scripts/generators/regionsGenerator.ts | 25 +++++---- scripts/models/feed.ts | 4 +- 15 files changed, 144 insertions(+), 118 deletions(-) diff --git a/scripts/commands/playlist/edit.ts b/scripts/commands/playlist/edit.ts index c57a62d1e..d87590b1f 100644 --- a/scripts/commands/playlist/edit.ts +++ b/scripts/commands/playlist/edit.ts @@ -1,7 +1,7 @@ import { Storage, Collection, Logger, Dictionary } from '@freearhey/core' import { DataLoader, DataProcessor, PlaylistParser } from '../../core' -import { Channel, Feed, Playlist, Stream } from '../../models' import type { ChannelSearchableData } from '../../types/channel' +import { Channel, Feed, Playlist, Stream } from '../../models' import { DataProcessorData } from '../../types/dataProcessor' import { DataLoaderData } from '../../types/dataLoader' import { select, input } from '@inquirer/prompts' diff --git a/scripts/commands/playlist/generate.ts b/scripts/commands/playlist/generate.ts index c323d5395..b903b5a43 100644 --- a/scripts/commands/playlist/generate.ts +++ b/scripts/commands/playlist/generate.ts @@ -1,27 +1,25 @@ -import { Logger, Storage } from '@freearhey/core' import { PlaylistParser, DataProcessor, DataLoader } from '../../core' +import type { DataProcessorData } from '../../types/dataProcessor' +import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants' +import type { DataLoaderData } from '../../types/dataLoader' +import { Logger, Storage, File } from '@freearhey/core' import { Stream } from '../../models' import { uniqueId } from 'lodash' import { + IndexCategoryGenerator, + IndexLanguageGenerator, + IndexCountryGenerator, + IndexRegionGenerator, CategoriesGenerator, CountriesGenerator, LanguagesGenerator, RegionsGenerator, - IndexGenerator, - IndexCategoryGenerator, - IndexCountryGenerator, - IndexLanguageGenerator, - IndexRegionGenerator + IndexGenerator } from '../../generators' -import { DATA_DIR, LOGS_DIR, STREAMS_DIR } from '../../constants' -import type { DataProcessorData } from '../../types/dataProcessor' -import type { DataLoaderData } from '../../types/dataLoader' async function main() { const logger = new Logger() - const generatorsLogger = new Logger({ - stream: await new Storage(LOGS_DIR).createStream(`generators.log`) - }) + const logFile = new File('generators.log') logger.info('loading data from api...') const processor = new DataProcessor() @@ -29,19 +27,19 @@ async function main() { const loader = new DataLoader({ storage: dataStorage }) const data: DataLoaderData = await loader.load() const { + feedsGroupedByChannelId, + channelsKeyById, categories, countries, - regions, - channelsKeyById, - feedsGroupedByChannelId + regions }: DataProcessorData = processor.process(data) logger.info('loading streams...') const streamsStorage = new Storage(STREAMS_DIR) const parser = new PlaylistParser({ storage: streamsStorage, - channelsKeyById, - feedsGroupedByChannelId + feedsGroupedByChannelId, + channelsKeyById }) const files = await streamsStorage.list('**/*.m3u') let streams = await parser.parse(files) @@ -62,42 +60,46 @@ async function main() { ) logger.info('generating categories/...') - await new CategoriesGenerator({ categories, streams, logger: generatorsLogger }).generate() + await new CategoriesGenerator({ categories, streams, logFile }).generate() logger.info('generating countries/...') await new CountriesGenerator({ countries, streams, - logger: generatorsLogger + logFile }).generate() logger.info('generating languages/...') - await new LanguagesGenerator({ streams, logger: generatorsLogger }).generate() + await new LanguagesGenerator({ streams, logFile }).generate() logger.info('generating regions/...') await new RegionsGenerator({ streams, regions, - logger: generatorsLogger + logFile }).generate() logger.info('generating index.m3u...') - await new IndexGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexGenerator({ streams, logFile }).generate() logger.info('generating index.category.m3u...') - await new IndexCategoryGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexCategoryGenerator({ streams, logFile }).generate() logger.info('generating index.country.m3u...') await new IndexCountryGenerator({ streams, - logger: generatorsLogger + logFile }).generate() logger.info('generating index.language.m3u...') - await new IndexLanguageGenerator({ streams, logger: generatorsLogger }).generate() + await new IndexLanguageGenerator({ streams, logFile }).generate() logger.info('generating index.region.m3u...') - await new IndexRegionGenerator({ streams, regions, logger: generatorsLogger }).generate() + await new IndexRegionGenerator({ streams, regions, logFile }).generate() + + logger.info('saving generators.log...') + const logStorage = new Storage(LOGS_DIR) + logStorage.saveFile(logFile) } main() diff --git a/scripts/commands/playlist/test.ts b/scripts/commands/playlist/test.ts index cc6f1dc14..a37b7ecd0 100644 --- a/scripts/commands/playlist/test.ts +++ b/scripts/commands/playlist/test.ts @@ -159,7 +159,7 @@ function onFinish() { drawTable() - logger.error(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`) + console.log(chalk.red(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`)) if (errors > 0) { process.exit(1) diff --git a/scripts/commands/playlist/validate.ts b/scripts/commands/playlist/validate.ts index 57bca4f6f..e089f7eff 100644 --- a/scripts/commands/playlist/validate.ts +++ b/scripts/commands/playlist/validate.ts @@ -94,14 +94,14 @@ async function main() { }) if (log.notEmpty()) { - logger.info(`\n${chalk.underline(filepath)}`) + console.log(`\n${chalk.underline(filepath)}`) log.forEach((logItem: LogItem) => { const position = logItem.line.toString().padEnd(6, ' ') const type = logItem.type.padEnd(9, ' ') const status = logItem.type === 'error' ? chalk.red(type) : chalk.yellow(type) - logger.info(` ${chalk.gray(position)}${status}${logItem.message}`) + console.log(` ${chalk.gray(position)}${status}${logItem.message}`) }) errors = errors.concat(log.filter((logItem: LogItem) => logItem.type === 'error')) @@ -109,7 +109,7 @@ async function main() { } } - logger.error( + console.log( chalk.red( `\n${ errors.count() + warnings.count() diff --git a/scripts/generators/categoriesGenerator.ts b/scripts/generators/categoriesGenerator.ts index cd20b6ea4..f6d455d4b 100644 --- a/scripts/generators/categoriesGenerator.ts +++ b/scripts/generators/categoriesGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, Logger, File } from '@freearhey/core' import { Stream, Category, Playlist } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type CategoriesGeneratorProps = { streams: Collection categories: Collection - logger: Logger + logFile: File } export class CategoriesGenerator implements Generator { streams: Collection categories: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, categories, logger }: CategoriesGeneratorProps) { + constructor({ streams, categories, logFile }: CategoriesGeneratorProps) { this.streams = streams this.categories = categories this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate() { @@ -37,8 +38,8 @@ export class CategoriesGenerator implements Generator { const playlist = new Playlist(categoryStreams, { public: true }) const filepath = `categories/${category.id}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -46,8 +47,8 @@ export class CategoriesGenerator implements Generator { const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'categories/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'category', filepath, count: playlist.streams.count() }) + EOL ) } } diff --git a/scripts/generators/countriesGenerator.ts b/scripts/generators/countriesGenerator.ts index c935da5a4..7dc707cf9 100644 --- a/scripts/generators/countriesGenerator.ts +++ b/scripts/generators/countriesGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' import { Country, Subdivision, Stream, Playlist } from '../models' +import { Collection, Storage, File } from '@freearhey/core' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type CountriesGeneratorProps = { streams: Collection countries: Collection - logger: Logger + logFile: File } export class CountriesGenerator implements Generator { streams: Collection countries: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, countries, logger }: CountriesGeneratorProps) { + constructor({ streams, countries, logFile }: CountriesGeneratorProps) { this.streams = streams this.countries = countries this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -36,8 +37,8 @@ export class CountriesGenerator implements Generator { const playlist = new Playlist(countryStreams, { public: true }) const filepath = `countries/${country.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'country', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'country', filepath, count: playlist.streams.count() }) + EOL ) country.getSubdivisions().forEach(async (subdivision: Subdivision) => { @@ -50,8 +51,8 @@ export class CountriesGenerator implements Generator { const playlist = new Playlist(subdivisionStreams, { public: true }) const filepath = `subdivisions/${subdivision.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'subdivision', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'subdivision', filepath, count: playlist.streams.count() }) + EOL ) }) }) @@ -60,12 +61,12 @@ export class CountriesGenerator implements Generator { const undefinedPlaylist = new Playlist(undefinedStreams, { public: true }) const undefinedFilepath = 'countries/undefined.m3u' await this.storage.save(undefinedFilepath, undefinedPlaylist.toString()) - this.logger.info( + this.logFile.append( JSON.stringify({ type: 'country', filepath: undefinedFilepath, count: undefinedPlaylist.streams.count() - }) + }) + EOL ) } } diff --git a/scripts/generators/indexCategoryGenerator.ts b/scripts/generators/indexCategoryGenerator.ts index 529ee8336..665f4cb0c 100644 --- a/scripts/generators/indexCategoryGenerator.ts +++ b/scripts/generators/indexCategoryGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Category } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexCategoryGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexCategoryGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexCategoryGeneratorProps) { + constructor({ streams, logFile }: IndexCategoryGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -48,6 +49,8 @@ export class IndexCategoryGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.category.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexCountryGenerator.ts b/scripts/generators/indexCountryGenerator.ts index c65a43734..82eb335ef 100644 --- a/scripts/generators/indexCountryGenerator.ts +++ b/scripts/generators/indexCountryGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Country } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexCountryGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexCountryGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexCountryGeneratorProps) { + constructor({ streams, logFile }: IndexCountryGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -56,6 +57,8 @@ export class IndexCountryGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.country.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexGenerator.ts b/scripts/generators/indexGenerator.ts index fafda061f..5cfa86c66 100644 --- a/scripts/generators/indexGenerator.ts +++ b/scripts/generators/indexGenerator.ts @@ -1,22 +1,23 @@ -import { Collection, Logger, Storage } from '@freearhey/core' +import { Collection, File, Storage } from '@freearhey/core' import { Stream, Playlist } from '../models' -import { Generator } from './generator' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexGeneratorProps) { + constructor({ streams, logFile }: IndexGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -27,6 +28,8 @@ export class IndexGenerator implements Generator { const playlist = new Playlist(sfwStreams, { public: true }) const filepath = 'index.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexLanguageGenerator.ts b/scripts/generators/indexLanguageGenerator.ts index 1116eb740..3df9f71f2 100644 --- a/scripts/generators/indexLanguageGenerator.ts +++ b/scripts/generators/indexLanguageGenerator.ts @@ -1,22 +1,23 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Language } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexLanguageGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexLanguageGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexLanguageGeneratorProps) { + constructor({ streams, logFile }: IndexLanguageGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -47,6 +48,8 @@ export class IndexLanguageGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.language.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexNsfwGenerator.ts b/scripts/generators/indexNsfwGenerator.ts index a89cf0a10..e1e98375b 100644 --- a/scripts/generators/indexNsfwGenerator.ts +++ b/scripts/generators/indexNsfwGenerator.ts @@ -1,22 +1,23 @@ -import { Collection, Logger, Storage } from '@freearhey/core' +import { Collection, File, Storage } from '@freearhey/core' import { Stream, Playlist } from '../models' -import { Generator } from './generator' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexNsfwGeneratorProps = { streams: Collection - logger: Logger + logFile: File } export class IndexNsfwGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: IndexNsfwGeneratorProps) { + constructor({ streams, logFile }: IndexNsfwGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -25,6 +26,8 @@ export class IndexNsfwGenerator implements Generator { const playlist = new Playlist(allStreams, { public: true }) const filepath = 'index.nsfw.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/indexRegionGenerator.ts b/scripts/generators/indexRegionGenerator.ts index 94537c9af..c462fcfce 100644 --- a/scripts/generators/indexRegionGenerator.ts +++ b/scripts/generators/indexRegionGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Stream, Playlist, Region } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type IndexRegionGeneratorProps = { streams: Collection regions: Collection - logger: Logger + logFile: File } export class IndexRegionGenerator implements Generator { streams: Collection regions: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, regions, logger }: IndexRegionGeneratorProps) { + constructor({ streams, regions, logFile }: IndexRegionGeneratorProps) { this.streams = streams this.regions = regions this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -58,6 +59,8 @@ export class IndexRegionGenerator implements Generator { const playlist = new Playlist(groupedStreams, { public: true }) const filepath = 'index.region.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'index', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/generators/languagesGenerator.ts b/scripts/generators/languagesGenerator.ts index 114fcddb2..f7ae9976e 100644 --- a/scripts/generators/languagesGenerator.ts +++ b/scripts/generators/languagesGenerator.ts @@ -1,19 +1,20 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Playlist, Language, Stream } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' -type LanguagesGeneratorProps = { streams: Collection; logger: Logger } +type LanguagesGeneratorProps = { streams: Collection; logFile: File } export class LanguagesGenerator implements Generator { streams: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, logger }: LanguagesGeneratorProps) { + constructor({ streams, logFile }: LanguagesGeneratorProps) { this.streams = streams this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -38,8 +39,8 @@ export class LanguagesGenerator implements Generator { const playlist = new Playlist(languageStreams, { public: true }) const filepath = `languages/${language.code}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -50,8 +51,8 @@ export class LanguagesGenerator implements Generator { const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'languages/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'language', filepath, count: playlist.streams.count() }) + EOL ) } } diff --git a/scripts/generators/regionsGenerator.ts b/scripts/generators/regionsGenerator.ts index fb0a5d688..4d649a351 100644 --- a/scripts/generators/regionsGenerator.ts +++ b/scripts/generators/regionsGenerator.ts @@ -1,25 +1,26 @@ -import { Generator } from './generator' -import { Collection, Storage, Logger } from '@freearhey/core' +import { Collection, Storage, File } from '@freearhey/core' import { Playlist, Region, Stream } from '../models' import { PUBLIC_DIR } from '../constants' +import { Generator } from './generator' +import { EOL } from 'node:os' type RegionsGeneratorProps = { streams: Collection regions: Collection - logger: Logger + logFile: File } export class RegionsGenerator implements Generator { streams: Collection regions: Collection storage: Storage - logger: Logger + logFile: File - constructor({ streams, regions, logger }: RegionsGeneratorProps) { + constructor({ streams, regions, logFile }: RegionsGeneratorProps) { this.streams = streams this.regions = regions this.storage = new Storage(PUBLIC_DIR) - this.logger = logger + this.logFile = logFile } async generate(): Promise { @@ -35,8 +36,8 @@ export class RegionsGenerator implements Generator { const playlist = new Playlist(regionStreams, { public: true }) const filepath = `regions/${region.code.toLowerCase()}.m3u` await this.storage.save(filepath, playlist.toString()) - this.logger.info( - JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + this.logFile.append( + JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + EOL ) }) @@ -44,18 +45,20 @@ export class RegionsGenerator implements Generator { const internationalPlaylist = new Playlist(internationalStreams, { public: true }) const internationalFilepath = 'regions/int.m3u' await this.storage.save(internationalFilepath, internationalPlaylist.toString()) - this.logger.info( + this.logFile.append( JSON.stringify({ type: 'region', filepath: internationalFilepath, count: internationalPlaylist.streams.count() - }) + }) + EOL ) const undefinedStreams = streams.filter((stream: Stream) => !stream.hasBroadcastArea()) const playlist = new Playlist(undefinedStreams, { public: true }) const filepath = 'regions/undefined.m3u' await this.storage.save(filepath, playlist.toString()) - this.logger.info(JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() })) + this.logFile.append( + JSON.stringify({ type: 'region', filepath, count: playlist.streams.count() }) + EOL + ) } } diff --git a/scripts/models/feed.ts b/scripts/models/feed.ts index 03ae31184..2b1fa9d34 100644 --- a/scripts/models/feed.ts +++ b/scripts/models/feed.ts @@ -144,8 +144,8 @@ export class Feed { this.broadcastRegions = regions.filter((region: Region) => { if (region.code === 'INT') return false - - return region.countryCodes.intersects(countriesCodes) + const intersected = region.countryCodes.intersects(countriesCodes) + return intersected.notEmpty() }) return this From 5ae1d81c4deb15838c3d36c3ed95af3ef84c7bdb Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 20:58:21 +0300 Subject: [PATCH 41/44] Update dependencies --- package-lock.json | 13 +++++++------ package.json | 1 + yarn.lock | 8 ++++---- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f48efc86..e09fd3949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "commander": "^8.3.0", "console-table-printer": "^2.12.1", "eslint": "^9.17.0", + "glob": "^11.0.2", "globals": "^16.0.0", "iptv-checker": "^0.29.1", "iptv-playlist-parser": "^0.13.0", @@ -4038,9 +4039,9 @@ } }, "node_modules/glob": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", - "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", + "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", @@ -9580,9 +9581,9 @@ } }, "glob": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", - "integrity": "sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", + "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", "requires": { "foreground-child": "^3.1.0", "jackspeak": "^4.0.1", diff --git a/package.json b/package.json index c03d75ccc..8b957e01c 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "commander": "^8.3.0", "console-table-printer": "^2.12.1", "eslint": "^9.17.0", + "glob": "^11.0.2", "globals": "^16.0.0", "iptv-checker": "^0.29.1", "iptv-playlist-parser": "^0.13.0", diff --git a/yarn.lock b/yarn.lock index 1491b68a9..188beea60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2082,10 +2082,10 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^11.0.0, glob@^11.0.1: - version "11.0.1" - resolved "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz" - integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== +glob@^11.0.0, glob@^11.0.1, glob@^11.0.2: + version "11.0.2" + resolved "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz" + integrity sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ== dependencies: foreground-child "^3.1.0" jackspeak "^4.0.1" From a8d68acd7bf09d2c962fb30fbec8dd9d88475084 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 21:25:18 +0300 Subject: [PATCH 42/44] Update test.test.ts --- tests/commands/playlist/test.test.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/tests/commands/playlist/test.test.ts b/tests/commands/playlist/test.test.ts index 515dbf824..813ed401d 100644 --- a/tests/commands/playlist/test.test.ts +++ b/tests/commands/playlist/test.test.ts @@ -1,5 +1,4 @@ import { execSync } from 'child_process' -import path from 'node:path' import os from 'node:os' type ExecError = { @@ -19,12 +18,8 @@ describe('playlist:test', () => { execSync(cmd, { encoding: 'utf8' }) } catch (error) { if (process.env.DEBUG === 'true') console.log(cmd, error) - expect((error as ExecError).stdout).toContain(slash('playlist_test/ag.m3u')) + expect((error as ExecError).stdout).toContain('playlist_test/ag.m3u') expect((error as ExecError).stdout).toContain('2 problems (1 errors, 1 warnings)') } }) }) - -function slash(filepath: string) { - return filepath.split(path.sep).join(path.posix.sep) -} From b0a299fad7e45f33d654215902dd83a06f6b156b Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 23:34:43 +0300 Subject: [PATCH 43/44] Update scripts --- scripts/commands/playlist/test.ts | 7 ++++++- scripts/core/streamTester.ts | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/commands/playlist/test.ts b/scripts/commands/playlist/test.ts index a37b7ecd0..a5add7cb6 100644 --- a/scripts/commands/playlist/test.ts +++ b/scripts/commands/playlist/test.ts @@ -154,9 +154,14 @@ function drawTable() { } } -function onFinish() { +function onFinish(error) { clearInterval(interval) + if (error) { + console.error(error) + process.exit(1) + } + drawTable() console.log(chalk.red(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`)) diff --git a/scripts/core/streamTester.ts b/scripts/core/streamTester.ts index 89c44de74..860844b40 100644 --- a/scripts/core/streamTester.ts +++ b/scripts/core/streamTester.ts @@ -18,8 +18,8 @@ export class StreamTester { return this.checker.checkStream({ url: stream.url, http: { - referrer: stream.getHttpReferrer(), - 'user-agent': stream.getHttpUserAgent() + referrer: stream.getReferrer(), + 'user-agent': stream.getUserAgent() } }) } From 01c5aecb46c730704ac2e827a05114436dad241e Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Wed, 23 Apr 2025 23:51:39 +0300 Subject: [PATCH 44/44] Update scripts --- scripts/commands/playlist/test.ts | 10 +++++++--- scripts/commands/playlist/validate.ts | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/scripts/commands/playlist/test.ts b/scripts/commands/playlist/test.ts index a5add7cb6..777c19f8d 100644 --- a/scripts/commands/playlist/test.ts +++ b/scripts/commands/playlist/test.ts @@ -164,10 +164,14 @@ function onFinish(error) { drawTable() - console.log(chalk.red(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`)) + if (errors > 0 || warnings > 0) { + console.log( + chalk.red(`\n${errors + warnings} problems (${errors} errors, ${warnings} warnings)`) + ) - if (errors > 0) { - process.exit(1) + if (errors > 0) { + process.exit(1) + } } process.exit(0) diff --git a/scripts/commands/playlist/validate.ts b/scripts/commands/playlist/validate.ts index e089f7eff..f1f7742eb 100644 --- a/scripts/commands/playlist/validate.ts +++ b/scripts/commands/playlist/validate.ts @@ -109,16 +109,18 @@ async function main() { } } - console.log( - chalk.red( - `\n${ - errors.count() + warnings.count() - } problems (${errors.count()} errors, ${warnings.count()} warnings)` + if (errors.count() || warnings.count()) { + console.log( + chalk.red( + `\n${ + errors.count() + warnings.count() + } problems (${errors.count()} errors, ${warnings.count()} warnings)` + ) ) - ) - if (errors.count()) { - process.exit(1) + if (errors.count()) { + process.exit(1) + } } }