diff --git a/README.md b/README.md
index 8f1e6a066d..85985f1ce7 100644
--- a/README.md
+++ b/README.md
@@ -59,10 +59,10 @@ Same thing, but split up into separate files:
| Category | Channels | Playlist |
- | Animation | 50 | https://iptv-org.github.io/iptv/categories/animation.m3u |
+ | Animation | 51 | https://iptv-org.github.io/iptv/categories/animation.m3u |
| Auto | 15 | https://iptv-org.github.io/iptv/categories/auto.m3u |
| Business | 57 | https://iptv-org.github.io/iptv/categories/business.m3u |
- | Classic | 55 | https://iptv-org.github.io/iptv/categories/classic.m3u |
+ | Classic | 54 | https://iptv-org.github.io/iptv/categories/classic.m3u |
| Comedy | 57 | https://iptv-org.github.io/iptv/categories/comedy.m3u |
| Cooking | 23 | https://iptv-org.github.io/iptv/categories/cooking.m3u |
| Culture | 77 | https://iptv-org.github.io/iptv/categories/culture.m3u |
@@ -70,24 +70,24 @@ Same thing, but split up into separate files:
| Education | 115 | https://iptv-org.github.io/iptv/categories/education.m3u |
| Entertainment | 354 | https://iptv-org.github.io/iptv/categories/entertainment.m3u |
| Family | 40 | https://iptv-org.github.io/iptv/categories/family.m3u |
- | General | 1119 | https://iptv-org.github.io/iptv/categories/general.m3u |
- | Kids | 182 | https://iptv-org.github.io/iptv/categories/kids.m3u |
+ | General | 1121 | https://iptv-org.github.io/iptv/categories/general.m3u |
+ | Kids | 183 | https://iptv-org.github.io/iptv/categories/kids.m3u |
| Legislative | 167 | https://iptv-org.github.io/iptv/categories/legislative.m3u |
- | Lifestyle | 78 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
- | Movies | 274 | https://iptv-org.github.io/iptv/categories/movies.m3u |
+ | Lifestyle | 77 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
+ | Movies | 273 | https://iptv-org.github.io/iptv/categories/movies.m3u |
| Music | 484 | https://iptv-org.github.io/iptv/categories/music.m3u |
- | News | 705 | https://iptv-org.github.io/iptv/categories/news.m3u |
+ | News | 703 | https://iptv-org.github.io/iptv/categories/news.m3u |
| Outdoor | 44 | https://iptv-org.github.io/iptv/categories/outdoor.m3u |
| Relax | 16 | https://iptv-org.github.io/iptv/categories/relax.m3u |
- | Religious | 438 | https://iptv-org.github.io/iptv/categories/religious.m3u |
+ | Religious | 442 | https://iptv-org.github.io/iptv/categories/religious.m3u |
| Science | 25 | https://iptv-org.github.io/iptv/categories/science.m3u |
- | Series | 159 | https://iptv-org.github.io/iptv/categories/series.m3u |
+ | Series | 158 | https://iptv-org.github.io/iptv/categories/series.m3u |
| Shop | 74 | https://iptv-org.github.io/iptv/categories/shop.m3u |
- | Sports | 206 | https://iptv-org.github.io/iptv/categories/sports.m3u |
+ | Sports | 205 | https://iptv-org.github.io/iptv/categories/sports.m3u |
| Travel | 30 | https://iptv-org.github.io/iptv/categories/travel.m3u |
| Weather | 14 | https://iptv-org.github.io/iptv/categories/weather.m3u |
| XXX | 46 | https://iptv-org.github.io/iptv/categories/xxx.m3u |
- | Undefined | 5249 | https://iptv-org.github.io/iptv/categories/undefined.m3u |
+ | Undefined | 5219 | https://iptv-org.github.io/iptv/categories/undefined.m3u |
@@ -118,7 +118,7 @@ Same thing, but split up into separate files:
| Albanian | 58 | https://iptv-org.github.io/iptv/languages/sqi.m3u |
| Alemannic | 1 | https://iptv-org.github.io/iptv/languages/gsw.m3u |
| Amharic | 5 | https://iptv-org.github.io/iptv/languages/amh.m3u |
- | Arabic | 375 | https://iptv-org.github.io/iptv/languages/ara.m3u |
+ | Arabic | 367 | https://iptv-org.github.io/iptv/languages/ara.m3u |
| Armenian | 29 | https://iptv-org.github.io/iptv/languages/hye.m3u |
| Assamese | 7 | https://iptv-org.github.io/iptv/languages/asm.m3u |
| Assyrian Neo-Aramaic | 1 | https://iptv-org.github.io/iptv/languages/aii.m3u |
@@ -134,7 +134,7 @@ Same thing, but split up into separate files:
| Catalan | 50 | https://iptv-org.github.io/iptv/languages/cat.m3u |
| Chhattisgarhi | 1 | https://iptv-org.github.io/iptv/languages/hne.m3u |
| Chinese | 150 | https://iptv-org.github.io/iptv/languages/zho.m3u |
- | Croatian | 13 | https://iptv-org.github.io/iptv/languages/hrv.m3u |
+ | Croatian | 14 | https://iptv-org.github.io/iptv/languages/hrv.m3u |
| Czech | 36 | https://iptv-org.github.io/iptv/languages/ces.m3u |
| Danish | 20 | https://iptv-org.github.io/iptv/languages/dan.m3u |
| Dhanwar (Nepal) | 1 | https://iptv-org.github.io/iptv/languages/dhw.m3u |
@@ -142,21 +142,21 @@ Same thing, but split up into separate files:
| Dholuo | 1 | https://iptv-org.github.io/iptv/languages/luo.m3u |
| Dimili | 1 | https://iptv-org.github.io/iptv/languages/zza.m3u |
| Dutch | 191 | https://iptv-org.github.io/iptv/languages/nld.m3u |
- | English | 2171 | https://iptv-org.github.io/iptv/languages/eng.m3u |
+ | English | 2174 | https://iptv-org.github.io/iptv/languages/eng.m3u |
| Estonian | 9 | https://iptv-org.github.io/iptv/languages/est.m3u |
| Ewe | 1 | https://iptv-org.github.io/iptv/languages/ewe.m3u |
| Faroese | 1 | https://iptv-org.github.io/iptv/languages/fao.m3u |
| Fataleka | 1 | https://iptv-org.github.io/iptv/languages/far.m3u |
| Filipino | 1 | https://iptv-org.github.io/iptv/languages/fil.m3u |
- | Finnish | 25 | https://iptv-org.github.io/iptv/languages/fin.m3u |
- | French | 383 | https://iptv-org.github.io/iptv/languages/fra.m3u |
+ | Finnish | 24 | https://iptv-org.github.io/iptv/languages/fin.m3u |
+ | French | 387 | https://iptv-org.github.io/iptv/languages/fra.m3u |
| Galician | 12 | https://iptv-org.github.io/iptv/languages/glg.m3u |
| Galolen | 1 | https://iptv-org.github.io/iptv/languages/gal.m3u |
| Georgian | 8 | https://iptv-org.github.io/iptv/languages/kat.m3u |
- | German | 280 | https://iptv-org.github.io/iptv/languages/deu.m3u |
+ | German | 278 | https://iptv-org.github.io/iptv/languages/deu.m3u |
| Gikuyu | 2 | https://iptv-org.github.io/iptv/languages/kik.m3u |
| Goan Konkani | 1 | https://iptv-org.github.io/iptv/languages/gom.m3u |
- | Greek | 122 | https://iptv-org.github.io/iptv/languages/ell.m3u |
+ | Greek | 121 | https://iptv-org.github.io/iptv/languages/ell.m3u |
| Greenlandic | 2 | https://iptv-org.github.io/iptv/languages/kal.m3u |
| Gujarati | 10 | https://iptv-org.github.io/iptv/languages/guj.m3u |
| Haitian | 5 | https://iptv-org.github.io/iptv/languages/hat.m3u |
@@ -169,15 +169,15 @@ Same thing, but split up into separate files:
| Inuktitut | 1 | https://iptv-org.github.io/iptv/languages/iku.m3u |
| Irish | 5 | https://iptv-org.github.io/iptv/languages/gle.m3u |
| Italian | 330 | https://iptv-org.github.io/iptv/languages/ita.m3u |
- | Japanese | 41 | https://iptv-org.github.io/iptv/languages/jpn.m3u |
+ | Japanese | 34 | https://iptv-org.github.io/iptv/languages/jpn.m3u |
| Javanese | 3 | https://iptv-org.github.io/iptv/languages/jav.m3u |
| Kannada | 18 | https://iptv-org.github.io/iptv/languages/kan.m3u |
| Kazakh | 34 | https://iptv-org.github.io/iptv/languages/kaz.m3u |
| Khmer | 12 | https://iptv-org.github.io/iptv/languages/khm.m3u |
| Kinyarwanda | 3 | https://iptv-org.github.io/iptv/languages/kin.m3u |
- | Kirghiz | 7 | https://iptv-org.github.io/iptv/languages/kir.m3u |
+ | Kirghiz | 8 | https://iptv-org.github.io/iptv/languages/kir.m3u |
| Konkani (macrolanguage) | 2 | https://iptv-org.github.io/iptv/languages/kok.m3u |
- | Korean | 112 | https://iptv-org.github.io/iptv/languages/kor.m3u |
+ | Korean | 111 | https://iptv-org.github.io/iptv/languages/kor.m3u |
| Kurdish | 24 | https://iptv-org.github.io/iptv/languages/kur.m3u |
| Lahnda | 1 | https://iptv-org.github.io/iptv/languages/lah.m3u |
| Lao | 9 | https://iptv-org.github.io/iptv/languages/lao.m3u |
@@ -207,7 +207,7 @@ Same thing, but split up into separate files:
| Portuguese | 361 | https://iptv-org.github.io/iptv/languages/por.m3u |
| Romanian | 116 | https://iptv-org.github.io/iptv/languages/ron.m3u |
| Romany | 1 | https://iptv-org.github.io/iptv/languages/rom.m3u |
- | Russian | 302 | https://iptv-org.github.io/iptv/languages/rus.m3u |
+ | Russian | 304 | https://iptv-org.github.io/iptv/languages/rus.m3u |
| Saint Lucian Creole French | 2 | https://iptv-org.github.io/iptv/languages/acf.m3u |
| Santali | 1 | https://iptv-org.github.io/iptv/languages/sat.m3u |
| Serbian | 82 | https://iptv-org.github.io/iptv/languages/srp.m3u |
@@ -217,7 +217,7 @@ Same thing, but split up into separate files:
| Slovak | 44 | https://iptv-org.github.io/iptv/languages/slk.m3u |
| Slovenian | 16 | https://iptv-org.github.io/iptv/languages/slv.m3u |
| Somali | 8 | https://iptv-org.github.io/iptv/languages/som.m3u |
- | Spanish | 1846 | https://iptv-org.github.io/iptv/languages/spa.m3u |
+ | Spanish | 1848 | https://iptv-org.github.io/iptv/languages/spa.m3u |
| Swahili | 14 | https://iptv-org.github.io/iptv/languages/swa.m3u |
| Swedish | 19 | https://iptv-org.github.io/iptv/languages/swe.m3u |
| Tagalog | 14 | https://iptv-org.github.io/iptv/languages/tgl.m3u |
@@ -238,7 +238,7 @@ Same thing, but split up into separate files:
| Wolof | 2 | https://iptv-org.github.io/iptv/languages/wol.m3u |
| Yucatec Maya | 1 | https://iptv-org.github.io/iptv/languages/yua.m3u |
| Yue Chinese | 10 | https://iptv-org.github.io/iptv/languages/yue.m3u |
- | Undefined | 1275 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
+ | Undefined | 1253 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
@@ -298,8 +298,8 @@ Same thing, but split up into separate files:
| Tucuman | 7 | https://iptv-org.github.io/iptv/subdivisions/ar-t.m3u |
| ๐ฆ๐ฒ Armenia | 40 | https://iptv-org.github.io/iptv/countries/am.m3u |
| ๐ฆ๐ผ Aruba | 6 | https://iptv-org.github.io/iptv/countries/aw.m3u |
- | ๐ฆ๐บ Australia | 38 | https://iptv-org.github.io/iptv/countries/au.m3u |
- | ๐ฆ๐น Austria | 48 | https://iptv-org.github.io/iptv/countries/at.m3u |
+ | ๐ฆ๐บ Australia | 51 | https://iptv-org.github.io/iptv/countries/au.m3u |
+ | ๐ฆ๐น Austria | 47 | https://iptv-org.github.io/iptv/countries/at.m3u |
| ๐ฆ๐ฟ Azerbaijan | 33 | https://iptv-org.github.io/iptv/countries/az.m3u |
| ๐ง๐ธ Bahamas | 7 | https://iptv-org.github.io/iptv/countries/bs.m3u |
| ๐ง๐ญ Bahrain | 38 | https://iptv-org.github.io/iptv/countries/bh.m3u |
@@ -344,7 +344,7 @@ Same thing, but split up into separate files:
| ๐ป๐ฌ British Virgin Islands | 6 | https://iptv-org.github.io/iptv/countries/vg.m3u |
| ๐ง๐ณ Brunei | 31 | https://iptv-org.github.io/iptv/countries/bn.m3u |
| ๐ง๐ฌ Bulgaria | 39 | https://iptv-org.github.io/iptv/countries/bg.m3u |
- | ๐ง๐ซ Burkina Faso | 14 | https://iptv-org.github.io/iptv/countries/bf.m3u |
+ | ๐ง๐ซ Burkina Faso | 15 | https://iptv-org.github.io/iptv/countries/bf.m3u |
| ๐ง๐ฎ Burundi | 12 | https://iptv-org.github.io/iptv/countries/bi.m3u |
| ๐ฐ๐ญ Cambodia | 42 | https://iptv-org.github.io/iptv/countries/kh.m3u |
| ๐จ๐ฒ Cameroon | 39 | https://iptv-org.github.io/iptv/countries/cm.m3u |
@@ -398,10 +398,10 @@ Same thing, but split up into separate files:
| ๐จ๐ท Costa Rica | 96 | https://iptv-org.github.io/iptv/countries/cr.m3u |
| Puntarenas | 1 | https://iptv-org.github.io/iptv/subdivisions/cr-p.m3u |
| San Jose | 1 | https://iptv-org.github.io/iptv/subdivisions/cr-sj.m3u |
- | ๐ญ๐ท Croatia | 27 | https://iptv-org.github.io/iptv/countries/hr.m3u |
+ | ๐ญ๐ท Croatia | 28 | https://iptv-org.github.io/iptv/countries/hr.m3u |
| ๐จ๐บ Cuba | 53 | https://iptv-org.github.io/iptv/countries/cu.m3u |
| ๐จ๐ผ Curacao | 10 | https://iptv-org.github.io/iptv/countries/cw.m3u |
- | ๐จ๐พ Cyprus | 40 | https://iptv-org.github.io/iptv/countries/cy.m3u |
+ | ๐จ๐พ Cyprus | 39 | https://iptv-org.github.io/iptv/countries/cy.m3u |
| ๐จ๐ฟ Czech Republic | 43 | https://iptv-org.github.io/iptv/countries/cz.m3u |
| ๐จ๐ฉ Democratic Republic of the Congo | 33 | https://iptv-org.github.io/iptv/countries/cd.m3u |
| ๐ฉ๐ฐ Denmark | 34 | https://iptv-org.github.io/iptv/countries/dk.m3u |
@@ -430,17 +430,17 @@ Same thing, but split up into separate files:
| ๐ซ๐ฐ Falkland Islands | 3 | https://iptv-org.github.io/iptv/countries/fk.m3u |
| ๐ซ๐ด Faroe Islands | 1 | https://iptv-org.github.io/iptv/countries/fo.m3u |
| ๐ซ๐ฏ Fiji | 7 | https://iptv-org.github.io/iptv/countries/fj.m3u |
- | ๐ซ๐ฎ Finland | 41 | https://iptv-org.github.io/iptv/countries/fi.m3u |
+ | ๐ซ๐ฎ Finland | 40 | https://iptv-org.github.io/iptv/countries/fi.m3u |
| Keski-Suomi | 1 | https://iptv-org.github.io/iptv/subdivisions/fi-08.m3u |
| Pohjanmaa | 3 | https://iptv-org.github.io/iptv/subdivisions/fi-12.m3u |
- | ๐ซ๐ท France | 262 | https://iptv-org.github.io/iptv/countries/fr.m3u |
+ | ๐ซ๐ท France | 265 | https://iptv-org.github.io/iptv/countries/fr.m3u |
| ๐ฌ๐ซ French Guiana | 7 | https://iptv-org.github.io/iptv/countries/gf.m3u |
| ๐ต๐ซ French Polynesia | 7 | https://iptv-org.github.io/iptv/countries/pf.m3u |
| ๐น๐ซ French Southern Territories | 12 | https://iptv-org.github.io/iptv/countries/tf.m3u |
| ๐ฌ๐ฆ Gabon | 14 | https://iptv-org.github.io/iptv/countries/ga.m3u |
| ๐ฌ๐ฒ Gambia | 14 | https://iptv-org.github.io/iptv/countries/gm.m3u |
| ๐ฌ๐ช Georgia | 20 | https://iptv-org.github.io/iptv/countries/ge.m3u |
- | ๐ฉ๐ช Germany | 265 | https://iptv-org.github.io/iptv/countries/de.m3u |
+ | ๐ฉ๐ช Germany | 264 | https://iptv-org.github.io/iptv/countries/de.m3u |
| ๐ฌ๐ญ Ghana | 36 | https://iptv-org.github.io/iptv/countries/gh.m3u |
| ๐ฌ๐ท Greece | 117 | https://iptv-org.github.io/iptv/countries/gr.m3u |
| ๐ฌ๐ฑ Greenland | 6 | https://iptv-org.github.io/iptv/countries/gl.m3u |
@@ -501,7 +501,7 @@ Same thing, but split up into separate files:
| ๐ฎ๐ถ Iraq | 128 | https://iptv-org.github.io/iptv/countries/iq.m3u |
| ๐ฎ๐ช Ireland | 22 | https://iptv-org.github.io/iptv/countries/ie.m3u |
| ๐ฎ๐ฑ Israel | 21 | https://iptv-org.github.io/iptv/countries/il.m3u |
- | ๐ฎ๐น Italy | 409 | https://iptv-org.github.io/iptv/countries/it.m3u |
+ | ๐ฎ๐น Italy | 408 | https://iptv-org.github.io/iptv/countries/it.m3u |
| ๐จ๐ฎ Ivory Coast | 30 | https://iptv-org.github.io/iptv/countries/ci.m3u |
| ๐ฏ๐ฒ Jamaica | 11 | https://iptv-org.github.io/iptv/countries/jm.m3u |
| ๐ฏ๐ต Japan | 47 | https://iptv-org.github.io/iptv/countries/jp.m3u |
@@ -510,8 +510,8 @@ Same thing, but split up into separate files:
| ๐ฐ๐ช Kenya | 54 | https://iptv-org.github.io/iptv/countries/ke.m3u |
| ๐ฐ๐ฎ Kiribati | 6 | https://iptv-org.github.io/iptv/countries/ki.m3u |
| ๐ฝ๐ฐ Kosovo | 25 | https://iptv-org.github.io/iptv/countries/xk.m3u |
- | ๐ฐ๐ผ Kuwait | 47 | https://iptv-org.github.io/iptv/countries/kw.m3u |
- | ๐ฐ๐ฌ Kyrgyzstan | 9 | https://iptv-org.github.io/iptv/countries/kg.m3u |
+ | ๐ฐ๐ผ Kuwait | 38 | https://iptv-org.github.io/iptv/countries/kw.m3u |
+ | ๐ฐ๐ฌ Kyrgyzstan | 10 | https://iptv-org.github.io/iptv/countries/kg.m3u |
| ๐ฑ๐ฆ Laos | 44 | https://iptv-org.github.io/iptv/countries/la.m3u |
| ๐ฑ๐ป Latvia | 25 | https://iptv-org.github.io/iptv/countries/lv.m3u |
| ๐ฑ๐ง Lebanon | 57 | https://iptv-org.github.io/iptv/countries/lb.m3u |
@@ -557,7 +557,7 @@ Same thing, but split up into separate files:
| Zacatecas | 1 | https://iptv-org.github.io/iptv/subdivisions/mx-zac.m3u |
| ๐ซ๐ฒ Micronesia | 6 | https://iptv-org.github.io/iptv/countries/fm.m3u |
| ๐ฒ๐ฉ Moldova | 30 | https://iptv-org.github.io/iptv/countries/md.m3u |
- | ๐ฒ๐จ Monaco | 12 | https://iptv-org.github.io/iptv/countries/mc.m3u |
+ | ๐ฒ๐จ Monaco | 13 | https://iptv-org.github.io/iptv/countries/mc.m3u |
| ๐ฒ๐ณ Mongolia | 26 | https://iptv-org.github.io/iptv/countries/mn.m3u |
| ๐ฒ๐ช Montenegro | 18 | https://iptv-org.github.io/iptv/countries/me.m3u |
| Ulcinj | 1 | https://iptv-org.github.io/iptv/subdivisions/me-20.m3u |
@@ -643,7 +643,7 @@ Same thing, but split up into separate files:
| ๐ธ๐ด Somalia | 61 | https://iptv-org.github.io/iptv/countries/so.m3u |
| ๐ฟ๐ฆ South Africa | 36 | https://iptv-org.github.io/iptv/countries/za.m3u |
| ๐ฌ๐ธ South Georgia and the South Sandwich Islands | 3 | https://iptv-org.github.io/iptv/countries/gs.m3u |
- | ๐ฐ๐ท South Korea | 112 | https://iptv-org.github.io/iptv/countries/kr.m3u |
+ | ๐ฐ๐ท South Korea | 111 | https://iptv-org.github.io/iptv/countries/kr.m3u |
| Busan-gwangyeoksi | 2 | https://iptv-org.github.io/iptv/subdivisions/kr-26.m3u |
| Chungcheongbuk-do | 2 | https://iptv-org.github.io/iptv/subdivisions/kr-43.m3u |
| Daegu-gwangyeoksi | 2 | https://iptv-org.github.io/iptv/subdivisions/kr-27.m3u |
@@ -701,10 +701,10 @@ Same thing, but split up into separate files:
| ๐ฆ๐ช United Arab Emirates | 76 | https://iptv-org.github.io/iptv/countries/ae.m3u |
| ๐ฌ๐ง United Kingdom | 194 | https://iptv-org.github.io/iptv/countries/uk.m3u |
| Wales | 2 | https://iptv-org.github.io/iptv/subdivisions/gb-wls.m3u |
- | ๐บ๐ธ United States | 1882 | https://iptv-org.github.io/iptv/countries/us.m3u |
+ | ๐บ๐ธ United States | 1848 | https://iptv-org.github.io/iptv/countries/us.m3u |
| Alabama | 4 | https://iptv-org.github.io/iptv/subdivisions/us-al.m3u |
| Alaska | 2 | https://iptv-org.github.io/iptv/subdivisions/us-ak.m3u |
- | Arizona | 12 | https://iptv-org.github.io/iptv/subdivisions/us-az.m3u |
+ | Arizona | 11 | https://iptv-org.github.io/iptv/subdivisions/us-az.m3u |
| Arkansas | 4 | https://iptv-org.github.io/iptv/subdivisions/us-ar.m3u |
| California | 146 | https://iptv-org.github.io/iptv/subdivisions/us-ca.m3u |
| Colorado | 19 | https://iptv-org.github.io/iptv/subdivisions/us-co.m3u |
@@ -757,7 +757,7 @@ Same thing, but split up into separate files:
| ๐บ๐ฟ Uzbekistan | 9 | https://iptv-org.github.io/iptv/countries/uz.m3u |
| ๐ป๐บ Vanuatu | 6 | https://iptv-org.github.io/iptv/countries/vu.m3u |
| ๐ป๐ฆ Vatican City | 19 | https://iptv-org.github.io/iptv/countries/va.m3u |
- | ๐ป๐ช Venezuela | 107 | https://iptv-org.github.io/iptv/countries/ve.m3u |
+ | ๐ป๐ช Venezuela | 108 | https://iptv-org.github.io/iptv/countries/ve.m3u |
| Aragua | 2 | https://iptv-org.github.io/iptv/subdivisions/ve-d.m3u |
| Lara | 1 | https://iptv-org.github.io/iptv/subdivisions/ve-k.m3u |
| ๐ป๐ณ Vietnam | 125 | https://iptv-org.github.io/iptv/countries/vn.m3u |
@@ -792,38 +792,38 @@ Same thing, but split up into separate files:
| Region | Channels | Playlist |
- | Africa | 423 | https://iptv-org.github.io/iptv/regions/afr.m3u |
- | Americas | 3801 | https://iptv-org.github.io/iptv/regions/amer.m3u |
- | Arab world | 426 | https://iptv-org.github.io/iptv/regions/arab.m3u |
- | Asia | 2947 | https://iptv-org.github.io/iptv/regions/asia.m3u |
- | Asia-Pacific | 1912 | https://iptv-org.github.io/iptv/regions/apac.m3u |
+ | Africa | 424 | https://iptv-org.github.io/iptv/regions/afr.m3u |
+ | Americas | 3767 | https://iptv-org.github.io/iptv/regions/amer.m3u |
+ | Arab world | 417 | https://iptv-org.github.io/iptv/regions/arab.m3u |
+ | Asia | 2937 | https://iptv-org.github.io/iptv/regions/asia.m3u |
+ | Asia-Pacific | 1924 | https://iptv-org.github.io/iptv/regions/apac.m3u |
| Association of Southeast Asian Nations | 471 | https://iptv-org.github.io/iptv/regions/asean.m3u |
| Benelux | 240 | https://iptv-org.github.io/iptv/regions/benelux.m3u |
| Caribbean | 251 | https://iptv-org.github.io/iptv/regions/carib.m3u |
| Central America | 205 | https://iptv-org.github.io/iptv/regions/cenamer.m3u |
- | Central and Eastern Europe | 1019 | https://iptv-org.github.io/iptv/regions/cee.m3u |
- | Central Asia | 64 | https://iptv-org.github.io/iptv/regions/cas.m3u |
- | Commonwealth of Independent States | 460 | https://iptv-org.github.io/iptv/regions/cis.m3u |
- | Europe | 3241 | https://iptv-org.github.io/iptv/regions/eur.m3u |
- | Europe, the Middle East and Africa | 4056 | https://iptv-org.github.io/iptv/regions/emea.m3u |
- | Hispanic America | 1470 | https://iptv-org.github.io/iptv/regions/hispam.m3u |
- | Latin America | 1779 | https://iptv-org.github.io/iptv/regions/latam.m3u |
- | Latin America and the Caribbean | 1801 | https://iptv-org.github.io/iptv/regions/lac.m3u |
+ | Central and Eastern Europe | 1020 | https://iptv-org.github.io/iptv/regions/cee.m3u |
+ | Central Asia | 65 | https://iptv-org.github.io/iptv/regions/cas.m3u |
+ | Commonwealth of Independent States | 461 | https://iptv-org.github.io/iptv/regions/cis.m3u |
+ | Europe | 3240 | https://iptv-org.github.io/iptv/regions/eur.m3u |
+ | Europe, the Middle East and Africa | 4047 | https://iptv-org.github.io/iptv/regions/emea.m3u |
+ | Hispanic America | 1471 | https://iptv-org.github.io/iptv/regions/hispam.m3u |
+ | Latin America | 1780 | https://iptv-org.github.io/iptv/regions/latam.m3u |
+ | Latin America and the Caribbean | 1802 | https://iptv-org.github.io/iptv/regions/lac.m3u |
| Maghreb | 60 | https://iptv-org.github.io/iptv/regions/maghreb.m3u |
- | Middle East | 698 | https://iptv-org.github.io/iptv/regions/mideast.m3u |
- | Middle East and North Africa | 749 | https://iptv-org.github.io/iptv/regions/mena.m3u |
- | Nordics | 97 | https://iptv-org.github.io/iptv/regions/nord.m3u |
- | North America | 2613 | https://iptv-org.github.io/iptv/regions/noram.m3u |
- | Northern America | 2016 | https://iptv-org.github.io/iptv/regions/nam.m3u |
- | Northern Europe | 126 | https://iptv-org.github.io/iptv/regions/neur.m3u |
- | Oceania | 55 | https://iptv-org.github.io/iptv/regions/oce.m3u |
- | South America | 1193 | https://iptv-org.github.io/iptv/regions/southam.m3u |
+ | Middle East | 688 | https://iptv-org.github.io/iptv/regions/mideast.m3u |
+ | Middle East and North Africa | 739 | https://iptv-org.github.io/iptv/regions/mena.m3u |
+ | Nordics | 96 | https://iptv-org.github.io/iptv/regions/nord.m3u |
+ | North America | 2579 | https://iptv-org.github.io/iptv/regions/noram.m3u |
+ | Northern America | 1982 | https://iptv-org.github.io/iptv/regions/nam.m3u |
+ | Northern Europe | 125 | https://iptv-org.github.io/iptv/regions/neur.m3u |
+ | Oceania | 68 | https://iptv-org.github.io/iptv/regions/oce.m3u |
+ | South America | 1194 | https://iptv-org.github.io/iptv/regions/southam.m3u |
| South Asia | 593 | https://iptv-org.github.io/iptv/regions/sas.m3u |
| Southeast Asia | 492 | https://iptv-org.github.io/iptv/regions/sea.m3u |
- | Southern Europe | 1097 | https://iptv-org.github.io/iptv/regions/ser.m3u |
- | Sub-Saharan Africa | 339 | https://iptv-org.github.io/iptv/regions/ssa.m3u |
- | West Africa | 139 | https://iptv-org.github.io/iptv/regions/wafr.m3u |
- | Western Europe | 1002 | https://iptv-org.github.io/iptv/regions/wer.m3u |
+ | Southern Europe | 1095 | https://iptv-org.github.io/iptv/regions/ser.m3u |
+ | Sub-Saharan Africa | 340 | https://iptv-org.github.io/iptv/regions/ssa.m3u |
+ | West Africa | 140 | https://iptv-org.github.io/iptv/regions/wafr.m3u |
+ | Western Europe | 1003 | https://iptv-org.github.io/iptv/regions/wer.m3u |
diff --git a/scripts/commands/report/create.ts b/scripts/commands/report/create.ts
index d3da0a9d40..4327a4a59c 100644
--- a/scripts/commands/report/create.ts
+++ b/scripts/commands/report/create.ts
@@ -27,22 +27,25 @@ async function main() {
const streams = await parser.parse(files)
const groupedStreams = streams.groupBy((stream: Stream) => stream.url)
- logger.info('loading issue from github...')
- const issues = await loader.load({ labels: ['streams:add'] })
-
logger.info('creating report...')
+ let report = new Collection()
+
+ logger.info('checking streams:add requests...')
+ const addRequests = await loader.load({ labels: ['streams:add'] })
const buffer = new Dictionary()
- const report = issues.map((issue: Issue) => {
+ addRequests.forEach((issue: Issue) => {
const channelId = issue.data.get('channel_id') || undefined
const streamUrl = issue.data.get('stream_url') || undefined
const result = new Dictionary({
issueNumber: issue.number,
+ type: 'streams:add',
channelId,
status: undefined
})
- if (!channelId || !streamUrl) result.set('status', 'error')
+ if (!channelId) result.set('status', 'missing_id')
+ else if (!streamUrl) result.set('status', 'missing_link')
else if (groupedBlocklist.has(channelId)) result.set('status', 'blocked')
else if (groupedChannels.missing(channelId)) result.set('status', 'invalid_id')
else if (groupedStreams.has(streamUrl)) result.set('status', 'fullfilled')
@@ -51,9 +54,51 @@ async function main() {
buffer.set(streamUrl, true)
- return result.data()
+ report.add(result.data())
})
+ logger.info('checking streams:edit requests...')
+ const editRequests = await loader.load({ labels: ['streams:edit'] })
+ editRequests.forEach((issue: Issue) => {
+ const channelId = issue.data.get('channel_id') || undefined
+ const streamUrl = issue.data.get('stream_url') || undefined
+
+ const result = new Dictionary({
+ issueNumber: issue.number,
+ type: 'streams:edit',
+ channelId,
+ status: undefined
+ })
+
+ if (!streamUrl) result.set('status', 'missing_link')
+ else if (groupedStreams.missing(streamUrl)) result.set('status', 'invalid_link')
+ else if (channelId && groupedChannels.missing(channelId)) result.set('status', 'invalid_id')
+ else result.set('status', 'pending')
+
+ report.add(result.data())
+ })
+
+ logger.info('checking broken streams reports...')
+ const brokenStreamReports = await loader.load({ labels: ['broken stream'] })
+ brokenStreamReports.forEach((issue: Issue) => {
+ const streamUrl = issue.data.get('stream_url') || undefined
+
+ const result = new Dictionary({
+ issueNumber: issue.number,
+ type: 'broken stream',
+ channelId: undefined,
+ status: undefined
+ })
+
+ if (!streamUrl) result.set('status', 'missing_link')
+ else if (groupedStreams.missing(streamUrl)) result.set('status', 'invalid_link')
+ else result.set('status', 'pending')
+
+ report.add(result.data())
+ })
+
+ report = report.orderBy(item => item.issueNumber)
+
console.table(report.all())
}
diff --git a/scripts/core/issueLoader.ts b/scripts/core/issueLoader.ts
index 572e9d789c..9e0ecfaece 100644
--- a/scripts/core/issueLoader.ts
+++ b/scripts/core/issueLoader.ts
@@ -16,6 +16,12 @@ export class IssueLoader {
case 'streams:add':
issues = (await import('../../tests/__data__/input/issues/streams_add')).default
break
+ case 'streams:edit':
+ issues = (await import('../../tests/__data__/input/issues/streams_edit')).default
+ break
+ case 'broken stream':
+ issues = (await import('../../tests/__data__/input/issues/broken_stream')).default
+ break
case 'streams:add,approved':
issues = (await import('../../tests/__data__/input/issues/streams_add_approved')).default
break
diff --git a/scripts/core/issueParser.ts b/scripts/core/issueParser.ts
index bcc6dcc70e..0114e703fc 100644
--- a/scripts/core/issueParser.ts
+++ b/scripts/core/issueParser.ts
@@ -40,6 +40,8 @@ export class IssueParser {
data.set(id, value)
})
- return new Issue({ number: issue.number, data })
+ const labels = issue.labels.map(label => label.name)
+
+ return new Issue({ number: issue.number, labels, data })
}
}
diff --git a/scripts/models/issue.ts b/scripts/models/issue.ts
index 85261261c0..622981d825 100644
--- a/scripts/models/issue.ts
+++ b/scripts/models/issue.ts
@@ -2,15 +2,18 @@ import { Dictionary } from '../core'
type IssueProps = {
number: number
+ labels: string[]
data: Dictionary
}
export class Issue {
number: number
+ labels: string[]
data: Dictionary
- constructor({ number, data }: IssueProps) {
+ constructor({ number, labels, data }: IssueProps) {
this.number = number
+ this.labels = labels
this.data = data
}
}
diff --git a/streams/ae.m3u b/streams/ae.m3u
index 0eef933894..a3abdc91a9 100644
--- a/streams/ae.m3u
+++ b/streams/ae.m3u
@@ -11,8 +11,6 @@ https://admdn5.cdn.mangomolo.com/adsports2/smil:adsports2.stream.smil/playlist.m
https://dacastmmd.mmdlive.lldns.net/dacastmmd/d3e9fc3b874a46159ce3724d802e3f8d/playlist.m3u8
#EXTINF:-1 tvg-id="AlAanTV.ae",Al Aan TV (1080p)
https://shls-live-ak.akamaized.net/out/v1/dfbdea4c1bf149629764e58c6ff314c8/index.m3u8
-#EXTINF:-1 tvg-id="AlAanTV.ae",Al Aan TV (720p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.dailymotion.com/AlAanTV
#EXTINF:-1 tvg-id="Alarabiya.ae",Al Arabiya (1080p)
https://live.alarabiya.net/alarabiapublish/alarabiya.smil/playlist.m3u8
#EXTINF:-1 tvg-id="Alarabiya.ae",Al Arabiya (1080p)
@@ -52,8 +50,6 @@ https://shls-cartoon-net-prod-dub.shahid.net/out/v1/dc4aa87372374325a66be458f29e
#EXTINF:-1 tvg-id="CitrussTV.ae",Citruss TV (720p) [Geo-blocked]
https://d7km4gkevcbok.cloudfront.net/live/watch_720p30.m3u8
#EXTINF:-1 tvg-id="CNBCArabiya.ae",CNBC Arabia (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.dailymotion.com/CNBCArabia
-#EXTINF:-1 tvg-id="CNBCArabiya.ae",CNBC Arabia (1080p)
https://ythls.onrender.com/channel/UCsHdPPJXT-yKVTLGkn3DSvQ.m3u8
#EXTINF:-1 tvg-id="DubaiOne.ae",Dubai One (1080p)
https://dminnvll.cdn.mangomolo.com/dubaione/smil:dubaione.stream.smil/playlist.m3u8
diff --git a/streams/at.m3u b/streams/at.m3u
index 80c0cdf670..2da4b66508 100644
--- a/streams/at.m3u
+++ b/streams/at.m3u
@@ -9,9 +9,9 @@ https://stream.openplayout.org/hls/dorftv/live.m3u8
http://stream.fs1.tv:8080/hls/webstream.m3u8
#EXTINF:-1 tvg-id="FS1Salzburg.at",FS1 Salzburg (720p) [Not 24/7]
https://stream.fs1.tv/hls/webstream.m3u8
-#EXTINF:-1 tvg-id="FUELTV.at",Fuel TV (1080p)
+#EXTINF:-1 tvg-id="FUELTV.at",FUEL TV (1080p)
https://d35j504z0x2vu2.cloudfront.net/v1/manifest/0bc8e8376bd8417a1b6761138aa41c26c7309312/fuel-tv/606c2f67-acff-4152-975a-e5bfef54eb61/2.m3u8
-#EXTINF:-1 tvg-id="GoTV.at",GoTV (576p)
+#EXTINF:-1 tvg-id="GoTV.at",GoTV (576p) [Not 24/7]
https://nstream17.gotv.at:1443/live/gotvlive/manifest.mpd
#EXTINF:-1 tvg-id="HitradioO3.at",Hitradio ร3 (720p) [Not 24/7]
https://studiocam-oe3.mdn.ors.at/out/u/studiocam_oe3/q6a/manifest_1.m3u8
@@ -23,12 +23,10 @@ https://kronetv.mdn.ors.at/out/u/kronetv-nodrm.m3u8
https://bitcdn-kronehit.bitmovin.com/v2/hls/playlist.m3u8
#EXTINF:-1 tvg-id="KurierTV.at",Kurier TV (720p)
https://schautv.mdn.ors.at/out/u/schautv-nodrm.m3u8
-#EXTINF:-1 tvg-id="LandleTV.at",Lรคndle Tv (1080p)
+#EXTINF:-1 tvg-id="LandleTV.at",Lรคndle TV (1080p) [Not 24/7]
https://streaming13.huberwebmedia.at/LiveApp/streams/985585225397790082777809.m3u8
-#EXTINF:-1 tvg-id="M4.at",M4 (1090p) [Not 24/7]
-https://5a32c05065c79.streamlock.net/live/stream/playlist.m3u8
-#EXTINF:-1 tvg-id="M4TV.at",M4TV [Geo-blocked]
-https://streaming.m4tv.at/live/m4tv.stream/playlist.m3u8
+#EXTINF:-1 tvg-id="M4.at",GemeindeTV (1080p) [Not 24/7]
+https://ythls.onrender.com/channel/UCbGaZEFvBLMe8eNgoBFDRZg.m3u8
#EXTINF:-1 tvg-id="Oe24TV.at",oe24 TV (1080p)
https://varoe24live.sf.apa.at/oe24-live1/oe24.smil/playlist.m3u8
#EXTINF:-1 tvg-id="OktoTV.at",Okto TV (1080p)
@@ -47,11 +45,11 @@ http://p3-6.mov.at:1935/live/weekstream/master.m3u8
https://ms01.w24.at/R9/smil:liveeventR9.smil/playlist.m3u8
#EXTINF:-1 tvg-id="RedBullTV.at",Red Bull TV (1080p)
https://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master.m3u8
-#EXTINF:-1 tvg-id="RTV.at",RTV (1080p)
+#EXTINF:-1 tvg-id="RTV.at",RTV (1080p) [Not 24/7]
http://iptv.rtv-ooe.at/stream.m3u8
#EXTINF:-1 tvg-id="SchladmingDachsteinTV.at",Schladming-Dachstein TV (720p)
https://m317.video-stream-hosting.de/gzSoftware-live/_definst_/smil:livestream.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="ServusTV.at",ServusTV [Geo-blocked]
+#EXTINF:-1 tvg-id="ServusTV.at",ServusTV (1080p) [Geo-blocked]
https://stv-live.akamaized.net/hls/live/2031011/lingeoSTVATwebPri/master.m3u8
#EXTINF:-1 tvg-id="SwamijiTV.at",Swamiji TV (720p) [Not 24/7]
https://stream.swamiji.tv/YogaIPTV/smil:YogaStream.smil/playlist.m3u8
diff --git a/streams/au.m3u b/streams/au.m3u
index e91f2bd0d8..2d4e74e625 100644
--- a/streams/au.m3u
+++ b/streams/au.m3u
@@ -1,9 +1,11 @@
#EXTM3U
-#EXTINF:-1 tvg-id="ABCNewsAustralia.au",ABC News (720p)
+#EXTINF:-1 tvg-id="ABCNewsAustralia.au",ABC News Australia (720p)
https://abc-iview-mediapackagestreams-2.akamaized.net/out/v1/6e1cc6d25ec0480ea099a5399d73bc4b/index.m3u8
-#EXTINF:-1 tvg-id="AUSTamilTV.au",Aus Tamil (720p) [Not 24/7]
+#EXTINF:-1 tvg-id="ABCNewsAustralia.au",ABC News Australia (720p) [Not 24/7]
+https://ythls.onrender.com/channel/UCVgO39Bk5sMo66-6o6Spn6Q.m3u8
+#EXTINF:-1 tvg-id="AUSTamilTV.au",AUS Tamil TV (720p) [Not 24/7]
https://bk7l2pn7dx53-hls-live.5centscdn.com/austamil/fe01ce2a7fbac8fafaed7c982a04e229.sdp/playlist.m3u8
-#EXTINF:-1 tvg-id="AusbizTV.au",ausbiz TV (720p) [Geo-blocked]
+#EXTINF:-1 tvg-id="AusbizTV.au",ausbiz TV (720p) [Not 24/7]
https://d9quh89lh7dtw.cloudfront.net/public-output/index.m3u8
#EXTINF:-1 tvg-id="C31Melbourne.au",C31 Melbourne (240p)
https://d1k6kax80wecy5.cloudfront.net/RLnAKY/index.m3u8
@@ -12,17 +14,13 @@ https://d1k6kax80wecy5.cloudfront.net/WFqZJc/index.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="JonmoBhumiTV.au",JonmoBhumi TV (720p) [Not 24/7]
-https://cdn.appv.jagobd.com:444/c3VydmVyX8RpbEU9Mi8xNy8yMDE0GIDU6RgzQ6NTAgdEoaeFzbF92YWxIZTO0U0ezN1IzMyfvcGVMZEJCTEFWeVN3PTOmdFsaWRtaW51aiPhnPTI/jonmobhumitv.stream/playlist.m3u8
+https://us170.jagobd.com:447/c3VydmVyX8RpbEU9Mi8xNy8yMDE0GIDU6RgzQ6NTAgdEoaeFzbF92YWxIZTO0U0ezN1IzMyfvcGVMZEJCTEFWeVN3PTOmdFsaWRtaW51aiPhnPTI/jonmobhumitv.stream/playlist.m3u8
#EXTINF:-1 tvg-id="M4TVMalayalam.au",M4TV Malayalam (1080p) [Not 24/7]
https://app.m4stream.live/mfourmalayalamhls/live.m3u8
-#EXTINF:-1 tvg-id="",Race Central TV (720p)
+#EXTINF:-1 tvg-id="",Race Central TV (720p) [Not 24/7]
https://nrpus.bozztv.com/36bay2/gusa-racecentral/index.m3u8
#EXTINF:-1 tvg-id="Racingcom.au",Racing.com (720p)
https://racingvic-i.akamaized.net/hls/live/598695/racingvic/index1500.m3u8
-#EXTINF:-1 tvg-id="RTV.au",Rainbow TV Australia (720p)
-http://www.rtvcdn.com.au:8082/TV0002.m3u8
-#EXTINF:-1 tvg-id="SBSViceland.au",SBS Viceland [Geo-blocked]
-https://dai.google.com/linear/hls/event/nPy2IRtvQTWudFfYwdBgsg/master.m3u8
#EXTINF:-1 tvg-id="SkyNewsExtra1.au",Sky News Extra 1 (540p)
https://skynewsau-live.akamaized.net/hls/live/2002689/skynewsau-extra1/master.m3u8
#EXTINF:-1 tvg-id="SkyNewsExtra2.au",Sky News Extra 2 (540p) [Not 24/7]
@@ -37,3 +35,35 @@ https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01486-tickernews-tickernewsweb-ono/
https://nrpus.bozztv.com/36bay2/gusa-moviemagictv/index.m3u8
#EXTINF:-1 tvg-id="TVSN.au",TVSN (1080p)
https://tvsnhlslivetest.akamaized.net/hls/live/2034711/TVSN-MSL4/master.m3u8
+#EXTINF:-1 tvg-id="TVSN.au",TVSN (1080p) [Not 24/7]
+https://ythls.onrender.com/channel/UCo4sch-fwKIeyzyPIWRXjdw.m3u8
+#EXTINF:-1 tvg-id="9Gem.au",9Gem (720p) [Geo-blocked]
+https://9now-livestreams.akamaized.net/hls/live/2007330/ch9-syd/master.m3u8
+#EXTINF:-1 tvg-id="9Go.au",9Go! (720p) [Geo-blocked]
+https://9now-livestreams.akamaized.net/hls/live/2008312/go-syd/master.m3u8
+#EXTINF:-1 tvg-id="9Life.au",9Life (720p) [Geo-blocked]
+https://9now-livestreams.akamaized.net/hls/live/2008313/life-syd/master.m3u8
+#EXTINF:-1 tvg-id="ADHTV.au",ADH TV (1080p) [Not 24/7]
+https://ythls.onrender.com/channel/UCtzTaKI8AkiSjyzm1_JbMUg.m3u8
+#EXTINF:-1 tvg-id="GuidanceTVAustralia.au",Guidance TV Australia (720p) [Not 24/7]
+https://ythls.onrender.com/channel/UC81VkX0QeICZw7o2jMwGThg.m3u8
+#EXTINF:-1 tvg-id="2GB.au",2GB Sydney (1080p)
+https://2gblive.akamaized.net/hls/live/2033805/2GB/index.m3u8
+#EXTINF:-1 tvg-id="HopeChannelAustralia.au",Hope Channel Australia (1080p)
+https://videodelivery.net/9fb3596948ddf463fde0ec4b85625b24/manifest/video.m3u8
+#EXTINF:-1 tvg-id="9Rush.au",9Rush (720p) [Geo-blocked]
+https://9now-livestreams.akamaized.net/hls/live/2010626/rush-syd/master.m3u8
+#EXTINF:-1 tvg-id="Channel9.au",Channel 9 (720p) [Geo-blocked]
+https://9now-livestreams.akamaized.net/hls/live/2008322/ch9-mel/master.m3u8
+#EXTINF:-1 tvg-id="Channel7.au",Channel 7 [Geo-blocked]
+https://npc.cdn.7livecloud.io/hls/live/SYD1/master.m3u8
+#EXTINF:-1 tvg-id="7two.au",7two [Geo-blocked]
+https://npc.cdn.7livecloud.io/hls/live/MEL2/master.m3u8
+#EXTINF:-1 tvg-id="7mate.au",7mate [Geo-blocked]
+https://npc.cdn.7livecloud.io/hls/live/MEL3/master.m3u8
+#EXTINF:-1 tvg-id="7flix.au",7flix [Geo-blocked]
+https://npc.cdn.7livecloud.io/hls/live/MEL6/master.m3u8
+#EXTINF:-1 tvg-id="SkyRacing1.au",Sky Racing 1 [Geo-blocked]
+https://skylivetab-new.akamaized.net/hls/live/2038780/sky1/index.m3u8
+#EXTINF:-1 tvg-id="SkyRacing2.au",Sky Racing 2 [Geo-blocked]
+https://skylivetab-new.akamaized.net/hls/live/2038781/sky2/index.m3u8
diff --git a/streams/bf.m3u b/streams/bf.m3u
index 9872987e07..991770fb9e 100644
--- a/streams/bf.m3u
+++ b/streams/bf.m3u
@@ -1,5 +1,7 @@
#EXTM3U
#EXTINF:-1 tvg-id="RTB.bf",RTB (360p) [Not 24/7]
https://edge.vedge.infomaniak.com/livecast/ik:rtbtvlive1/manifest.m3u8
-#EXTINF:-1 tvg-id="TVAlHouda.bf",TV Al Houda (360p) [Not 24/7]
+#EXTINF:-1 tvg-id="TVAlHouda.bf",TV Al Houda (720p) [Not 24/7]
https://ssh101.bozztv.com/ssh101/alhoudatv/playlist.m3u8
+#EXTINF:-1 tvg-id="ImpactTV.bf",Impact TV (360p) [Not 24/7]
+https://edge20.vedge.infomaniak.com/livecast/ik:fluxtvimpact/manifest.m3u8
diff --git a/streams/cl.m3u b/streams/cl.m3u
index 7ac81f22c2..85318b5d3d 100644
--- a/streams/cl.m3u
+++ b/streams/cl.m3u
@@ -111,8 +111,6 @@ https://v2.tustreaming.cl/clicktv/playlist.m3u8
https://mediacpstreamchile.com:1936/clubtv/clubtv/playlist.m3u8
#EXTINF:-1 tvg-id="ConcepcionTV.cl",Concepciรณn TV (1080p)
http://live.mundogo.cl/mundo/concepciontv/index.m3u8
-#EXTINF:-1 tvg-id="Contivision.cl",Contivision (720p)
-https://unlimited2-cl-isp.dps.live/cm/cm.smil/playlist.m3u8
#EXTINF:-1 tvg-id="CosmosTV.cl",Cosmos TV (720p)
https://v1.tustreaming.cl/cosmostv/index.m3u8
#EXTINF:-1 tvg-id="CRTV.cl",CRTV (720p)
@@ -449,3 +447,5 @@ https://zmlive.zappingtv.com/zm-free/zm.smil/playlist.m3u8
http://38.131.11.9:1080/play/a00x
#EXTINF:-1 tvg-id="ZonaPlayTV.cl",Zona Play TV (720p)
https://paneltv.online:1936/8100/8100/playlist.m3u8
+#EXTINF:-1 tvg-id="Contivision.cl",Contivision (720p)
+https://unlimited6-cl.dps.live/cm/cm.smil/playlist.m3u8
diff --git a/streams/cy.m3u b/streams/cy.m3u
index c86c00a7d2..af9a572beb 100644
--- a/streams/cy.m3u
+++ b/streams/cy.m3u
@@ -5,8 +5,6 @@ https://sc-kuzeykibrissmarttv.ercdn.net/adatv/bant1/playlist.m3u8
https://dev.aftermind.xyz/edge-hls/unitrust/alfasports/index.m3u8?token=8TXWzhY3h6jrzqEqu
#EXTINF:-1 tvg-id="AlfaSport.cy",Alfa Sport (1080p) [Not 24/7]
https://dev.aftermind.xyz/hls/unitrust/alfasports/index.m3u8?token=8TXWzhY3h6jrzqEqu
-#EXTINF:-1 tvg-id="AlphaTVCyprus.cy",Alpha TV Cyprus (1080p)
-http://l4.cloudskep.com/alphacyp/acy/playlist.m3u8
#EXTINF:-1 tvg-id="ANT1Cyprus.cy",ANT1 Cyprus (1080p)
http://l2.cloudskep.com/ant1cm2/abr/playlist.m3u8
#EXTINF:-1 tvg-id="BRT1.cy",BRT 1 (720p) [Not 24/7]
diff --git a/streams/de.m3u b/streams/de.m3u
index 57a02c842f..94e5c0e6cf 100644
--- a/streams/de.m3u
+++ b/streams/de.m3u
@@ -414,8 +414,6 @@ https://bild-und-ton.stream/sophiatv-en/smil:sophia-tv-en.smil/playlist.m3u8
https://bild-und-ton.stream/sophiatv-es/smil:sophia-tv-es.smil/playlist.m3u8
#EXTINF:-1 tvg-id="SophiaTV.it",Sophia TV Italy (720p)
https://bild-und-ton.stream/sophiatv-it/smil:sophia-tv-it.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="Sport1.de",Sport 1 (1080p) [Geo-blocked]
-https://oz.sport1.de/api/ottv1/2/livestream/view/sport2.m3u8
#EXTINF:-1 tvg-id="SRFernsehen.de",SR Fernsehen (720p)
https://srfs.akamaized.net/hls/live/689649/srfsgeo/index.m3u8
#EXTINF:-1 tvg-id="SRF.de",SRF (1080p)
diff --git a/streams/fi.m3u b/streams/fi.m3u
index 1bd046bd21..94c2762452 100644
--- a/streams/fi.m3u
+++ b/streams/fi.m3u
@@ -33,8 +33,6 @@ https://ythls.onrender.com/channel/UCyDiTtktwmrc20Bvs_G4pow.m3u8
https://vod.tv7.fi/tv7-ee/smil:tv7-ee.smil/playlist.m3u8
#EXTINF:-1 tvg-id="TaivasTV7.fi",Taivas TV7 (720p)
https://vod.tv7.fi/tv7-fi/smil:tv7-fi.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="TLCFinland.fi",TLC Finland (720p)
-https://live-fi.tvkaista.net/tlc/live.m3u8
#EXTINF:-1 tvg-id="TV5.fi",TV5 (720p) [Not 24/7]
https://live-fi.tvkaista.net/tv5/live.m3u8
#EXTINF:-1 tvg-id="WorTV.fi",WรถrTV (1080p) [Not 24/7]
diff --git a/streams/fr.m3u b/streams/fr.m3u
index a2f9372b0d..3f0d8a57f2 100644
--- a/streams/fr.m3u
+++ b/streams/fr.m3u
@@ -373,3 +373,7 @@ https://ythls.onrender.com/channel/UCqvIdlrnd4DCcqp2DZwaZYw.m3u8
https://live.digiteka.com/1/WGQ1NnhEN0lzM0NU/dk1EOHhw/hls/live/playlist.m3u8
#EXTINF:-1 tvg-id="Weo.fr",Wรฉo (Picardie) (480p) [Not 24/7]
https://live.digiteka.com/1/Zks2L0VsM2V0T242/QTBqcFly/hls/live/playlist.m3u8
+#EXTINF:-1 tvg-id="France3Lorraine.fr",France 3 Lorraine
+http://livetv.ktv.zone/225/play.m3u8
+#EXTINF:-1 tvg-id="France4.fr",France 4
+http://livetv.ktv.zone/116/play.m3u8
diff --git a/streams/fr_groupem6.m3u b/streams/fr_groupem6.m3u
index eb14b688d3..42d977caff 100644
--- a/streams/fr_groupem6.m3u
+++ b/streams/fr_groupem6.m3u
@@ -3,8 +3,6 @@
https://origin2-6play.live.6cloud.fr/pool_rnpls9by/gulli/sixplaysd/hls_short_q2hyb21h_gulli/index.m3u8
#EXTINF:-1 tvg-id="GulliBilArabi.fr",Gulli Bil Arabi (1080p)
https://shls-gulli-bil-arabi-prod-dub.shahid.net/out/v1/5454d215afba410c90b233f400730958/index.m3u8
-#EXTINF:-1 tvg-id="M6.fr",M6
-https://raw.githubusercontent.com/Sphinxroot/HSL/main/M6.m3u8
#EXTINF:-1 tvg-id="M6.fr",M6 (1080p)
https://shls-m6-france-prod-dub.shahid.net/out/v1/c8a9f6e000cd4ebaa4d2fc7d18c15988/index.m3u8
#EXTINF:-1 tvg-id="M6Music.fr",M6 Music (1080p)
diff --git a/streams/hr.m3u b/streams/hr.m3u
index 2617d6b38a..5a01f1c601 100644
--- a/streams/hr.m3u
+++ b/streams/hr.m3u
@@ -27,3 +27,5 @@ http://185.62.75.22:1935/trend/myStream/playlist.m3u8
https://tvjadran.stream.agatin.hr:3412/live/tvjadranlive.m3u8
#EXTINF:-1 tvg-id="TVZapad.hr",TV Zapad (1080p)
http://webtv.zapad.tv:8080/memfs/1ad23803-84c3-41c7-aa91-fce4c7eac52e.m3u8
+#EXTINF:-1 tvg-id="TVNova.hr",TV Nova
+https://stream.agatin.hr:3727/live/tvnovalive.m3u8
diff --git a/streams/it.m3u b/streams/it.m3u
index 42af9e3d34..d96e18b9eb 100644
--- a/streams/it.m3u
+++ b/streams/it.m3u
@@ -616,8 +616,6 @@ http://fms.tvavicenza.it:1935/live/diretta_1/playlist.m3u8
#EXTINF:-1 tvg-id="TVL.it",TVL (720p) [Not 24/7]
https://live.mariatvcdn.com/mariatvcdn/70564e1c6884c007c76f0c128d679eed.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="",TVR Sicilia HD (1080p) [Not 24/7]
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.twitch.tv/canale6tv
-#EXTINF:-1 tvg-id="",TVR Sicilia HD (1080p) [Not 24/7]
https://ssh101.bozztv.com/ssh101/televita/playlist.m3u8
#EXTINF:-1 tvg-id="TVRS.it",TVRS (576p) [Not 24/7]
http://wms.shared.streamshow.it:1935/tvrs/tvrs/live.m3u8
diff --git a/streams/kg.m3u b/streams/kg.m3u
index 4c834829f5..e00abf6d91 100644
--- a/streams/kg.m3u
+++ b/streams/kg.m3u
@@ -5,3 +5,11 @@ https://64e5ed58c00d4.streamlock.net/live/smil:balastan.smil/playlist.m3u8
http://212.2.225.30:1935/live/site.stream/playlist.m3u8
#EXTINF:-1 tvg-id="",ะัะฑะธะผัะน HD/ะขะะข4 (576p)
http://92.245.103.126:1935/live/live.stream/playlist.m3u8
+#EXTINF:-1 tvg-id="Music.kg",ะัะทัะบะฐ (272p)
+https://64e5ed58c00d4.streamlock.net/live/smil:music.smil/playlist.m3u8
+#EXTINF:-1 tvg-id="AlaToo24.kg",ะะปะฐ-ัะพะพ 24 (272p)
+https://64e5ed58c00d4.streamlock.net/live/smil:alatoo24.smil/playlist.m3u8
+#EXTINF:-1 tvg-id="KTRKSport.kg",ะฃะขะ ะ ะกะฟะพัั (272p)
+https://64e5ed58c00d4.streamlock.net/live/smil:sport.smil/playlist.m3u8
+#EXTINF:-1 tvg-id="UTRK.kg",ะฃะขะ ะ ะััะณัะทััะฐะฝ (272p)
+https://64e5ed58c00d4.streamlock.net/live/smil:utrk.smil/playlist.m3u8
diff --git a/streams/kr.m3u b/streams/kr.m3u
index 7918668845..33ccffd5f5 100644
--- a/streams/kr.m3u
+++ b/streams/kr.m3u
@@ -93,10 +93,6 @@ https://jcnonair-1108.acs.wecandeo.com/ms/3162/1108/index.m3u8
http://live.worktv.or.kr:1935/live/wowtvlive1.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="JobplusTV.kr",Job Plus TV (ํ๊ตญ์ง์
๋ฐฉ์ก) (480p)
https://live.jobplustv.or.kr/live/wowtvlive1.sdp/playlist.m3u8
-#EXTINF:-1 tvg-id="KBS1TV.kr",KBS1 (720p)
-http://ye23.vip/z7z8/2021/kbs2020.php?id=1
-#EXTINF:-1 tvg-id="KBS2TV.kr",KBS2 (720p) [Not 24/7]
-http://ye23.vip/z7z8/2021/kbs2020.php?id=2
#EXTINF:-1 tvg-id="KBSDrama.kr",KBS Drama (480p)
http://mytv.dothome.co.kr/ch/catv/2.php
#EXTINF:-1 tvg-id="KBSDrama.kr",KBS Drama (480p)
@@ -265,3 +261,5 @@ https://ythls.onrender.com/channel/UC38IlqMxZ_YtFg3eSGmmJnQ.m3u8
https://ythls.onrender.com/channel/UCizGMtU0Lt-O9X0tLJzyZ2Q.m3u8
#EXTINF:-1 tvg-id="YTNScience.kr",YTN Science (720p)
https://ythls.onrender.com/channel/UCZdBJIbJz0P9xyFipgOj1fA.m3u8
+#EXTINF:-1 tvg-id="Tooniverse.kr",Tooniverse
+http://code.vthanhtivi.pw/getlink/jptvvn/118/playlist.m3u8
diff --git a/streams/kw.m3u b/streams/kw.m3u
index b3548c2de5..c851da7feb 100644
--- a/streams/kw.m3u
+++ b/streams/kw.m3u
@@ -5,23 +5,5 @@ https://kali.vdopanel.com:3986/live/mbashalive.m3u8
https://5e74a9d684b2e.streamlock.net/liveTrans/ngrp:channel23_all/playlist.m3u8
#EXTINF:-1 tvg-id="AlraiTV.kw",Alrai TV (1080p)
https://svs.itworkscdn.net/alraitvlive/alraitv.smil/playlist.m3u8
-#EXTINF:-1 tvg-id="KTV1.kw",KTV 1 (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTV1
-#EXTINF:-1 tvg-id="KTV2.kw",KTV 2 (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTV2
-#EXTINF:-1 tvg-id="KTVAlMajlis.kw",KTV Al Majlis (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVSportExtra
-#EXTINF:-1 tvg-id="KTVAlQurain.kw",KTV Al Qurain (1080p) [Not 24/7]
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVPlus
-#EXTINF:-1 tvg-id="KTVArabe.kw",KTV Arabe (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVArabe
-#EXTINF:-1 tvg-id="KTVKhallikBilbait.kw",KTV Drama (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KhallikBilbait
-#EXTINF:-1 tvg-id="KTVEthraa.kw",KTV Ethraa (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVEthraa
-#EXTINF:-1 tvg-id="KTVSport.kw",KTV Sport (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVSports
-#EXTINF:-1 tvg-id="KTVSportPlus.kw",KTV Sport Plus (1080p)
-http://mc-qs.lanesh4d0w.tech/iptv-query?streaming-ip=https://www.media.gov.kw/LiveTV.aspx?PanChannel=KTVSportPlus
#EXTINF:-1 tvg-id="MarinaTV.kw",Marina TV (1080p) [Not 24/7]
https://ythls.onrender.com/channel/UC1TelTm8bbY2jw0guInSvBA.m3u8
diff --git a/streams/mc.m3u b/streams/mc.m3u
index 242e17e49b..eedd559697 100644
--- a/streams/mc.m3u
+++ b/streams/mc.m3u
@@ -3,3 +3,5 @@
https://webtvmonacoinfo.mc/live/prod_720/index.m3u8
#EXTINF:-1 tvg-id="SuperyachtTV.mc",Superyacht TV (1080p)
https://sy.wns.live/hls/stream.m3u8
+#EXTINF:-1 tvg-id="TVMonaco.mc",TV Monaco (1080p)
+https://production-fast-mcrtv.content.okast.tv/channels/2116dc08-1959-465d-857f-3619daefb66b/b702b2b9-aebd-436c-be69-2118f56f3d86/2024/media.m3u8
diff --git a/streams/my.m3u b/streams/my.m3u
index 1ab5a5fb29..1441baf391 100644
--- a/streams/my.m3u
+++ b/streams/my.m3u
@@ -63,8 +63,6 @@ https://d25tgymtnqzu8s.cloudfront.net/smil:tv1/playlist.m3u8?id=1
https://d25tgymtnqzu8s.cloudfront.net/smil:tv2/playlist.m3u8?id=2
#EXTINF:-1 tvg-id="TV3.my",TV3
https://live-streams-ssai-01.tonton.com.my/live/2dd2b7cd-1b34-4871-b669-57b5c9beca23/live.isml/.m3u8
-#EXTINF:-1 tvg-id="TV3.my",TV3 (720p) [Geo-blocked]
-https://live-sg1.global.ssl.fastly.net/live-hls/tonton1.m3u8
#EXTINF:-1 tvg-id="",TV6 [Geo-blocked]
#EXTVLCOPT:http-referrer=https://rtm-player.glueapi.io/
https://d25tgymtnqzu8s.cloudfront.net/smil:tv6/playlist.m3u8?id=6
diff --git a/streams/us.m3u b/streams/us.m3u
index ef4e929e12..bfb007fc3b 100644
--- a/streams/us.m3u
+++ b/streams/us.m3u
@@ -181,12 +181,8 @@ https://cdn3.wowza.com/5/ZWQ1K2NYTmpFbGsr/BEK-WOWZA-1/smil:BEKPRIMEeast.smil/pla
https://cdn3.wowza.com/5/ZWQ1K2NYTmpFbGsr/BEK-WOWZA-1/smil:BEKPRIMEW.smil/playlist.m3u8
#EXTINF:-1 tvg-id="BetterHealthTV.us",Better Health TV (480p)
https://tgn.bozztv.com/betterlife/betterhealth/betterhealth/index.m3u8
-#EXTINF:-1 tvg-id="BetterHealthTV.us",Better Health TV (480p)
-https://uni10rtmp.tulix.tv/betterhealth/betterhealth.stream/playlist.m3u8
#EXTINF:-1 tvg-id="BetterLifeNatureChannel.us",Better Life Nature Channel (480p)
https://tgn.bozztv.com/betterlife/betternature/betternature/index.m3u8
-#EXTINF:-1 tvg-id="BetterLifeNatureChannel.us",Better Life Nature Channel (480p)
-https://uni10rtmp.tulix.tv/betternature/betternature.stream/playlist.m3u8
#EXTINF:-1 tvg-id="BetterLifeTV.us",Better Life TV (720p)
https://tgn.bozztv.com/betterlife/betterlife/betterlife/index.m3u8
#EXTINF:-1 tvg-id="",Big City TV
@@ -402,8 +398,6 @@ https://cdn20.liveonlineservices.com/hls/eye95tv.m3u8
https://biblescreen.faithlifecdn.com/biblescreen/bibleScreen/playlist.m3u8
#EXTINF:-1 tvg-id="ChristmasMusic.us",Faithlife TV Christmas Music (720p)
https://vse2-na-us-ne24.secdn.net/logos-channel/live/christmas/playlist.m3u8
-#EXTINF:-1 tvg-id="FastTV.us",Fast TV
-https://3fa797d5.wurl.com/manifest/f36d25e7e52f1ba8d7e56eb859c636563214f541/T05PX01vdG9yVHJlbmRGYXN0VFZfSExT/b5e5e0e2-12b3-4312-93c9-c0a7c50b41ca/4.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",Fast&Fun Box (Russian) (480p)
#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://ott-cdn.ucom.am/s79/index.m3u8
@@ -1098,3 +1092,7 @@ https://thegateway.app/YouToo/CueTones/playlist.m3u8
https://thegateway.app/YouToo/YTamerica/playlist.m3u8
#EXTINF:-1 tvg-id="DisneyChannelRussia.ru",ะะฐะฝะฐะป Disney (576p) [Not 24/7]
http://188.40.68.167/russia/disney/playlist.m3u8
+#EXTINF:-1 tvg-id="SUMtvLatino.us",SUMtv Latino (1080p)
+https://bozztv.com/uni10rtmp/ssstv2-cdn/smil:ssstv2web.smil/playlist.m3u8
+#EXTINF:-1 tvg-id="EVTVMiami.us",EVTV Miami (720p) [Not 24/7]
+https://streannliveevtv.cachefly.net/Protected/sp=1;dirmatch=true/3be25dc13406bf70ff0208230e6fa803b88b95013fad257c025e481e2be3e214/evtv1/evtv1/playlist.m3u8
diff --git a/streams/us_freemoviesplus.m3u b/streams/us_freemoviesplus.m3u
deleted file mode 100644
index a7e8894cba..0000000000
--- a/streams/us_freemoviesplus.m3u
+++ /dev/null
@@ -1,33 +0,0 @@
-#EXTM3U
-#EXTINF:-1 tvg-id="",Crime and Thrillers
-https://topic-crimeandthrillers-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Ditty TV
-https://memphisstudios-dittytv-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Food
-https://food-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Glory Kick Boxing
-https://glorykickboxing-glorykickboxing-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Intipacha
-https://bonudiemsa-intipacha-2-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Just for Laughs Gags
-https://distributionsjustepourrire-justforlaughsgags-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Nosey 2
-https://nosey-2-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Pecan
-https://bold-tv-corp-pecan-tv-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Pelimex
-https://telecine-pelimex-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Real Nosey
-https://nosey-realnosey-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Space Science Now
-https://magellan-space-science-now-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Todays Homeowner
-https://janson-todayshomeowner-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",True Crime Now
-https://alliantcontent-truecrimenow-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",Vintage TV
-https://chestnut-vintagetv-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",War and Military Now
-https://alliantcontent-warandmilitarynow-1-us.freemoviesplus.wurl.tv/playlist.m3u8
-#EXTINF:-1 tvg-id="",WatchMojo
-https://watchmojo-1-eu.freemoviesplus.wurl.tv/playlist.m3u8
diff --git a/streams/us_local.m3u b/streams/us_local.m3u
index d586bf3664..8a440bd925 100644
--- a/streams/us_local.m3u
+++ b/streams/us_local.m3u
@@ -595,8 +595,6 @@ https://reflect-tampa-bay-community.cablecast.tv/live-16/live/live.m3u8
https://reflect-temecula.cablecast.tv/live-2/live/live.m3u8
#EXTINF:-1 tvg-id="Tempe11.us",Tempe Channel 11
https://cdn3.wowza.com/5/cFh0V0QwUVc4SDl2/tempe/G0355_003/chunklist.m3u8
-#EXTINF:-1 tvg-id="TUTV.us",Temple University TV (tutv) (720p)
-https://templeuni.secure.footprint.net/egress/bhandler/templeuni/streama/manifest.m3u8
#EXTINF:-1 tvg-id="WCWNDT1.us",The CW (WCWN-DT1) Albamy NY (1080p)
https://16live00.akamaized.net/CW/index.m3u8
#EXTINF:-1 tvg-id="WJACDT4.us",The CW Altoona PA (WJAC4) (720p)
diff --git a/streams/us_pbs.m3u b/streams/us_pbs.m3u
index 5eb504372e..7871e74c94 100644
--- a/streams/us_pbs.m3u
+++ b/streams/us_pbs.m3u
@@ -215,8 +215,6 @@ https://wsredt.lls.pbs.org/out/v1/d615170d96024c229c6ae2177dec84e5/index.m3u8
https://wtvpdt.lls.pbs.org/out/v1/9e8f6bfce87a437d8a8a9aab016421e8/index.m3u8
#EXTINF:-1 tvg-id="WHYYDT1.us",PBS Philadelphia PA (WHYY-DT1) (1080p)
https://whyydt.lls.pbs.org/out/v1/40b7857a84ee4302be8ab755a719cc14/index.m3u8
-#EXTINF:-1 tvg-id="KAETDT1.us",PBS Phoenix AZ (KAET) (1080p)
-https://kaetdt.lls.pbs.org/out/v1/259f25e61b3d47ce8a7e2339a00c5561/index.m3u8
#EXTINF:-1 tvg-id="WQEDDT1.us",PBS Pittsburgh PA (WQED) (1080p)
https://wqeddt.lls.pbs.org/out/v1/1f10d52cea0f45ae88184800e9e6b79e/index.m3u8
#EXTINF:-1 tvg-id="WCFEDT1.us",PBS Plattsburgh NY (WCFE) (1080p)
diff --git a/streams/us_simultv.m3u b/streams/us_simultv.m3u
deleted file mode 100644
index 6899d457ba..0000000000
--- a/streams/us_simultv.m3u
+++ /dev/null
@@ -1,41 +0,0 @@
-#EXTM3U
-#EXTINF:-1 tvg-id="",2A Network (720p)
-https://simultv.s.llnwi.net/n4s4/2ANetwork/interlink.m3u8
-#EXTINF:-1 tvg-id="",Cowboy Theater (720p)
-https://simultv.s.llnwi.net/o054/CowboyTheater/interlink.m3u8
-#EXTINF:-1 tvg-id="",Cut Up N Cook (720p)
-https://simultv.s.llnwi.net/n4s4/CutUpNCook/interlink.m3u8
-#EXTINF:-1 tvg-id="",Dimensions
-https://simultv.s.llnwi.net/o054/Dimensions/interlink.m3u8
-#EXTINF:-1 tvg-id="",Funnybone (720p)
-https://simultv.s.llnwi.net/o054/FunnyBone/interlink.m3u8
-#EXTINF:-1 tvg-id="KartoonCircus.us",Kartoon Circus
-https://simultv.s.llnwi.net/o062/KartoonCircus/interlink.m3u8
-#EXTINF:-1 tvg-id="KartoonCircus.us",Kartoon Circus (720p)
-https://simultv.s.llnwi.net/n4s4/KartoonCircus/interlink.m3u8
-#EXTINF:-1 tvg-id="",Kid Central (720p)
-https://simultv.s.llnwi.net/o058/KidCentral/interlink.m3u8
-#EXTINF:-1 tvg-id="Lifestyle.us",Lifestyle
-https://simultv.s.llnwi.net/o058/Lifestyle/interlink.m3u8
-#EXTINF:-1 tvg-id="",Military Home Life (720p)
-https://simultv.s.llnwi.net/n4s4/MilitaryHomeLife/interlink.m3u8
-#EXTINF:-1 tvg-id="Mythos.us",Mythos
-https://simultv.s.llnwi.net/o058/Mythos/interlink.m3u8
-#EXTINF:-1 tvg-id="PrimeTimeDrama.us",Prime Time Drama
-https://simultv.s.llnwi.net/o064/PrimeTimeDrama/interlink.m3u8
-#EXTINF:-1 tvg-id="",Providence Christian Network
-https://simultv.s.llnwi.net/n4s4/ProvidenceNetwork/interlink.m3u8
-#EXTINF:-1 tvg-id="",Ready Set Action (720p)
-https://simultv.s.llnwi.net/o059/ReadySetAction/interlink.m3u8
-#EXTINF:-1 tvg-id="",Slap Tech
-https://simultv.s.llnwi.net/o061/SlapTech/interlink.m3u8
-#EXTINF:-1 tvg-id="SpydarTV.us",Spydar
-https://simultv.s.llnwi.net/o062/Spydar/interlink.m3u8
-#EXTINF:-1 tvg-id="SpydarTV.us",Spydar TV (720p)
-https://simultv.s.llnwi.net/n4s4/Spydar/interlink.m3u8
-#EXTINF:-1 tvg-id="",Switch (720p)
-https://simultv.s.llnwi.net/o062/Switch/interlink.m3u8
-#EXTINF:-1 tvg-id="Xcorps.us",Xcorps (720p)
-https://simultv.s.llnwi.net/n4s4/xcorps/interlink.m3u8
-#EXTINF:-1 tvg-id="",XZone (720p)
-https://simultv.s.llnwi.net/o060/xzone/interlink.m3u8
diff --git a/tests/__data__/input/issues/broken_stream.js b/tests/__data__/input/issues/broken_stream.js
new file mode 100644
index 0000000000..286f295048
--- /dev/null
+++ b/tests/__data__/input/issues/broken_stream.js
@@ -0,0 +1,81 @@
+export default [
+ {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140',
+ repository_url: 'https://api.github.com/repos/iptv-org/iptv',
+ labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/labels{/name}',
+ comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/comments',
+ events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/events',
+ html_url: 'https://github.com/iptv-org/iptv/issues/14140',
+ id: 1881649602,
+ node_id: 'I_kwDOCWUK8M5wJ7HC',
+ number: 14140,
+ title: 'Broken: RIK HD Cyprus',
+ user: {
+ login: 'ROBGagn',
+ id: 124619576,
+ node_id: 'U_kgDOB22LOA',
+ avatar_url: 'https://avatars.githubusercontent.com/u/124619576?v=4',
+ gravatar_id: '',
+ url: 'https://api.github.com/users/ROBGagn',
+ html_url: 'https://github.com/ROBGagn',
+ followers_url: 'https://api.github.com/users/ROBGagn/followers',
+ following_url: 'https://api.github.com/users/ROBGagn/following{/other_user}',
+ gists_url: 'https://api.github.com/users/ROBGagn/gists{/gist_id}',
+ starred_url: 'https://api.github.com/users/ROBGagn/starred{/owner}{/repo}',
+ subscriptions_url: 'https://api.github.com/users/ROBGagn/subscriptions',
+ organizations_url: 'https://api.github.com/users/ROBGagn/orgs',
+ repos_url: 'https://api.github.com/users/ROBGagn/repos',
+ events_url: 'https://api.github.com/users/ROBGagn/events{/privacy}',
+ received_events_url: 'https://api.github.com/users/ROBGagn/received_events',
+ type: 'User',
+ site_admin: false
+ },
+ labels: [
+ {
+ id: 1707513547,
+ node_id: 'MDU6TGFiZWwxNzA3NTEzNTQ3',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/broken%20stream',
+ name: 'broken stream',
+ color: 'FBCA04',
+ default: false,
+ description: 'Stream is not working properly'
+ },
+ {
+ id: 3241837512,
+ node_id: 'MDU6TGFiZWwzMjQxODM3NTEy',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/CY',
+ name: 'CY',
+ color: '90FA7B',
+ default: false,
+ description: 'Cyprus'
+ }
+ ],
+ state: 'open',
+ locked: false,
+ assignee: null,
+ assignees: [],
+ milestone: null,
+ comments: 0,
+ created_at: '2023-09-05T10:09:04Z',
+ updated_at: '2023-09-07T00:50:06Z',
+ closed_at: null,
+ author_association: 'NONE',
+ active_lock_reason: null,
+ body: '### Broken Link\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist.m3u8\n\n### What happened to the stream?\n\nNot loading\n\n### Possible Replacement (optional)\n\nhttp://l6.cloudskep.com/rikcy/rikhd/playlist2.m3u8\n\n### Notes (optional)\n\nToken needed...\r\nSame issue with RIK 1 and 2. May happen in the future with ANT1 Cyprus, Sigma and Omega.\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)',
+ reactions: {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/reactions',
+ total_count: 0,
+ '+1': 0,
+ '-1': 0,
+ laugh: 0,
+ hooray: 0,
+ confused: 0,
+ heart: 0,
+ rocket: 0,
+ eyes: 0
+ },
+ timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14140/timeline',
+ performed_via_github_app: null,
+ state_reason: null
+ }
+]
diff --git a/tests/__data__/input/issues/streams_edit.js b/tests/__data__/input/issues/streams_edit.js
new file mode 100644
index 0000000000..238003c32f
--- /dev/null
+++ b/tests/__data__/input/issues/streams_edit.js
@@ -0,0 +1,160 @@
+export default [
+ {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110',
+ repository_url: 'https://api.github.com/repos/iptv-org/iptv',
+ labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/labels{/name}',
+ comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/comments',
+ events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/events',
+ html_url: 'https://github.com/iptv-org/iptv/issues/14110',
+ id: 1884922249,
+ node_id: 'I_kwDOCWUK8M5wWaGJ',
+ number: 14110,
+ title: 'Edit: Tele2000',
+ user: {
+ login: 'freearhey',
+ id: 7253922,
+ node_id: 'MDQ6VXNlcjcyNTM5MjI=',
+ avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4',
+ gravatar_id: '',
+ url: 'https://api.github.com/users/freearhey',
+ html_url: 'https://github.com/freearhey',
+ followers_url: 'https://api.github.com/users/freearhey/followers',
+ following_url: 'https://api.github.com/users/freearhey/following{/other_user}',
+ gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}',
+ starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}',
+ subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions',
+ organizations_url: 'https://api.github.com/users/freearhey/orgs',
+ repos_url: 'https://api.github.com/users/freearhey/repos',
+ events_url: 'https://api.github.com/users/freearhey/events{/privacy}',
+ received_events_url: 'https://api.github.com/users/freearhey/received_events',
+ type: 'User',
+ site_admin: false
+ },
+ labels: [
+ {
+ id: 5923498886,
+ node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved',
+ name: 'approved',
+ color: '85ddde',
+ default: false,
+ description: ''
+ },
+ {
+ id: 5923508587,
+ node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add',
+ name: 'streams:edit',
+ color: '017ff9',
+ default: false,
+ description: 'Request to add a new link to a playlist'
+ }
+ ],
+ state: 'open',
+ locked: false,
+ assignee: null,
+ assignees: [],
+ milestone: null,
+ comments: 1,
+ created_at: '2023-09-07T00:30:51Z',
+ updated_at: '2023-09-07T00:48:23Z',
+ closed_at: null,
+ author_association: 'COLLABORATOR',
+ active_lock_reason: null,
+ body: '### Stream URL\n\nhttps://servilive.com:3126/live/tele2000live.m3u8\n\n### Channel ID\n\nBBCAmericaEast.us\n\n### Channel Name\n\nBBC America\n\n### Quality\n\n720p\n\n### Label\n\nGeo-blocked\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)',
+ reactions: {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/reactions',
+ total_count: 0,
+ '+1': 0,
+ '-1': 0,
+ laugh: 0,
+ hooray: 0,
+ confused: 0,
+ heart: 0,
+ rocket: 0,
+ eyes: 0
+ },
+ timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14110/timeline',
+ performed_via_github_app: null,
+ state_reason: null
+ },
+ {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120',
+ repository_url: 'https://api.github.com/repos/iptv-org/iptv',
+ labels_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/labels{/name}',
+ comments_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/comments',
+ events_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/events',
+ html_url: 'https://github.com/iptv-org/iptv/issues/14120',
+ id: 1884922249,
+ node_id: 'I_kwDOCWUK8M5wWaGJ',
+ number: 14120,
+ title: 'Edit: Tele2000',
+ user: {
+ login: 'freearhey',
+ id: 7253922,
+ node_id: 'MDQ6VXNlcjcyNTM5MjI=',
+ avatar_url: 'https://avatars.githubusercontent.com/u/7253922?v=4',
+ gravatar_id: '',
+ url: 'https://api.github.com/users/freearhey',
+ html_url: 'https://github.com/freearhey',
+ followers_url: 'https://api.github.com/users/freearhey/followers',
+ following_url: 'https://api.github.com/users/freearhey/following{/other_user}',
+ gists_url: 'https://api.github.com/users/freearhey/gists{/gist_id}',
+ starred_url: 'https://api.github.com/users/freearhey/starred{/owner}{/repo}',
+ subscriptions_url: 'https://api.github.com/users/freearhey/subscriptions',
+ organizations_url: 'https://api.github.com/users/freearhey/orgs',
+ repos_url: 'https://api.github.com/users/freearhey/repos',
+ events_url: 'https://api.github.com/users/freearhey/events{/privacy}',
+ received_events_url: 'https://api.github.com/users/freearhey/received_events',
+ type: 'User',
+ site_admin: false
+ },
+ labels: [
+ {
+ id: 5923498886,
+ node_id: 'LA_kwDOCWUK8M8AAAABYRFrhg',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/approved',
+ name: 'approved',
+ color: '85ddde',
+ default: false,
+ description: ''
+ },
+ {
+ id: 5923508587,
+ node_id: 'LA_kwDOCWUK8M8AAAABYRGRaw',
+ url: 'https://api.github.com/repos/iptv-org/iptv/labels/streams:add',
+ name: 'streams:edit',
+ color: '017ff9',
+ default: false,
+ description: 'Request to add a new link to a playlist'
+ }
+ ],
+ state: 'open',
+ locked: false,
+ assignee: null,
+ assignees: [],
+ milestone: null,
+ comments: 1,
+ created_at: '2023-09-07T00:30:51Z',
+ updated_at: '2023-09-07T00:48:23Z',
+ closed_at: null,
+ author_association: 'COLLABORATOR',
+ active_lock_reason: null,
+ body: '### Stream URL\n\nhttps://livestream.telvue.com/templeuni1/f7b44cfafd5c52223d5498196c8a2e7b.sdp/playlist.m3u8\n\n### Channel ID\n\nboo.us\n\n### Channel Name\n\nBBC America\n\n### Quality\n\n720p\n\n### Label\n\nGeo-blocked\n\n### HTTP User-Agent\n\nMozilla/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\n\n### HTTP Referrer\n\n_No response_\n\n### Notes\n\n_No response_\n\n### Contributing Guide\n\n- [X] I have read [Contributing Guide](https://github.com/iptv-org/iptv/blob/master/CONTRIBUTING.md)',
+ reactions: {
+ url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/reactions',
+ total_count: 0,
+ '+1': 0,
+ '-1': 0,
+ laugh: 0,
+ hooray: 0,
+ confused: 0,
+ heart: 0,
+ rocket: 0,
+ eyes: 0
+ },
+ timeline_url: 'https://api.github.com/repos/iptv-org/iptv/issues/14120/timeline',
+ performed_via_github_app: null,
+ state_reason: null
+ }
+]
diff --git a/tests/commands/playlist/update.test.ts b/tests/commands/playlist/update.test.ts
index eb54d2198b..3b438ac795 100644
--- a/tests/commands/playlist/update.test.ts
+++ b/tests/commands/playlist/update.test.ts
@@ -9,7 +9,7 @@ beforeEach(() => {
it('can format playlists', () => {
const stdout = execSync(
- 'DEBUG=true DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams npm run playlist:update --silent',
+ 'DATA_DIR=tests/__data__/input/data STREAMS_DIR=tests/__data__/output/streams npm run playlist:update --silent',
{
encoding: 'utf8'
}
diff --git a/tests/commands/report/create.test.ts b/tests/commands/report/create.test.ts
index 55199f81c7..5a3eed7585 100644
--- a/tests/commands/report/create.test.ts
+++ b/tests/commands/report/create.test.ts
@@ -10,14 +10,17 @@ it('can create report', () => {
expect(
stdout.includes(`
-โโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโ
-โ (index) โ issueNumber โ channelId โ status โ
-โโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
-โ 0 โ 14179 โ 'ManoramaNews.in' โ 'pending' โ
-โ 1 โ 14178 โ 'TV3.my' โ 'blocked' โ
-โ 2 โ 14177 โ 'TUTV.us' โ 'fullfilled' โ
-โ 3 โ 14176 โ 'ManoramaNews.in' โ 'duplicate' โ
-โ 4 โ 14175 โ 'TFX.fr' โ 'invalid_id' โ
-โโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโ`)
+โโโโโโโโโโโฌโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
+โ (index) โ issueNumber โ type โ channelId โ status โ
+โโโโโโโโโโโผโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโค
+โ 0 โ 14110 โ 'streams:edit' โ 'BBCAmericaEast.us' โ 'invalid_link' โ
+โ 1 โ 14120 โ 'streams:edit' โ 'boo.us' โ 'invalid_id' โ
+โ 2 โ 14140 โ 'broken stream' โ undefined โ 'invalid_link' โ
+โ 3 โ 14175 โ 'streams:add' โ 'TFX.fr' โ 'invalid_id' โ
+โ 4 โ 14176 โ 'streams:add' โ 'ManoramaNews.in' โ 'duplicate' โ
+โ 5 โ 14177 โ 'streams:add' โ 'TUTV.us' โ 'fullfilled' โ
+โ 6 โ 14178 โ 'streams:add' โ 'TV3.my' โ 'blocked' โ
+โ 7 โ 14179 โ 'streams:add' โ 'ManoramaNews.in' โ 'pending' โ
+โโโโโโโโโโโดโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโ`)
).toBe(true)
})