diff --git a/README.md b/README.md
index ac5c40336b..fb1beba65e 100644
--- a/README.md
+++ b/README.md
@@ -44,25 +44,25 @@ Or select one of the playlists from the list below.
Education | 18 | https://iptv-org.github.io/iptv/categories/education.m3u |
Entertainment | 231 | https://iptv-org.github.io/iptv/categories/entertainment.m3u |
Family | 51 | https://iptv-org.github.io/iptv/categories/family.m3u |
- General | 302 | https://iptv-org.github.io/iptv/categories/general.m3u |
- Kids | 199 | https://iptv-org.github.io/iptv/categories/kids.m3u |
+ General | 301 | https://iptv-org.github.io/iptv/categories/general.m3u |
+ Kids | 201 | https://iptv-org.github.io/iptv/categories/kids.m3u |
Legislative | 62 | https://iptv-org.github.io/iptv/categories/legislative.m3u |
- Lifestyle | 84 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
- Local | 528 | https://iptv-org.github.io/iptv/categories/local.m3u |
+ Lifestyle | 83 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
+ Local | 537 | https://iptv-org.github.io/iptv/categories/local.m3u |
Movies | 280 | https://iptv-org.github.io/iptv/categories/movies.m3u |
Music | 389 | https://iptv-org.github.io/iptv/categories/music.m3u |
- News | 443 | https://iptv-org.github.io/iptv/categories/news.m3u |
+ News | 444 | https://iptv-org.github.io/iptv/categories/news.m3u |
Outdoor | 38 | https://iptv-org.github.io/iptv/categories/outdoor.m3u |
Relax | 19 | https://iptv-org.github.io/iptv/categories/relax.m3u |
- Religious | 271 | https://iptv-org.github.io/iptv/categories/religious.m3u |
+ Religious | 273 | https://iptv-org.github.io/iptv/categories/religious.m3u |
Series | 242 | https://iptv-org.github.io/iptv/categories/series.m3u |
Science | 15 | https://iptv-org.github.io/iptv/categories/science.m3u |
- Shop | 45 | https://iptv-org.github.io/iptv/categories/shop.m3u |
+ Shop | 46 | https://iptv-org.github.io/iptv/categories/shop.m3u |
Sports | 211 | https://iptv-org.github.io/iptv/categories/sports.m3u |
Travel | 20 | https://iptv-org.github.io/iptv/categories/travel.m3u |
Weather | 16 | https://iptv-org.github.io/iptv/categories/weather.m3u |
XXX | 39 | https://iptv-org.github.io/iptv/categories/xxx.m3u |
- Other | 3966 | https://iptv-org.github.io/iptv/categories/other.m3u |
+ Other | 3981 | https://iptv-org.github.io/iptv/categories/other.m3u |
@@ -83,7 +83,7 @@ Or select one of the playlists from the list below.
Akan | 2 | https://iptv-org.github.io/iptv/languages/aka.m3u |
Albanian | 32 | https://iptv-org.github.io/iptv/languages/sqi.m3u |
Amharic | 1 | https://iptv-org.github.io/iptv/languages/amh.m3u |
- Arabic | 363 | https://iptv-org.github.io/iptv/languages/ara.m3u |
+ Arabic | 365 | https://iptv-org.github.io/iptv/languages/ara.m3u |
Armenian | 25 | https://iptv-org.github.io/iptv/languages/hye.m3u |
Assyrian Neo-Aramaic | 1 | https://iptv-org.github.io/iptv/languages/aii.m3u |
Azerbaijani | 9 | https://iptv-org.github.io/iptv/languages/aze.m3u |
@@ -103,18 +103,18 @@ Or select one of the playlists from the list below.
Estonian | 3 | https://iptv-org.github.io/iptv/languages/est.m3u |
Faroese | 1 | https://iptv-org.github.io/iptv/languages/fao.m3u |
Finnish | 1 | https://iptv-org.github.io/iptv/languages/fin.m3u |
- French | 166 | https://iptv-org.github.io/iptv/languages/fra.m3u |
+ French | 168 | https://iptv-org.github.io/iptv/languages/fra.m3u |
Galician | 7 | https://iptv-org.github.io/iptv/languages/glg.m3u |
Georgian | 9 | https://iptv-org.github.io/iptv/languages/kat.m3u |
German | 188 | https://iptv-org.github.io/iptv/languages/deu.m3u |
Hebrew | 11 | https://iptv-org.github.io/iptv/languages/heb.m3u |
- Hindi | 107 | https://iptv-org.github.io/iptv/languages/hin.m3u |
+ Hindi | 108 | https://iptv-org.github.io/iptv/languages/hin.m3u |
Hungarian | 13 | https://iptv-org.github.io/iptv/languages/hun.m3u |
Icelandic | 2 | https://iptv-org.github.io/iptv/languages/isl.m3u |
Indonesian | 70 | https://iptv-org.github.io/iptv/languages/ind.m3u |
Inuktitut | 1 | https://iptv-org.github.io/iptv/languages/iku.m3u |
- Italian | 125 | https://iptv-org.github.io/iptv/languages/ita.m3u |
- Japanese | 23 | https://iptv-org.github.io/iptv/languages/jpn.m3u |
+ Italian | 124 | https://iptv-org.github.io/iptv/languages/ita.m3u |
+ Japanese | 24 | https://iptv-org.github.io/iptv/languages/jpn.m3u |
Javanese | 4 | https://iptv-org.github.io/iptv/languages/jav.m3u |
Kannada | 8 | https://iptv-org.github.io/iptv/languages/kan.m3u |
Kazakh | 9 | https://iptv-org.github.io/iptv/languages/kaz.m3u |
@@ -131,7 +131,7 @@ Or select one of the playlists from the list below.
Malay (macrolanguage) | 7 | https://iptv-org.github.io/iptv/languages/msa.m3u |
Malayalam | 68 | https://iptv-org.github.io/iptv/languages/mal.m3u |
Maltese | 3 | https://iptv-org.github.io/iptv/languages/mlt.m3u |
- Mandarin Chinese | 76 | https://iptv-org.github.io/iptv/languages/cmn.m3u |
+ Mandarin Chinese | 75 | https://iptv-org.github.io/iptv/languages/cmn.m3u |
Maori | 2 | https://iptv-org.github.io/iptv/languages/mri.m3u |
Marathi | 3 | https://iptv-org.github.io/iptv/languages/mar.m3u |
Min Nan Chinese | 3 | https://iptv-org.github.io/iptv/languages/nan.m3u |
@@ -140,11 +140,11 @@ Or select one of the playlists from the list below.
Montenegrin | 1 | https://iptv-org.github.io/iptv/languages/cnr.m3u |
Nepali (macrolanguage) | 1 | https://iptv-org.github.io/iptv/languages/nep.m3u |
Norwegian Bokmål | 4 | https://iptv-org.github.io/iptv/languages/nob.m3u |
- Panjabi | 5 | https://iptv-org.github.io/iptv/languages/pan.m3u |
Pashto | 7 | https://iptv-org.github.io/iptv/languages/pus.m3u |
Persian | 162 | https://iptv-org.github.io/iptv/languages/fas.m3u |
Polish | 34 | https://iptv-org.github.io/iptv/languages/pol.m3u |
Portuguese | 93 | https://iptv-org.github.io/iptv/languages/por.m3u |
+ Punjabi | 9 | https://iptv-org.github.io/iptv/languages/pan.m3u |
Romanian | 48 | https://iptv-org.github.io/iptv/languages/ron.m3u |
Russian | 272 | https://iptv-org.github.io/iptv/languages/rus.m3u |
Serbian | 17 | https://iptv-org.github.io/iptv/languages/srp.m3u |
@@ -152,10 +152,10 @@ Or select one of the playlists from the list below.
Slovak | 22 | https://iptv-org.github.io/iptv/languages/slk.m3u |
Slovenian | 6 | https://iptv-org.github.io/iptv/languages/slv.m3u |
Somali | 6 | https://iptv-org.github.io/iptv/languages/som.m3u |
- Spanish | 679 | https://iptv-org.github.io/iptv/languages/spa.m3u |
+ Spanish | 700 | https://iptv-org.github.io/iptv/languages/spa.m3u |
Sundanese | 1 | https://iptv-org.github.io/iptv/languages/sun.m3u |
Swedish | 11 | https://iptv-org.github.io/iptv/languages/swe.m3u |
- Tagalog | 3 | https://iptv-org.github.io/iptv/languages/tgl.m3u |
+ Tagalog | 5 | https://iptv-org.github.io/iptv/languages/tgl.m3u |
Tamil | 40 | https://iptv-org.github.io/iptv/languages/tam.m3u |
Telugu | 6 | https://iptv-org.github.io/iptv/languages/tel.m3u |
Thai | 45 | https://iptv-org.github.io/iptv/languages/tha.m3u |
@@ -167,7 +167,7 @@ Or select one of the playlists from the list below.
Vietnamese | 66 | https://iptv-org.github.io/iptv/languages/vie.m3u |
Western Frisian | 1 | https://iptv-org.github.io/iptv/languages/fry.m3u |
Yue Chinese | 6 | https://iptv-org.github.io/iptv/languages/yue.m3u |
- Undefined | 1873 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
+ Undefined | 1869 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
@@ -216,7 +216,7 @@ Or select one of the playlists from the list below.
🇧🇮 Burundi | 1 | https://iptv-org.github.io/iptv/countries/bi.m3u |
🇰🇭 Cambodia | 16 | https://iptv-org.github.io/iptv/countries/kh.m3u |
🇨🇲 Cameroon | 5 | https://iptv-org.github.io/iptv/countries/cm.m3u |
- 🇨🇦 Canada | 152 | https://iptv-org.github.io/iptv/countries/ca.m3u |
+ 🇨🇦 Canada | 156 | https://iptv-org.github.io/iptv/countries/ca.m3u |
🇨🇻 Cape Verde | 1 | https://iptv-org.github.io/iptv/countries/cv.m3u |
🇨🇫 Central African Republic | 1 | https://iptv-org.github.io/iptv/countries/cf.m3u |
🇹🇩 Chad | 1 | https://iptv-org.github.io/iptv/countries/td.m3u |
@@ -236,7 +236,7 @@ Or select one of the playlists from the list below.
🇨🇮 Côte d’Ivoire | 2 | https://iptv-org.github.io/iptv/countries/ci.m3u |
🇩🇰 Denmark | 14 | https://iptv-org.github.io/iptv/countries/dk.m3u |
🇩🇯 Djibouti | 44 | https://iptv-org.github.io/iptv/countries/dj.m3u |
- 🇩🇴 Dominican Republic | 75 | https://iptv-org.github.io/iptv/countries/do.m3u |
+ 🇩🇴 Dominican Republic | 77 | https://iptv-org.github.io/iptv/countries/do.m3u |
🇪🇨 Ecuador | 28 | https://iptv-org.github.io/iptv/countries/ec.m3u |
🇪🇬 Egypt | 74 | https://iptv-org.github.io/iptv/countries/eg.m3u |
🇸🇻 El Salvador | 34 | https://iptv-org.github.io/iptv/countries/sv.m3u |
@@ -248,7 +248,7 @@ Or select one of the playlists from the list below.
🇫🇴 Faroe Islands | 1 | https://iptv-org.github.io/iptv/countries/fo.m3u |
🇫🇯 Fiji | 3 | https://iptv-org.github.io/iptv/countries/fj.m3u |
🇫🇮 Finland | 13 | https://iptv-org.github.io/iptv/countries/fi.m3u |
- 🇫🇷 France | 170 | https://iptv-org.github.io/iptv/countries/fr.m3u |
+ 🇫🇷 France | 171 | https://iptv-org.github.io/iptv/countries/fr.m3u |
🇬🇫 French Guiana | 21 | https://iptv-org.github.io/iptv/countries/gf.m3u |
🇵🇫 French Polynesia | 3 | https://iptv-org.github.io/iptv/countries/pf.m3u |
🇹🇫 French Southern Territories | 1 | https://iptv-org.github.io/iptv/countries/tf.m3u |
@@ -257,7 +257,7 @@ Or select one of the playlists from the list below.
🇬🇪 Georgia | 23 | https://iptv-org.github.io/iptv/countries/ge.m3u |
🇩🇪 Germany | 245 | https://iptv-org.github.io/iptv/countries/de.m3u |
🇬🇭 Ghana | 3 | https://iptv-org.github.io/iptv/countries/gh.m3u |
- 🇬🇷 Greece | 104 | https://iptv-org.github.io/iptv/countries/gr.m3u |
+ 🇬🇷 Greece | 103 | https://iptv-org.github.io/iptv/countries/gr.m3u |
🇬🇵 Guadeloupe | 22 | https://iptv-org.github.io/iptv/countries/gp.m3u |
🇬🇺 Guam | 2 | https://iptv-org.github.io/iptv/countries/gu.m3u |
🇬🇹 Guatemala | 26 | https://iptv-org.github.io/iptv/countries/gt.m3u |
@@ -268,16 +268,16 @@ Or select one of the playlists from the list below.
🇭🇰 Hong Kong | 10 | https://iptv-org.github.io/iptv/countries/hk.m3u |
🇭🇺 Hungary | 37 | https://iptv-org.github.io/iptv/countries/hu.m3u |
🇮🇸 Iceland | 10 | https://iptv-org.github.io/iptv/countries/is.m3u |
- 🇮🇳 India | 333 | https://iptv-org.github.io/iptv/countries/in.m3u |
+ 🇮🇳 India | 334 | https://iptv-org.github.io/iptv/countries/in.m3u |
🇮🇩 Indonesia | 84 | https://iptv-org.github.io/iptv/countries/id.m3u |
🌍 International | 38 | https://iptv-org.github.io/iptv/countries/int.m3u |
🇮🇷 Iran | 183 | https://iptv-org.github.io/iptv/countries/ir.m3u |
- 🇮🇶 Iraq | 108 | https://iptv-org.github.io/iptv/countries/iq.m3u |
+ 🇮🇶 Iraq | 109 | https://iptv-org.github.io/iptv/countries/iq.m3u |
🇮🇪 Ireland | 18 | https://iptv-org.github.io/iptv/countries/ie.m3u |
🇮🇱 Israel | 27 | https://iptv-org.github.io/iptv/countries/il.m3u |
- 🇮🇹 Italy | 285 | https://iptv-org.github.io/iptv/countries/it.m3u |
+ 🇮🇹 Italy | 284 | https://iptv-org.github.io/iptv/countries/it.m3u |
🇯🇲 Jamaica | 0 | https://iptv-org.github.io/iptv/countries/jm.m3u |
- 🇯🇵 Japan | 36 | https://iptv-org.github.io/iptv/countries/jp.m3u |
+ 🇯🇵 Japan | 37 | https://iptv-org.github.io/iptv/countries/jp.m3u |
🇯🇴 Jordan | 59 | https://iptv-org.github.io/iptv/countries/jo.m3u |
🇰🇿 Kazakhstan | 24 | https://iptv-org.github.io/iptv/countries/kz.m3u |
🇰🇪 Kenya | 13 | https://iptv-org.github.io/iptv/countries/ke.m3u |
@@ -287,13 +287,13 @@ Or select one of the playlists from the list below.
🇰🇬 Kyrgyzstan | 9 | https://iptv-org.github.io/iptv/countries/kg.m3u |
🇱🇦 Laos | 11 | https://iptv-org.github.io/iptv/countries/la.m3u |
🇱🇻 Latvia | 11 | https://iptv-org.github.io/iptv/countries/lv.m3u |
- 🇱🇧 Lebanon | 74 | https://iptv-org.github.io/iptv/countries/lb.m3u |
+ 🇱🇧 Lebanon | 75 | https://iptv-org.github.io/iptv/countries/lb.m3u |
🇱🇸 Lesotho | 1 | https://iptv-org.github.io/iptv/countries/ls.m3u |
🇱🇷 Liberia | 1 | https://iptv-org.github.io/iptv/countries/lr.m3u |
🇱🇾 Libya | 50 | https://iptv-org.github.io/iptv/countries/ly.m3u |
🇱🇮 Liechtenstein | 10 | https://iptv-org.github.io/iptv/countries/li.m3u |
🇱🇹 Lithuania | 11 | https://iptv-org.github.io/iptv/countries/lt.m3u |
- 🇱🇺 Luxembourg | 18 | https://iptv-org.github.io/iptv/countries/lu.m3u |
+ 🇱🇺 Luxembourg | 17 | https://iptv-org.github.io/iptv/countries/lu.m3u |
🇲🇴 Macao | 11 | https://iptv-org.github.io/iptv/countries/mo.m3u |
🇲🇬 Madagascar | 1 | https://iptv-org.github.io/iptv/countries/mg.m3u |
🇲🇼 Malawi | 1 | https://iptv-org.github.io/iptv/countries/mw.m3u |
@@ -302,11 +302,11 @@ Or select one of the playlists from the list below.
🇲🇱 Mali | 2 | https://iptv-org.github.io/iptv/countries/ml.m3u |
🇲🇹 Malta | 10 | https://iptv-org.github.io/iptv/countries/mt.m3u |
🇲🇭 Marshall Islands | 2 | https://iptv-org.github.io/iptv/countries/mh.m3u |
- 🇲🇶 Martinique | 21 | https://iptv-org.github.io/iptv/countries/mq.m3u |
+ 🇲🇶 Martinique | 22 | https://iptv-org.github.io/iptv/countries/mq.m3u |
🇲🇷 Mauritania | 42 | https://iptv-org.github.io/iptv/countries/mr.m3u |
🇲🇺 Mauritius | 1 | https://iptv-org.github.io/iptv/countries/mu.m3u |
🇾🇹 Mayotte | 1 | https://iptv-org.github.io/iptv/countries/yt.m3u |
- 🇲🇽 Mexico | 75 | https://iptv-org.github.io/iptv/countries/mx.m3u |
+ 🇲🇽 Mexico | 89 | https://iptv-org.github.io/iptv/countries/mx.m3u |
🇫🇲 Micronesia | 2 | https://iptv-org.github.io/iptv/countries/fm.m3u |
🇲🇩 Moldova | 21 | https://iptv-org.github.io/iptv/countries/md.m3u |
🇲🇨 Monaco | 10 | https://iptv-org.github.io/iptv/countries/mc.m3u |
@@ -337,15 +337,15 @@ Or select one of the playlists from the list below.
🇵🇦 Panama | 30 | https://iptv-org.github.io/iptv/countries/pa.m3u |
🇵🇬 Papua New Guinea | 2 | https://iptv-org.github.io/iptv/countries/pg.m3u |
🇵🇾 Paraguay | 30 | https://iptv-org.github.io/iptv/countries/py.m3u |
- 🇵🇪 Peru | 156 | https://iptv-org.github.io/iptv/countries/pe.m3u |
- 🇵🇭 Philippines | 18 | https://iptv-org.github.io/iptv/countries/ph.m3u |
+ 🇵🇪 Peru | 161 | https://iptv-org.github.io/iptv/countries/pe.m3u |
+ 🇵🇭 Philippines | 21 | https://iptv-org.github.io/iptv/countries/ph.m3u |
🇵🇳 Pitcairn Islands | 2 | https://iptv-org.github.io/iptv/countries/pn.m3u |
🇵🇱 Poland | 47 | https://iptv-org.github.io/iptv/countries/pl.m3u |
🇵🇹 Portugal | 38 | https://iptv-org.github.io/iptv/countries/pt.m3u |
🇵🇷 Puerto Rico | 31 | https://iptv-org.github.io/iptv/countries/pr.m3u |
🇶🇦 Qatar | 55 | https://iptv-org.github.io/iptv/countries/qa.m3u |
🇷🇴 Romania | 63 | https://iptv-org.github.io/iptv/countries/ro.m3u |
- 🇷🇺 Russia | 342 | https://iptv-org.github.io/iptv/countries/ru.m3u |
+ 🇷🇺 Russia | 341 | https://iptv-org.github.io/iptv/countries/ru.m3u |
🇷🇼 Rwanda | 5 | https://iptv-org.github.io/iptv/countries/rw.m3u |
🇷🇪 Réunion | 1 | https://iptv-org.github.io/iptv/countries/re.m3u |
🇼🇸 Samoa | 2 | https://iptv-org.github.io/iptv/countries/ws.m3u |
@@ -363,7 +363,7 @@ Or select one of the playlists from the list below.
🇿🇦 South Africa | 1 | https://iptv-org.github.io/iptv/countries/za.m3u |
🇰🇷 South Korea | 70 | https://iptv-org.github.io/iptv/countries/kr.m3u |
🇸🇸 South Sudan | 1 | https://iptv-org.github.io/iptv/countries/ss.m3u |
- 🇪🇸 Spain | 295 | https://iptv-org.github.io/iptv/countries/es.m3u |
+ 🇪🇸 Spain | 293 | https://iptv-org.github.io/iptv/countries/es.m3u |
🇱🇰 Sri Lanka | 21 | https://iptv-org.github.io/iptv/countries/lk.m3u |
🇧🇱 St. Barthélemy | 21 | https://iptv-org.github.io/iptv/countries/bl.m3u |
🇸🇭 St. Helena | 1 | https://iptv-org.github.io/iptv/countries/sh.m3u |
@@ -383,7 +383,7 @@ Or select one of the playlists from the list below.
🇹🇴 Tonga | 2 | https://iptv-org.github.io/iptv/countries/to.m3u |
🇹🇹 Trinidad & Tobago | 0 | https://iptv-org.github.io/iptv/countries/tt.m3u |
🇹🇳 Tunisia | 50 | https://iptv-org.github.io/iptv/countries/tn.m3u |
- 🇹🇷 Turkey | 198 | https://iptv-org.github.io/iptv/countries/tr.m3u |
+ 🇹🇷 Turkey | 197 | https://iptv-org.github.io/iptv/countries/tr.m3u |
🇹🇲 Turkmenistan | 16 | https://iptv-org.github.io/iptv/countries/tm.m3u |
🇹🇻 Tuvalu | 2 | https://iptv-org.github.io/iptv/countries/tv.m3u |
🇻🇮 U.S. Virgin Islands | 1 | https://iptv-org.github.io/iptv/countries/vi.m3u |
@@ -391,7 +391,7 @@ Or select one of the playlists from the list below.
🇺🇦 Ukraine | 110 | https://iptv-org.github.io/iptv/countries/ua.m3u |
🇦🇪 United Arab Emirates | 87 | https://iptv-org.github.io/iptv/countries/ae.m3u |
🇬🇧 United Kingdom | 178 | https://iptv-org.github.io/iptv/countries/uk.m3u |
- 🇺🇸 United States | 1980 | https://iptv-org.github.io/iptv/countries/us.m3u |
+ 🇺🇸 United States | 1981 | https://iptv-org.github.io/iptv/countries/us.m3u |
🇺🇾 Uruguay | 24 | https://iptv-org.github.io/iptv/countries/uy.m3u |
🇺🇿 Uzbekistan | 7 | https://iptv-org.github.io/iptv/countries/uz.m3u |
🇻🇺 Vanuatu | 2 | https://iptv-org.github.io/iptv/countries/vu.m3u |
diff --git a/channels/ca.m3u b/channels/ca.m3u
index ae72148e54..1f74f11036 100644
--- a/channels/ca.m3u
+++ b/channels/ca.m3u
@@ -95,7 +95,7 @@ https://d7z3qjdsxbwoq.cloudfront.net/groupa/live/f9809cea-1e07-47cd-a94d-2ddd3e1
http://159.69.58.154/cpmtv/cpmtv.m3u8
#EXTINF:-1 tvg-id="CTV.ca" tvg-country="CA" tvg-language="English" tvg-logo="https://i.imgur.com/nfcjHAW.png" group-title="",CTV (720p)
https://pe-fa-lp02a.9c9media.com/live/News1Digi/p/hls/00000201/38ef78f479b07aa0/index/0c6a10a2/live/stream/h264/v1/3500000/manifest.m3u8
-#EXTINF:-1 tvg-id="DukhNivaran.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="https://www.dukhnivaran.ca/wp-content/uploads/2019/01/dukhnivaran_logo1-1.png" group-title="",Dukh Nivaran
+#EXTINF:-1 tvg-id="DukhNivaran.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="https://www.dukhnivaran.ca/wp-content/uploads/2019/01/dukhnivaran_logo1-1.png" group-title="",Dukh Nivaran (720p)
http://cdn12.henico.net:8080/live/dncal/index.m3u8
#EXTINF:-1 tvg-id="EawazTV.ca" tvg-country="CA" tvg-language="Urdu" tvg-logo="https://i.imgur.com/vB4yzen.png" group-title="",Eawaz TV (720p)
https://streamer12.vdn.dstreamone.net/saazoawaz/saazoawaz/playlist.m3u8
@@ -135,8 +135,6 @@ https://live.corusdigitaldev.com/groupd/live/deb8cec5-87fb-460a-ab82-0929374fc5f
https://live.corusdigitaldev.com/groupb/live/564df695-94f9-4f27-b1b9-0a936ab01721/live.isml/.m3u8
#EXTINF:-1 tvg-id="GurSikhSabhaTV.ca" tvg-country="CA" tvg-language="Hindi" tvg-logo="https://i.imgur.com/2EKCtQm.png" group-title="Religious",GurSikh Sabha TV (720p)
http://cdn12.henico.net:8080/live/gsctv/index.m3u8
-#EXTINF:-1 tvg-id="RamgarhiABC.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="http://ramgarhiabc.com/wp-content/uploads/2014/02/headerlogo.png" group-title="",Ramgarhi ABC
-https://443-1.autopo.st/100/live/bcgurduwarabrookside/chunks.m3u8
#EXTINF:-1 tvg-id="ICIMontreal.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://i.imgur.com/i3xFNPE.png" group-title="General",ICI Montreal (720p)
https://ici-i.akamaihd.net/hls/live/873426/ICI-Live-Stream/master.m3u8
#EXTINF:-1 tvg-id="IciRDI.ca" tvg-country="CA" tvg-language="French" tvg-logo="https://raw.githubusercontent.com/geonsey/Free2ViewTV/master/images/logos/ICI-RDI.png" group-title="News",Ici RDI (720p)
@@ -176,18 +174,20 @@ https://vse2-eu-all59.secdn.net/barakyah-channel/live/plymouthtv/playlist.m3u8
https://vse2-eu-all59.secdn.net/barakyah-channel/live/plymouthtvedge/playlist.m3u8
#EXTINF:-1 tvg-id="PrimeAsiaTV.ca" tvg-country="CA" tvg-language="English" tvg-logo="https://i.imgur.com/LdGWsGj.png" group-title="",Prime Asia TV (720p)
http://primeasia.dyndns.tv:8080/Live_web_250/index.m3u8
-#EXTINF:-1 tvg-id="PrimeCanadaTV.ca" tvg-country="CA" tvg-language="Panjabi" tvg-logo="" group-title="",Prime Canada TV (720p) [Offline]
+#EXTINF:-1 tvg-id="PrimeCanadaTV.ca" tvg-country="CA" tvg-language="Panjabi" tvg-logo="" group-title="",Prime Canada TV (720p) [Not 24/7]
http://cdn27.live247stream.com/primecanada/247/primecanada/stream1/playlist.m3u8
#EXTINF:-1 tvg-id="QVTV.ca" tvg-country="CA" tvg-language="English" tvg-logo="https://i.imgur.com/X9LBFzK.jpg" group-title="Religious",QVTV (720p)
https://qvmstream.tulix.tv/720p/720p/playlist.m3u8
-#EXTINF:-1 tvg-id="SikhSpiritualCentreRexdale.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="https://www.sikhspiritualcentrerexdale.com/wp-content/uploads/2019/07/favicon-transprent.png" group-title="",Sikh Spiritual Centre Rexdale
-https://cdn12.henico.net:8443/live/ssct/index.m3u8
+#EXTINF:-1 tvg-id="RamgarhiABC.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="http://ramgarhiabc.com/wp-content/uploads/2014/02/headerlogo.png" group-title="",Ramgarhi ABC (720p)
+https://443-1.autopo.st/100/live/bcgurduwarabrookside/chunks.m3u8
#EXTINF:-1 tvg-id="SaltPlusLightTelevision.ca" tvg-country="CA" tvg-language="" tvg-logo="https://i.imgur.com/mpJICdg.png" group-title="Religious",Salt + Light Television (1080p)
https://zm6gdaxeyn93-hls-live.5centscdn.com/slworld/d65ce2bdd03471fde0a1dc5e01d793bb.sdp/index.m3u8
#EXTINF:-1 tvg-id="SanjhaPunjab.ca" tvg-country="CA" tvg-language="Panjabi" tvg-logo="https://i.imgur.com/17e3T2n.png" group-title="",Sanjha Punjab (720p)
http://toronto3.live247stream.com:8081/sanjhapunjab/tv/playlist.m3u8
#EXTINF:-1 tvg-id="SardariTV.ca" tvg-country="CA" tvg-language="English" tvg-logo="https://i.imgur.com/AhbJjPL.jpg" group-title="",Sardari TV (1080p)
http://158.69.124.9:1935/sardaritv/sardaritv/playlist.m3u8
+#EXTINF:-1 tvg-id="SikhSpiritualCentreRexdale.ca" tvg-country="CA" tvg-language="Punjabi" tvg-logo="https://www.sikhspiritualcentrerexdale.com/wp-content/uploads/2019/07/favicon-transprent.png" group-title="",Sikh Spiritual Centre Rexdale (720p)
+https://cdn12.henico.net:8443/live/ssct/index.m3u8
#EXTINF:-1 tvg-id="TAGTV.ca" tvg-country="CA" tvg-language="Hindi" tvg-logo="https://i.imgur.com/4PA2adF.png" group-title="",TAG TV (1080p) [Not 24/7]
http://cdn11.live247stream.com/tag/tv/playlist.m3u8
#EXTINF:-1 tvg-id="TamilVisionInternational.ca" tvg-country="CA" tvg-language="" tvg-logo="https://i.imgur.com/jSWRXdg.png" group-title="",Tamil Vision International (1080p)
diff --git a/channels/cn.m3u b/channels/cn.m3u
index c621cf6358..3266186627 100644
--- a/channels/cn.m3u
+++ b/channels/cn.m3u
@@ -159,11 +159,11 @@ http://hnsd.chinashadt.com:2036/live/stream:hunandushi.stream/playlist.m3u8
http://101.71.255.229:6610/zjhs/2/10107/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
#EXTINF:-1 tvg-id="iHOTAiYouJiao.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",iHOT爱幼教 [Offline]
http://101.71.255.229:6610/zjhs/2/10112/index.m3u8?virtualDomain=zjhs.live_hls.zte.com
-#EXTINF:-1 tvg-id="IPTVJingPinZongYi.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",IPTV精品综艺
+#EXTINF:-1 tvg-id="IPTVJingPinZongYi.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",IPTV精品综艺 [Offline]
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/jzongyi/yst.m3u8
#EXTINF:-1 tvg-id="iQIYIAiQiYi.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/e/eb/IQiyi_logo.svg/200px-IQiyi_logo.svg.png" group-title="",iQIYI 爱奇艺 [Offline]
http://198.16.106.58:8278/streams/d/Qiyi1511/playlist.m3u8
-#EXTINF:-1 tvg-id="NewTVWeiLaiDianShiZhongGuoGongFu.cn" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="http://www.nettv.live/uploads/18/1-1P423200320U1.jpg" group-title="",NewTV未来电视 中国功夫
+#EXTINF:-1 tvg-id="NewTVWeiLaiDianShiZhongGuoGongFu.cn" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="http://www.nettv.live/uploads/18/1-1P423200320U1.jpg" group-title="",NewTV未来电视 中国功夫 [Offline]
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/SD-1500k-576P-gzkongfu/1.m3u8
#EXTINF:-1 tvg-id="NewTVWeiLaiDianShiJunShiPingLun.cn" tvg-country="CN" tvg-language="Chinese;Mandarin Chinese" tvg-logo="http://www.nettv.live/uploads/18/1-1P426221943132.jpg" group-title="",NewTV未来电视 军事评论 [Offline]
http://m-tvlmedia.public.bcs.ysten.com/ysten-business/live/junshipl/1.m3u8
@@ -1349,13 +1349,13 @@ http://149.129.100.78/anhui.php?id=85
http://117.158.206.60:9080/kaifeng/kftv4.m3u8
#EXTINF:-1 tvg-id="ShiJingShanDianShiTai.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",石景山电视台 (1080p) [Not 24/7]
http://live.sjsrm.com/bjsjs/sd/live.m3u8
-#EXTINF:-1 tvg-id="FuZhouShaoEr.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",福州少儿 (1080p) [Offline]
+#EXTINF:-1 tvg-id="FuZhouShaoEr.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="Kids",福州少儿 (1080p) [Not 24/7]
http://live.zohi.tv/video/s10001-sepd-4/index.m3u8
#EXTINF:-1 tvg-id="FuZhouYingShi.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",福州影视 (1080p)
http://live.zohi.tv/video/s10001-yspd-2/index.m3u8
#EXTINF:-1 tvg-id="FuZhouShengHuo.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",福州生活 (1080p)
http://live.zohi.tv/video/s10001-shpd-3/index.m3u8
-#EXTINF:-1 tvg-id="FuZhouZongHe.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",福州综合 (1080p) [Offline]
+#EXTINF:-1 tvg-id="FuZhouZongHe.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",福州综合 (1080p) [Not 24/7]
http://live.zohi.tv/video/s10001-FZTV-1/index.m3u8
#EXTINF:-1 tvg-id="FuJianDaoShi.cn" tvg-country="CN" tvg-language="Chinese" tvg-logo="" group-title="",福建导视 (576p)
http://fjnh.chinashadt.com:2036/live/stream:fjds.stream/playlist.m3u8
diff --git a/channels/do.m3u b/channels/do.m3u
index 63f5800dfa..2ea4c5bba3 100644
--- a/channels/do.m3u
+++ b/channels/do.m3u
@@ -27,7 +27,7 @@ http://cm.hostlagarto.com:8081/Punaltv/punaltvHD.myStream/playlist.m3u8
http://209.91.213.10:8088/play/a01h
#EXTINF:-1 tvg-id="DigitalVision.do" tvg-country="DO" tvg-language="" tvg-logo="" group-title="",Digital Vision (720p)
https://ss3.domint.net:3120/dv6_str/digitalvision/playlist.m3u8
-#EXTINF:-1 tvg-id="FuegoTV.do" tvg-country="DO" tvg-language="" tvg-logo="http://fuego40.com/wp-content/uploads/2018/11/cropped-FUEGO-LOGO-TIPO.png" group-title="",Fuego TV (720p) [Offline]
+#EXTINF:-1 tvg-id="FuegoTV.do" tvg-country="DO" tvg-language="" tvg-logo="http://fuego40.com/wp-content/uploads/2018/11/cropped-FUEGO-LOGO-TIPO.png" group-title="",Fuego TV (720p) [Not 24/7]
https://video.misistemareseller.com/Fuegotv/Fuegotv/playlist.m3u8
#EXTINF:-1 tvg-id="GDMTV.do" tvg-country="DO" tvg-language="" tvg-logo="https://i0.wp.com/www.gdm.do/wp-content/uploads/2020/01/Logo-GDM.png?w=696&ssl=1" group-title="",GDMTV (720p) [Not 24/7]
https://ss2.domint.net:3200/gdm_str/gdmtv/playlist.m3u8
@@ -53,7 +53,7 @@ https://uni01rtmp.tulix.tv/playout2multi9/lavozdemaria.stream/playlist.m3u8
http://stream3.prostudionetwork.com:1943/megavision/MV/playlist.m3u8
#EXTINF:-1 tvg-id="Microvision10.do" tvg-country="DO" tvg-language="Spanish" tvg-logo="https://i.imgur.com/Sbv9mq5.png" group-title="",Microvision 10 (720p)
http://190.103.183.24:1935/live/MicroHD/playlist.m3u8
-#EXTINF:-1 tvg-id="MisionELTV.do" tvg-country="DO" tvg-language="Spanish" tvg-logo="https://2.bp.blogspot.com/-OiAyNltHK1c/XoR4TuBHe4I/AAAAAAAAszg/d3NIH9pHptsJ75DDyIGuGjq9cVO-of7kgCLcBGAsYHQ/s200/misioneltvlogo.png" group-title="",Mision ELTV (360p) [Offline]
+#EXTINF:-1 tvg-id="MisionELTV.do" tvg-country="DO" tvg-language="Spanish" tvg-logo="https://2.bp.blogspot.com/-OiAyNltHK1c/XoR4TuBHe4I/AAAAAAAAszg/d3NIH9pHptsJ75DDyIGuGjq9cVO-of7kgCLcBGAsYHQ/s200/misioneltvlogo.png" group-title="",Mision ELTV (360p) [Not 24/7]
https://5790d294af2dc.streamlock.net/8286/8286/playlist.m3u8
#EXTINF:-1 tvg-id="ORBITTV.do" tvg-country="DO" tvg-language="" tvg-logo="http://orbittv.net/images/orbit_logo4.png" group-title="",ORBIT TV (480p) [Not 24/7]
https://ss3.domint.net:3134/otv_str/orbittv/playlist.m3u8
diff --git a/channels/es.m3u b/channels/es.m3u
index 5366d01c02..5665a71584 100644
--- a/channels/es.m3u
+++ b/channels/es.m3u
@@ -103,7 +103,7 @@ https://hlsliveamdgl8-lh.akamaihd.net/i/hlslive_1@156275/master.m3u8
https://common01.todostreaming.es/live/tvbarbastro-livestream.m3u8
#EXTINF:-1 tvg-id="Canal33Madrid.es" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://i.imgur.com/1zJpDIX.png" group-title="",Canal 33 Madrid (1080p) [Not 24/7]
https://5ab29cc78f681.streamlock.net/canal33tvmadridgmailcom/livestream/master.m3u8
-#EXTINF:-1 tvg-id="Canal4ManchaCentro.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 4 Mancha Centro (720p)
+#EXTINF:-1 tvg-id="Canal4ManchaCentro.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 4 Mancha Centro (720p) [Offline]
https://5924d3ad0efcf.streamlock.net/canal4/canal4live/playlist.m3u8
#EXTINF:-1 tvg-id="Canal4Tenerife.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Canal 4 Tenerife (576p)
https://5940924978228.streamlock.net/Directo3/Directo3/playlist.m3u8
@@ -447,7 +447,7 @@ https://cdn01.yowi.tv/BBBBBBBBBB/master.m3u8
http://91.126.141.201:1935/live/smil:ten.smil/playlist.m3u8
#EXTINF:-1 tvg-id="tevecat.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",teve.cat (1080p)
https://limited35.todostreaming.es/live/mitjans-livestream.m3u8
-#EXTINF:-1 tvg-id="TevequatreTV.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Tevequatre TV (576p)
+#EXTINF:-1 tvg-id="TevequatreTV.es" tvg-country="ES" tvg-language="" tvg-logo="" group-title="",Tevequatre TV (576p) [Offline]
https://cdn01.yowi.tv/5RO3JQE6LN/master.m3u8
#EXTINF:-1 tvg-id="TrebujenaTV.es" tvg-country="ES" tvg-language="Spanish" tvg-logo="https://bopiweb.com/imagenes/2580/tomo.1.M-3503739-3.jpg" group-title="Local",Trebujena TV [Offline]
http://212.104.160.156:1935/live/trebujenatv2/master.m3u8
diff --git a/channels/gr.m3u b/channels/gr.m3u
index d177a9abdf..e903ba1830 100644
--- a/channels/gr.m3u
+++ b/channels/gr.m3u
@@ -136,7 +136,7 @@ https://vod.streams.ovh:3876/stream/play.m3u8
https://vdo.alphaserver.gr:3305/stream/play.m3u8
#EXTINF:-1 tvg-id="NeaTV.gr" tvg-country="GR" tvg-language="" tvg-logo="" group-title="",Nea TV (1080p)
https://live.neatv.gr:8888/hls/neatv.m3u8
-#EXTINF:-1 tvg-id="NetmaxTV.gr" tvg-country="GR" tvg-language="" tvg-logo="https://i.imgur.com/Wad6CD4.png" group-title="",Netmax TV (720p)
+#EXTINF:-1 tvg-id="NetmaxTV.gr" tvg-country="GR" tvg-language="" tvg-logo="https://i.imgur.com/Wad6CD4.png" group-title="",Netmax TV (720p) [Offline]
http://live.netmaxtv.com:8080/live/live/playlist.m3u8
#EXTINF:-1 tvg-id="NG.gr" tvg-country="GR" tvg-language="Modern Greek (1453-)" tvg-logo="http://i.imgur.com/pK2p5ey.png" group-title="Music",NG (612p)
http://live.streams.ovh:1935/NGradio/NGradio/playlist.m3u8
diff --git a/channels/in.m3u b/channels/in.m3u
index 1fdb1a602a..2758ef3ac0 100644
--- a/channels/in.m3u
+++ b/channels/in.m3u
@@ -477,7 +477,7 @@ https://live.mycast.in/encode/ee0c5a36ff5a7083ee044991974ad3ba.sdp/playlist.m3u8
https://rtmp.smartstream.video/pratidintime/pratidintime/playlist.m3u8
#EXTINF:-1 tvg-id="Pravasi.in" tvg-country="IN" tvg-language="Malayalam" tvg-logo="https://i.imgur.com/DtXRfBj.png" group-title="",Pravasi (1080p) [Not 24/7]
https://5ee50688d7b5d.streamlock.net:444/live/pravasi/playlist.m3u8
-#EXTINF:-1 tvg-id="PrimeCanadaTV.in" tvg-country="IN" tvg-language="Hindi" tvg-logo="" group-title="Entertainment",Prime Canada TV (720p) [Offline]
+#EXTINF:-1 tvg-id="PrimeCanadaTV.in" tvg-country="IN" tvg-language="Hindi" tvg-logo="" group-title="Entertainment",Prime Canada TV (720p) [Not 24/7]
http://cdn27.live247stream.com/primecanada/247/primecanada/stream1/playlist.m3u8
#EXTINF:-1 tvg-id="PublicMovies.in" tvg-country="IN" tvg-language="Kannada" tvg-logo="https://i.imgur.com/GpAvaCx.png" group-title="Movies",Public Movies (576p) [Not 24/7]
http://14.199.164.20:4001/play/a0ll/index.m3u8
diff --git a/channels/iq.m3u b/channels/iq.m3u
index 55671458a7..9d35080a07 100644
--- a/channels/iq.m3u
+++ b/channels/iq.m3u
@@ -29,7 +29,7 @@ http://ns8.indexforce.com:1935/home/mystream/playlist.m3u8
http://ns8.indexforce.com:1935/alsharqiyalive/mystream/chunklist_w1419797891.m3u8?v=86757236
#EXTINF:-1 tvg-id="AlSharqiyaNews.iq" tvg-country="IQ" tvg-language="Arabic" tvg-logo="https://i.imgur.com/qNi4rwG.jpg" group-title="News",Al Sharqiya News (450p)
http://ns8.indexforce.com:1935/alsharqiyalive/mystream/playlist.m3u8
-#EXTINF:-1 tvg-id="AlSumaria.iq" tvg-country="IQ" tvg-language="Arabic" tvg-logo="https://www.alsumaria.tv/uploadImages/ProgramsImages/Channels-LW-1-636916940695846700.png" group-title="General",Al Sumaria (1080p) [Offline]
+#EXTINF:-1 tvg-id="AlSumaria.iq" tvg-country="IQ" tvg-language="Arabic" tvg-logo="https://www.alsumaria.tv/uploadImages/ProgramsImages/Channels-LW-1-636916940695846700.png" group-title="General",Al Sumaria (1080p) [Not 24/7]
http://iptv.repl.co/Arabic/Al_summaria
#EXTINF:-1 tvg-id="AlRafidainTV.iq" tvg-country="IQ" tvg-language="Arabic" tvg-logo="https://i.imgur.com/x5buqzt.jpg" group-title="General",Al-Rafidain TV (1024p)
http://149.202.79.190:8081/arrafidaintv/publish/chunks.m3u8
diff --git a/channels/it.m3u b/channels/it.m3u
index c7ce845a6e..a9578da431 100644
--- a/channels/it.m3u
+++ b/channels/it.m3u
@@ -1,5 +1,5 @@
#EXTM3U
-#EXTINF:-1 tvg-id="12TVParma.it" tvg-country="IT" tvg-language="Italian" tvg-logo="https://www.12tvparma.it/static/img/12tvparma.png" group-title="General",12 TV Parma (540p)
+#EXTINF:-1 tvg-id="12TVParma.it" tvg-country="IT" tvg-language="Italian" tvg-logo="https://www.12tvparma.it/static/img/12tvparma.png" group-title="General",12 TV Parma (540p) [Offline]
https://meridelive01-lh.akamaihd.net/i/tvparma_1@356964/master.m3u8
#EXTINF:-1 tvg-id="20Mediaset.it" tvg-country="IT" tvg-language="Italian" tvg-logo="https://upload.wikimedia.org/wikipedia/it/e/e4/20_Mediaset_-_Logo_2018.svg" group-title="",20 Mediaset [Geo-blocked]
https://live3-mediaset-it.akamaized.net/Content/hls_h0_clr_vos/live/channel(lb)/index.m3u8
diff --git a/channels/jp.m3u b/channels/jp.m3u
index 64ba39c932..7a179f6acb 100644
--- a/channels/jp.m3u
+++ b/channels/jp.m3u
@@ -47,7 +47,7 @@ https://nhkworld.webcdn.stream.ne.jp/www11/nhkworld-tv/global/2003458/live.m3u8
https://b-nhkwlive-xjp.webcdn.stream.ne.jp/hls/live/2003458-b/nhkwlive-xjp-en/index.m3u8
#EXTINF:-1 tvg-id="NHKHuaYuShiJie.jp" tvg-country="JP" tvg-language="" tvg-logo="http://www.tvyan.com/uploads/dianshi/nhkhuayu.jpg" group-title="",NHK华语视界 (720p)
https://nhkworld.webcdn.stream.ne.jp/www11/nhkworld-tv/zh/725580/livecom_zh.m3u8
-#EXTINF:-1 tvg-id="NipponTV.jp" tvg-country="JP" tvg-language="Japanese" tvg-logo="" group-title="",Nippon TV (540p) [Offline]
+#EXTINF:-1 tvg-id="NipponTV.jp" tvg-country="JP" tvg-language="Japanese" tvg-logo="" group-title="",Nippon TV (540p) [Not 24/7]
https://ntv1.mov3.co/hls/ntv.m3u8
#EXTINF:-1 tvg-id="NTVNews24.jp" tvg-country="JP" tvg-language="Japanese" tvg-logo="https://i.imgur.com/Ya4yHpC.jpg" group-title="News",NTV News24 (480p)
https://www.news24.jp/livestream/index.m3u8
diff --git a/channels/lb.m3u b/channels/lb.m3u
index dd30d47e26..2092acd036 100644
--- a/channels/lb.m3u
+++ b/channels/lb.m3u
@@ -15,7 +15,7 @@ https://wowzaprod140-i.akamaihd.net/hls/live/750788/7552102e/playlist.m3u8
https://svs.itworkscdn.net/alimanlive/imantv.smil/playlist.m3u8
#EXTINF:-1 tvg-id="ArabicaMusic.lb" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://arabicagroup.tv/images/app1.png" group-title="Music",Arabica TV (720p)
http://istream.binarywaves.com:8081/hls/arabica/playlist.m3u8
-#EXTINF:-1 tvg-id="CharityTV.lb" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://kreim-storage.fra1.digitaloceanspaces.com/APP%20Logo%20PNG.png" group-title="Religious",CharityTV (1080p) [Offline]
+#EXTINF:-1 tvg-id="CharityTV.lb" tvg-country="LB" tvg-language="Arabic" tvg-logo="https://kreim-storage.fra1.digitaloceanspaces.com/APP%20Logo%20PNG.png" group-title="Religious",CharityTV (1080p) [Not 24/7]
http://185.105.4.236:1935/live/ngrp:livestream_all/live.m3u8
#EXTINF:-1 tvg-id="FutureTV.lb" tvg-country="LB" tvg-language="Arabic" tvg-logo="http://futuretvnetwork.com/images/logo.png" group-title="General",Future TV (576p) [Not 24/7]
#EXTVLCOPT:http-referrer=http://azrotv.com/
diff --git a/channels/lu.m3u b/channels/lu.m3u
index ea0ee8c467..0278b3ea9a 100644
--- a/channels/lu.m3u
+++ b/channels/lu.m3u
@@ -11,5 +11,3 @@ http://109.71.162.112:1935/live/sd.jasminchannel.stream/playlist.m3u8
https://live-edge.rtl.lu/channel1/smil:channel1/playlist.m3u8
#EXTINF:-1 tvg-id="RTL.lu" tvg-country="LU" tvg-language="" tvg-logo="https://i.imgur.com/bJrUjIC.png" group-title="",RTL (1080p)
https://rtlradio-streaming.rtl.lu/rtlradiowebtv/smil:rtlradiowebtv/playlist.m3u8
-#EXTINF:-1 tvg-id="RTL.lu" tvg-country="LU" tvg-language="" tvg-logo="https://i.imgur.com/bJrUjIC.png" group-title="",RTL 2 (1080p)
-https://live-edge.rtl.lu/channel2/smil:channel2/playlist.m3u8
diff --git a/channels/mq.m3u b/channels/mq.m3u
index 6f018de2b2..ddf801bac4 100644
--- a/channels/mq.m3u
+++ b/channels/mq.m3u
@@ -1,5 +1,5 @@
#EXTM3U
-#EXTINF:-1 tvg-id="EsperanceTV.mq" tvg-country="MQ" tvg-language="French" tvg-logo="https://i.imgur.com/wnz50vR.png" group-title="Religious",Espérance TV
+#EXTINF:-1 tvg-id="EsperanceTV.mq" tvg-country="MQ" tvg-language="French" tvg-logo="https://i.imgur.com/wnz50vR.png" group-title="Religious",Espérance TV (720p)
https://hcinteram.mmdlive.lldns.net/hcinteram/5fb30e8b271544039e79f93d4d496b25/manifest.m3u8
-#EXTINF:-1 tvg-id="Martiniquela1ère.mq" tvg-country="MQ" tvg-language="French" tvg-logo="https://i.imgur.com/z3AeEbJ.png" group-title="General",Martinique la 1ère
+#EXTINF:-1 tvg-id="Martiniquela1ère.mq" tvg-country="MQ" tvg-language="French" tvg-logo="https://i.imgur.com/z3AeEbJ.png" group-title="General",Martinique la 1ère [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCgA9V57lQlZFXkDfhVGTWSg/live
diff --git a/channels/mx.m3u b/channels/mx.m3u
index 686ddc3086..c9d46ec0c3 100644
--- a/channels/mx.m3u
+++ b/channels/mx.m3u
@@ -3,7 +3,7 @@
https://cdn87.theus6tv.tk/locals/SanDiego/xhtit-tdt2.m3u8
#EXTINF:-1 tvg-id="ADN40.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/x8lwsjM.png" group-title="",ADN 40 (480p)
https://mdstrm.com/live-stream-playlist/60b578b060947317de7b57ac.m3u8
-#EXTINF:-1 tvg-id="ADN40.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/x8lwsjM.png" group-title="",ADN 40
+#EXTINF:-1 tvg-id="ADN40.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/x8lwsjM.png" group-title="",ADN 40 [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC7k--FhnJzhPTrbtldMSoQQ/live
#EXTINF:-1 tvg-id="AlcarriaTV.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/9Xn7ZEZ.jpg" group-title="",Alcarria TV (576p)
http://217.182.77.27/live/alcarriatv-livestream.m3u8
@@ -19,14 +19,14 @@ https://cdn87.theus6tv.tk/locals/SanDiego/xhjk-tdt.m3u8
http://stream2.dynalias.com:1935/live/tvlive1/playlist.m3u8
#EXTINF:-1 tvg-id="XEWTTDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://media.localbtv.com/images/sandiegobtv/logos/12.1.png" group-title="Local",Canal 12 (XETW-TDT) (1080p)
https://cdn87.theus6tv.tk/locals/SanDiego/xewt-tdt.m3u8
-#EXTINF:-1 tvg-id="XEWTTDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://media.localbtv.com/images/sandiegobtv/logos/12.1.png" group-title="Local",Canal 12 (XETW-TDT) (1080p)
+#EXTINF:-1 tvg-id="XEWTTDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://media.localbtv.com/images/sandiegobtv/logos/12.1.png" group-title="Local",Canal 12 (XETW-TDT) (1080p) [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCjwXjnO3BGePtB7gSKEpoqA/live
-#EXTINF:-1 tvg-id="Canal28.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/lr4MZFg.png" group-title="",Canal 28 (720p)
+#EXTINF:-1 tvg-id="Canal28.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/lr4MZFg.png" group-title="",Canal 28 (720p) [Offline]
https://api.new.livestream.com/accounts/3789491/events/8003011/live.m3u8
-#EXTINF:-1 tvg-id="Canal44.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/YDp8MlN.png" group-title="",Canal 44 Ciudad Juárez (720p)
-https://5e50264bd6766.streamlock.net/canal44/videocanal44/playlist.m3u8
#EXTINF:-1 tvg-id="Canal44.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/YDp8MlN.png" group-title="",Canal 44 Chihuahua (720p)
https://5e50264bd6766.streamlock.net/canal442/videocanal442/playlist.m3u8
+#EXTINF:-1 tvg-id="Canal44.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/YDp8MlN.png" group-title="",Canal 44 Ciudad Juárez (720p)
+https://5e50264bd6766.streamlock.net/canal44/videocanal44/playlist.m3u8
#EXTINF:-1 tvg-id="XHBJTDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/en/0/0e/Canal45Tijuana.png" group-title="Local",Canal 45 (XHBJ-TDT) (1080p)
https://cdn87.theus6tv.tk/locals/SanDiego/xhbj-tdt.m3u8
#EXTINF:-1 tvg-id="Canal5.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/mw4992J.png" group-title="Local",Canal 5 (XETV-TDT) (1080p)
@@ -54,24 +54,22 @@ http://201.144.184.98:1935/genesis/smil:television.smil/playlist.m3u8
http://wms.tecnoxia.com:1935/8158/8158/playlist.m3u8
#EXTINF:-1 tvg-id="IcrtvColima.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/Dru29kQ.png" group-title="",Icrtv Colima (720p)
https://5ca9af4645e15.streamlock.net/canal11/videocanal11/playlist.m3u8
+#EXTINF:-1 tvg-id="ImagenMulticast.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/KDZ50eC.jpg" group-title="Local",Imagen Multicast [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UClqo4ZAAZ01HQdCTlovCgkA/live
#EXTINF:-1 tvg-id="XHCTTITDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://yt3.ggpht.com/ytc/AAUvwngCFclkx8_OjeImr3mO1BvDLtxIUkDcDL037PCAgw" group-title="Local",Imagen Multicast (XHCTTI-TDT) (432p) [Not 24/7]
https://cdn87.theus6tv.tk/locals/SanDiego/xhctti-tdt2.m3u8
-#EXTINF:-1 tvg-id="ImagenMulticast.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/KDZ50eC.jpg" group-title="Local",Imagen Multicast [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UClqo4ZAAZ01HQdCTlovCgkA/live
-#EXTINF:-1 tvg-id="ImagenRadio.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/SINYy29.png" group-title="",Imagen Radio [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="ImagenRadio.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/SINYy29.png" group-title="",Imagen Radio [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCB0BUmdBOrH9mYU2ebs1eWA/live
-#EXTINF:-1 tvg-id="XHCTTITDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Logo_Imagen_Televisi%C3%B3n_2016.png/800px-Logo_Imagen_Televisi%C3%B3n_2016.png" group-title="",Imagen TV (XHCTTI-TDT) (1080p) [Not 24/7]
-https://cdn87.theus6tv.tk/locals/SanDiego/xhctti-tdt.m3u8
#EXTINF:-1 tvg-id="Imagentv.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/mRGetOJ.png" group-title="",Imagen TV (720p)
https://stream-04.nyc.dailymotion.com/sec(YDiRVmci6dFcTAVfdXnSLkVhTJz_zPGOO7WKknz-Hj0)/dm/3/x82z4if/s/live-2.m3u8
+#EXTINF:-1 tvg-id="XHCTTITDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1d/Logo_Imagen_Televisi%C3%B3n_2016.png/800px-Logo_Imagen_Televisi%C3%B3n_2016.png" group-title="",Imagen TV (XHCTTI-TDT) (1080p) [Not 24/7]
+https://cdn87.theus6tv.tk/locals/SanDiego/xhctti-tdt.m3u8
#EXTINF:-1 tvg-id="JaliscoTV.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/N4meE8I.png" group-title="",Jalisco TV (1080p)
https://5fa5de1a545ae.streamlock.net/sisjalisciense/sisjalisciense/playlist.m3u8
#EXTINF:-1 tvg-id="LaOctava.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/qQjenrC.png" group-title="",La Octava TV (720p)
https://stream-01.nyc.dailymotion.com/sec(jgGqWSgcC1UbbwRnedTC2hpb0C-zKG3oSJZVmOwxO24)/dm/3/x80mow9/d/live-2.m3u8
#EXTINF:-1 tvg-id="MariaVisionMexico.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/bLSCeSB.png" group-title="Religious",María Visión Mexico (1080p)
https://1601580044.rsc.cdn77.org/live/_jcn_/amlst:Mariavision/master.m3u8
-#EXTINF:-1 tvg-id="MexicoTravelChannel.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/TnHaCDB.png" group-title="",México Travel Channel (477p)
-https://stream-02.nyc.dailymotion.com/sec(0HE75RGSqqnhnSdEMl12ZaGu2bHhU1XkDQ_wlPlnNVE)/dm/3/x7v76vf/s/live-1.m3u8
#EXTINF:-1 tvg-id="MexiquenseTV.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/IjE1ORI.png" group-title="",Mexiquense TV (720p)
https://5ca3e84a76d30.streamlock.net/mexiquense/videomexiquense/playlist.m3u8
#EXTINF:-1 tvg-id="Milenio.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/d/d4/Milenio_Television.png" group-title="",Milenio Televisión (1080p) [Offline]
@@ -86,10 +84,12 @@ https://mdstrm.com/live-stream-playlist/5c54d38ca392a5119bb0aa0d.m3u8
https://mdstrm.com/live-stream-playlist/57bf686a61ff39e1085d43e1.m3u8
#EXTINF:-1 tvg-id="MultimediosMonterrey.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/7OHMuRl.png" group-title="",Multimedios Monterrey (720p)
https://mdstrm.com/live-stream-playlist/57b4dbf5dbbfc8f16bb63ce1.m3u8
-#EXTINF:-1 tvg-id="MVMNoticias.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/rieBDBi.png" group-title="News",MVM Noticias (Oaxaca) (720p)
-https://stream-02.nyc.dailymotion.com/sec(3uHXKsK7_-J9YIYIiNPgOElBW9a270oEFfnT7Gco_t81qkmq2tSJaGADLHwJDFRX)/p/dm/3/x6t7n6t/s/live-3.m3u8
#EXTINF:-1 tvg-id="MVMNoticias.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/AdP9s9a.png" group-title="News",MVM Noticias (Oaxaca) (400p)
https://dcunilive21-lh.akamaihd.net/i/dclive_1@59479/master.m3u8
+#EXTINF:-1 tvg-id="MVMNoticias.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/rieBDBi.png" group-title="News",MVM Noticias (Oaxaca) (720p)
+https://stream-02.nyc.dailymotion.com/sec(3uHXKsK7_-J9YIYIiNPgOElBW9a270oEFfnT7Gco_t81qkmq2tSJaGADLHwJDFRX)/p/dm/3/x6t7n6t/s/live-3.m3u8
+#EXTINF:-1 tvg-id="MexicoTravelChannel.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/TnHaCDB.png" group-title="",México Travel Channel (477p)
+https://stream-02.nyc.dailymotion.com/sec(0HE75RGSqqnhnSdEMl12ZaGu2bHhU1XkDQ_wlPlnNVE)/dm/3/x7v76vf/s/live-1.m3u8
#EXTINF:-1 tvg-id="Noticias.Canal10.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/y4akKrD.png" group-title="",Noticias Canal 10 (360p)
https://canal10.mediaflix.istream.mx/wza_live/live/movil/playlist.m3u8
#EXTINF:-1 tvg-id="OnceInternacional.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/NAgRCyY.png" group-title="",Once Internacional [Offline]
@@ -122,11 +122,11 @@ http://wms.tecnoxia.com:1935/rytqrolive/rytqrolive/master.m3u8
http://189.240.210.28:1935/envivo/puecom/playlist.m3u8
#EXTINF:-1 tvg-id="SetPuebla.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/osgOMAu.png" group-title="Local",SET Televisión Canal 26.2 (720p)
http://189.240.210.28:1935/live/setpuebla/playlist.m3u8
-#EXTINF:-1 tvg-id="sintesistv.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/FJPDf2K.png" group-title="General",SintesisTV (1080p)
+#EXTINF:-1 tvg-id="sintesistv.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/FJPDf2K.png" group-title="General",SintesisTV (1080p) [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/sintesistv
#EXTINF:-1 tvg-id="TELESISTEMACANAL9.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="http://mastelevisioncr.com/wp-content/uploads/2020/08/WhatsApp-Image-2020-08-02-at-12.42.47-300x300.jpeg" group-title="",TELE SISTEMA CANAL 9 (720p)
http://k4.usastreams.com/ARBtv/ARBtv/playlist.m3u8
-#EXTINF:-1 tvg-id="Teleformula.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/aH9uKk0.jpg" group-title="",Telefórmula (720p)
+#EXTINF:-1 tvg-id="Teleformula.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/aH9uKk0.jpg" group-title="",Telefórmula (720p) [Offline]
https://stream-02.nyc.dailymotion.com/sec(M6H1kElr_3TPI3uTZiYJqlbuB2QrrqBCmXePJswrljQ)/dm/3/x7u0spq/s/live-3.m3u8
#EXTINF:-1 tvg-id="TelemarCampeche.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/ysowtzb.png" group-title="",Telemar Campeche (480p)
https://59d39900ebfb8.streamlock.net/8410/8410/playlist.m3u8
@@ -134,53 +134,51 @@ https://59d39900ebfb8.streamlock.net/8410/8410/playlist.m3u8
http://s5.mexside.net:1935/telemax/telemax/playlist.m3u8
#EXTINF:-1 tvg-id="Teleritmo.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://cdn.tvpassport.com/image/station/240x135/teleritmo-logo.png" group-title="",Teleritmo (720p)
http://mdstrm.com/live-stream-playlist/57b4dc126338448314449d0c.m3u8
+#EXTINF:-1 tvg-id="TelevisaAguascalientes.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/iVF17fh.png" group-title="Local",Televisa Aguascalientes [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC5ZtV3bu3bjSuOLoA6oCFIg/live
+#EXTINF:-1 tvg-id="TelevisaChihuahua.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/CAuAu0Z.png" group-title="Local",Televisa Chihuahua [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCjfxDe7In59Jbfw2HmIh_Vg/live
+#EXTINF:-1 tvg-id="TelevisaCiudadJuarez.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/4vEFJxf.png" group-title="Local",Televisa Ciudad Juarez [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCot4t8PVKz8TT5xVM8Eb00w/live
+#EXTINF:-1 tvg-id="TelevisaDelBajio" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/LkeCdc5.png" group-title="Local",Televisa Del Bajio [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC-uYy4_jIvDoJ4wigEv1S5A/live
+#EXTINF:-1 tvg-id="TelevisaDelGolfo.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/35fsRTS.jpg" group-title="Local",Televisa Del Golfo [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCQ08tNTPiBn44c975S81ftg/live
+#EXTINF:-1 tvg-id="TelevisaEstado.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/gyZCypH.png" group-title="Local",Televisa Estado [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC9DH82HVSf4katwMeUpY80w
+#EXTINF:-1 tvg-id="TelevisaGuadalajara.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/Vp4B0BM.jpg" group-title="Local",Televisa Guadalajara [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCRujF_YxVVFmTRWURQH-Cww/live
+#EXTINF:-1 tvg-id="TelevisaGuerrero.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/lOAnjFs.png" group-title="Local",Televisa Guerrero [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCnxTRk2K1iNsQkgpWXxyj4w/live
+#EXTINF:-1 tvg-id="TelevisaLaguna.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/L4GDHQm.png" group-title="Local",Televisa Laguna [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC_mwCcsKDJLSWjply5s0h8w/live
+#EXTINF:-1 tvg-id="TelevisaMexicali.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/NIEWc2s.jpg" group-title="Local",Televisa Mexicali [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCcmuFsMIIIHO3LBqeBVfm8Q/live
+#EXTINF:-1 tvg-id="TelevisaMonterrey.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/ierlYM1.jpg" group-title="Local",Televisa Monterrey [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCGDJLLphnP0zQQaE3kgo5Wg/live
+#EXTINF:-1 tvg-id="TelevisaMorelos.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/QiJoBVs.png" group-title="Local",Televisa Morelos [Offline]
+https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCcC9ykApQrgl4UxbKg2U4zw/live
#EXTINF:-1 tvg-id="TelevisaNewsMexico.mx" tvg-country="MX" tvg-language="" tvg-logo="" group-title="News",Televisa News Mexico [Offline]
https://stnothds-lh.akamaihd.net/i/sslf0r0tvnus_1@109755/master.m3u8
-#EXTINF:-1 tvg-id="TelevisaAguascalientes.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/iVF17fh.png" group-title="Local",Televisa Aguascalientes [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC5ZtV3bu3bjSuOLoA6oCFIg/live
-#EXTINF:-1 tvg-id="TelevisaChihuahua.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/CAuAu0Z.png" group-title="Local",Televisa Chihuahua [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCjfxDe7In59Jbfw2HmIh_Vg/live
-#EXTINF:-1 tvg-id="TelevisaCiudadJuarez.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/4vEFJxf.png" group-title="Local",Televisa Ciudad Juarez [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCot4t8PVKz8TT5xVM8Eb00w/live
-#EXTINF:-1 tvg-id="TelevisaDelBajio" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/LkeCdc5.png" group-title="Local",Televisa Del Bajio [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC-uYy4_jIvDoJ4wigEv1S5A/live
-#EXTINF:-1 tvg-id="TelevisaDelGolfo.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/35fsRTS.jpg" group-title="Local",Televisa Del Golfo [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCQ08tNTPiBn44c975S81ftg/live
-#EXTINF:-1 tvg-id="TelevisaEstado.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/gyZCypH.png" group-title="Local",Televisa Estado [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC9DH82HVSf4katwMeUpY80w
-#EXTINF:-1 tvg-id="TelevisaGuerrero.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/lOAnjFs.png" group-title="Local",Televisa Guerrero [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCnxTRk2K1iNsQkgpWXxyj4w/live
-#EXTINF:-1 tvg-id="TelevisaGuadalajara.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/Vp4B0BM.jpg" group-title="Local",Televisa Guadalajara [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCRujF_YxVVFmTRWURQH-Cww/live
-#EXTINF:-1 tvg-id="TelevisaLaguna.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/L4GDHQm.png" group-title="Local",Televisa Laguna [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC_mwCcsKDJLSWjply5s0h8w/live
-#EXTINF:-1 tvg-id="TelevisaMexicali.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/NIEWc2s.jpg" group-title="Local",Televisa Mexicali [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCcmuFsMIIIHO3LBqeBVfm8Q/live
-#EXTINF:-1 tvg-id="TelevisaMorelos.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/QiJoBVs.png" group-title="Local",Televisa Morelos [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCcC9ykApQrgl4UxbKg2U4zw/live
-#EXTINF:-1 tvg-id="TelevisaMonterrey.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/ierlYM1.jpg" group-title="Local",Televisa Monterrey [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCGDJLLphnP0zQQaE3kgo5Wg/live
-#EXTINF:-1 tvg-id="TelevisaNoreste.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/rHCKwYB.jpg" group-title="Local",Televisa Noreste [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaNoreste.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/rHCKwYB.jpg" group-title="Local",Televisa Noreste [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC752DYv5vPlTSMrvEjfZXcw/live
-#EXTINF:-1 tvg-id="TelevisaPiedrasNegras.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/fEtvxpz.jpg" group-title="Local",Televisa Piedras Negras [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaPiedrasNegras.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/fEtvxpz.jpg" group-title="Local",Televisa Piedras Negras [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCxK8C1E8UZ5RipNXIBYEvTA/live
-#EXTINF:-1 tvg-id="TelevisaPuebla.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/2dqF5S8.jpg" group-title="Local",Televisa Puebla [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaPuebla.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/2dqF5S8.jpg" group-title="Local",Televisa Puebla [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC-HNztluSQSffhIWJTL-LUw/live
-#EXTINF:-1 tvg-id="TelevisaQueretaro.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/47c1AIS.png" group-title="Local",Televisa Queretaro [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaQueretaro.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/47c1AIS.png" group-title="Local",Televisa Queretaro [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC9QNz6VS3gGz55dzxAQtgtA/live
-#EXTINF:-1 tvg-id="TelevisaSanLuisPotosí.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/oxt91dr.jpg" group-title="Local",Televisa San Luis Potosí [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaSanLuisPotosí.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/oxt91dr.jpg" group-title="Local",Televisa San Luis Potosí [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCaRuyaHshLdq462E9_pLzdA/live
-#EXTINF:-1 tvg-id="TelevisaSinaloa.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/nZ9HE94.png" group-title="Local",Televisa Sinaloa [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaSinaloa.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/nZ9HE94.png" group-title="Local",Televisa Sinaloa [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCtm1LvYEIQ_NrfOUVJ08YhQ/live
-#EXTINF:-1 tvg-id="TelevisaSonora.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/3FjHKAC.jpg" group-title="Local",Televisa Sonora [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaSonora.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/3FjHKAC.jpg" group-title="Local",Televisa Sonora [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCyzWMHGS7bs0sot6KZk5EZg/live
-#EXTINF:-1 tvg-id="TelevisaVeracruz.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/4hPbfbg.png" group-title="Local",Televisa Veracruz [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaVeracruz.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/4hPbfbg.png" group-title="Local",Televisa Veracruz [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UC5EnLdE7ASjYzWt7wvT-QSg/live
-#EXTINF:-1 tvg-id="TelevisaZacatecas.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/vsbl0u6.png" group-title="Local",Televisa Zacatecas [Not 24/7] [Offline]
+#EXTINF:-1 tvg-id="TelevisaZacatecas.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/vsbl0u6.png" group-title="Local",Televisa Zacatecas [Offline]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCQb3i7gu9J8A4zzQU7j6C1Q/live
-#EXTINF:-1 tvg-id="TelevisaTijuana.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/MnPyWkf.png" group-title="Local",Televisa Tijuana [Not 24/7] [Offline]
-https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.youtube.com/channel/UCjwXjnO3BGePtB7gSKEpoqA/live
-#EXTINF:-1 tvg-id="TlaxcalaTelevisión.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/6YKFW2G.png" group-title="",Tlaxcala Televisión (360p)
+#EXTINF:-1 tvg-id="TlaxcalaTelevisión.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/6YKFW2G.png" group-title="",Tlaxcala Televisión (360p) [Offline]
https://vid.mega00.com:5443/LiveApp/streams/928111829917388844551988/928111829917388844551988.m3u8?token=null
#EXTINF:-1 tvg-id="TransmediaTelevisionMorelia.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/kpffqTI.png" group-title="",Transmedia Televisión Morelia (500p)
http://streamingcws20.com:1935/tmtv/videotmtv/playlist.m3u8
@@ -189,7 +187,7 @@ https://5ca3e84a76d30.streamlock.net/tmtv/videotmtv/playlist.m3u8
#EXTINF:-1 tvg-id="TVLobo.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/XZ8GmZW.png" group-title="",TV Lobo (404p)
http://streamingcws20.com:1935/lobodurango/videolobodurango/playlist.m3u8
#EXTINF:-1 tvg-id="TV.Unam.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/OxxROZI.png" group-title="",TV Unam (720p)
-https://5ca3e84a76d30.streamlock.net/tvunam/videotvunam/playlist.m3u8?DVR
+https://5ca3e84a76d30.streamlock.net/tvunam/videotvunam/playlist.m3u8?DVR=
#EXTINF:-1 tvg-id="XHGVTDT.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/15kcNRb.png" group-title="",TVMÁS (XHGV-TDT) (360p)
https://5ca9af4645e15.streamlock.net/rtv/videortv/playlist.m3u8
#EXTINF:-1 tvg-id="TVP.mx" tvg-country="MX" tvg-language="Spanish" tvg-logo="https://i.imgur.com/mw4992J.png" group-title="",TVP (720p)
diff --git a/channels/pe.m3u b/channels/pe.m3u
index 617e9059b8..059c425e6d 100644
--- a/channels/pe.m3u
+++ b/channels/pe.m3u
@@ -38,6 +38,8 @@ https://cdnh8.iblups.com/hls/OVJNKV4pSr.m3u8
https://5c3fb01839654.streamlock.net:1963/iptvcentraltv/livecentraltvtv/playlist.m3u8
#EXTINF:-1 tvg-id="ChicosIPe.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://i.imgur.com/FI1Hd4E.png" group-title="Family",Chicos IPe [Not 24/7]
http://cdnh4.iblups.com/hls/OVJNKV4pSr.m3u8
+#EXTINF:-1 tvg-id="ClipsTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/clipstv/picture?width=320&height=320" group-title="Local",ClipsTV (Ica) [Not 24/7]
+https://7.innovatestream.pe:19360/clipstv/clipstv.m3u8
#EXTINF:-1 tvg-id="CNCDigital.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/cnc.digital.pe/picture?width=320&height=320" group-title="Local",CNC Digital (Iquitos) [Not 24/7]
https://v4.tustreaming.cl/cnc/index.m3u8
#EXTINF:-1 tvg-id="Conecta2TV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/RadioConecta2/picture?width=320&height=320" group-title="Local",Conecta2TV (Lima) [Not 24/7]
@@ -156,6 +158,10 @@ https://mediastreamm.com:3753/live/qosqotimeslive.m3u8
https://linkastream.co/headless?url=https://www.twitch.tv/quatrotvgo
#EXTINF:-1 tvg-id="QuattroTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://pbs.twimg.com/profile_images/572791252093919232/DKxHh5Oj_200x200.png" group-title="Local",Quattro TV (720p) [Not 24/7]
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.twitch.tv/quatrotvgo
+#EXTINF:-1 tvg-id="Quillavision.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/459651607763457/picture?width=320&height=320" group-title="Local",Quillavision (Cuzco) [Not 24/7]
+http://v4.tustreaming.cl/quillavision/index.m3u8
+#EXTINF:-1 tvg-id="RadioPachatusan.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/1260738527355956/picture?width=320&height=320" group-title="Local",Radio Pachatusan (Cuzco) [Not 24/7]
+http://v4.tustreaming.cl/pachatuzan/index.m3u8
#EXTINF:-1 tvg-id="RadioSanBorjaTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/radiosanborja/picture?width=320&height=320" group-title="Music",Radio San Borja TV (720p) [Not 24/7]
https://5c3fb01839654.streamlock.net:1963/iptvsanborja/livesanborjatv/playlist.m3u8
#EXTINF:-1 tvg-id="RadioSistema.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/radiosistema/picture?width=320&height=320" group-title="Local",Radio Sistema (Ica) [Not 24/7]
@@ -181,6 +187,8 @@ http://38.131.11.9:1080/play/a0d8
https://7.innovatestream.pe:19360/rtvtotal/rtvtotal.m3u8
#EXTINF:-1 tvg-id="RWTelevisionTarapoto.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/rwtelevision/picture?width=320&height=320" group-title="Local",RW Televisión (Tarapoto) [Not 24/7]
https://tvdatta.com:3952/live/rwtelevisionlive.m3u8
+#EXTINF:-1 tvg-id="SelvaMiaTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/103910101231367/picture?width=320&height=320" group-title="Local",SelvaMía TV (Aguaytía) [Not 24/7]
+https://inliveserver.com:1936/18022/18022/playlist.m3u8
#EXTINF:-1 tvg-id="Sistema1.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/sistema1tv/picture?width=320&height=320" group-title="Local",Sistema 1 (Huaraz) (720p) [Not 24/7]
https://tv.siete.us/sistema1/sistema1/index.m3u8
#EXTINF:-1 tvg-id="SolarTelevision.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/TELEVISIONSOLAR/picture?width=320&height=320" group-title="Local",Solar Televisión (Abancay) [Not 24/7]
@@ -216,6 +224,8 @@ https://stmv.panel.mivideo.pro/cinetv/cinetv/playlist.m3u8
https://tvdatta.com:3084/live/toptvaguaytialive.m3u8
#EXTINF:-1 tvg-id="TopLatino.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/toplatinotv/picture?width=320&height=320" group-title="Music",Top Latino TV (404p)
https://5cefcbf58ba2e.streamlock.net/tltvweb/tvweb.stream/playlist.m3u8
+#EXTINF:-1 tvg-id="TPTO.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/TPTOCHANNEL/picture?width=320&height=320" group-title="Local",TPTO TV (Tarapoto) [Not 24/7]
+http://v4.tustreaming.cl/tpto/index.m3u8
#EXTINF:-1 tvg-id="TropicalTVPuertoMaldonado.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/radiotropical105.7fm/picture?width=320&height=320" group-title="Local",Tropical TV (Puerto Maldonado) (360p) [Not 24/7]
https://tv.oyotunstream.com:1936/tropicaltv/tropicaltv/playlist.m3u8
#EXTINF:-1 tvg-id="TumpisTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/tumpisperu/picture?width=320&height=320" group-title="Local",Tumpis TV (Tumbes) [Not 24/7]
@@ -267,13 +277,3 @@ https://linkastream.co/headless?url=https://www.dailymotion.com/WillaxTV
https://query-streamlink.herokuapp.com/iptv-query?streaming-ip=https://www.dailymotion.com/WillaxTV
#EXTINF:-1 tvg-id="XTVChachapoyas.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/canalxtvperu/picture?width=320&height=320" group-title="Local",X TV (Chachapoyas) [Not 24/7]
https://stmv.panel.grupolimalive.com/xtv/xtv/playlist.m3u8
-#EXTINF:-1 tvg-id="RadioPachatusan.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/1260738527355956/picture?width=320&height=320" group-title="Local",Radio Pachatusan (Cuzco) [Not 24/7]
-http://v4.tustreaming.cl/pachatuzan/index.m3u8
-#EXTINF:-1 tvg-id="Quillavision.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/459651607763457/picture?width=320&height=320" group-title="Local",Quillavision (Cuzco) [Not 24/7]
-http://v4.tustreaming.cl/quillavision/index.m3u8
-#EXTINF:-1 tvg-id="ClipsTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/clipstv/picture?width=320&height=320" group-title="Local",ClipsTV (Ica) [Not 24/7]
-https://7.innovatestream.pe:19360/clipstv/clipstv.m3u8
-#EXTINF:-1 tvg-id="SelvaMiaTV.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/103910101231367/picture?width=320&height=320" group-title="Local",SelvaMía TV (Aguaytía) [Not 24/7]
-https://inliveserver.com:1936/18022/18022/playlist.m3u8
-#EXTINF:-1 tvg-id="TPTO.pe" tvg-country="PE" tvg-language="Spanish" tvg-logo="https://graph.facebook.com/TPTOCHANNEL/picture?width=320&height=320" group-title="Local",TPTO TV (Tarapoto) [Not 24/7]
-http://v4.tustreaming.cl/tpto/index.m3u8
diff --git a/channels/ph.m3u b/channels/ph.m3u
index cc997f327d..520ace24ee 100644
--- a/channels/ph.m3u
+++ b/channels/ph.m3u
@@ -1,5 +1,5 @@
#EXTM3U
-#EXTINF:-1 tvg-id="BeamTV.ph" tvg-country="PH" tvg-language="Tagalog" tvg-logo="https://i.imgur.com/PwUFKik.jpg" group-title="",Beam TV (480p) [Offline]
+#EXTINF:-1 tvg-id="BeamTV.ph" tvg-country="PH" tvg-language="Tagalog" tvg-logo="https://i.imgur.com/PwUFKik.jpg" group-title="",Beam TV (480p) [Not 24/7]
https://d3cbe0gidjd4k2.cloudfront.net/channel_5/channel5/playlist.m3u8
#EXTINF:-1 tvg-id="CTV3CentralLuzon.ph" tvg-country="PH" tvg-language="" tvg-logo="https://i.imgur.com/BhTSFnR.png" group-title="",CTV3 Central Luzon [Not 24/7]
https://iptv--iptv.repl.co/streamlink?url=https://www.twitch.tv/communitytv3/
@@ -17,9 +17,9 @@ https://d3cbe0gidjd4k2.cloudfront.net/channel_7/channel7/playlist.m3u8
https://d3cbe0gidjd4k2.cloudfront.net/channel_6/channel6/playlist.m3u8
#EXTINF:-1 tvg-id="NET25.ph" tvg-country="PH" tvg-language="" tvg-logo="" group-title="",NET 25 [Offline]
https://ebc.sytes.net/hls/net25.m3u8
-#EXTINF:-1 tvg-id="PilipinasHD.ph" tvg-country="PH" tvg-language="" tvg-logo="https://i.imgur.com/Wis8fVO.jpg" group-title="",Pilipinas HD (360p) [Offline]
+#EXTINF:-1 tvg-id="PilipinasHD.ph" tvg-country="PH" tvg-language="" tvg-logo="https://i.imgur.com/Wis8fVO.jpg" group-title="",Pilipinas HD (360p) [Not 24/7]
https://d3cbe0gidjd4k2.cloudfront.net/channel_5/smil:channel_5.smil/chunklist_w1281634943_b300000_sleng.m3u8
-#EXTINF:-1 tvg-id="ShopTV.ph" tvg-country="PH" tvg-language="Tagalog" tvg-logo="https://i.imgur.com/RUQASCU.png" group-title="Shop",Shop TV (480p) [Offline]
+#EXTINF:-1 tvg-id="ShopTV.ph" tvg-country="PH" tvg-language="Tagalog" tvg-logo="https://i.imgur.com/RUQASCU.png" group-title="Shop",Shop TV (480p) [Not 24/7]
https://d3cbe0gidjd4k2.cloudfront.net/channel_1/channel1/playlist.m3u8
#EXTINF:-1 tvg-id="SMNI.ph" tvg-country="PH" tvg-language="Tagalog" tvg-logo="https://i.imgur.com/l2JSQme.png" group-title="",SMNI (720p)
https://api.new.livestream.com/accounts/19079954/events/7831871/live.m3u8
diff --git a/channels/ru.m3u b/channels/ru.m3u
index a681b8a6e5..6b8e12c0c9 100644
--- a/channels/ru.m3u
+++ b/channels/ru.m3u
@@ -397,10 +397,10 @@ http://hls.mirtv.cdnvideo.ru/mirtv-parampublish/mir24_2500/playlist.m3u8
https://sc.id-tv.kz/Mir24.m3u8
#EXTINF:-1 tvg-id="MirBelogorya.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="http://mirbelogorya.ru/images/stories/news/2014/08/мир/0белогорья_логотип.jpg" group-title="Local",Мир Белагорья (720p)
http://mirbelogorya.ru:8080/mirbelogorya/index.m3u8
-#EXTINF:-1 tvg-id="MirBelogorya.ru" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",Мир Белогорья (720p)
-http://live-mirbelogorya.cdnvideo.ru/mirbelogorya/mirbelogorya1.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="MirBelogorya.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="http://mirbelogorya.ru/images/stories/news/2014/08/мир%20белогорья_логотип.jpg" group-title="Local",Мир Белогорья (720p)
http://stream.tvbelgorod.ru:8080/mirbelogorya/index.m3u8
+#EXTINF:-1 tvg-id="MirBelogorya.ru" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",Мир Белогорья (720p) [Offline]
+http://live-mirbelogorya.cdnvideo.ru/mirbelogorya/mirbelogorya1.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="MirSeriala.ru" tvg-country="RU" tvg-language="" tvg-logo="" group-title="",Мир Сериала (576p)
http://185.161.224.216/dash/Mir_seriala_SD.ism/playlist.mpd
#EXTINF:-1 tvg-id="Mirseriala.ru" tvg-country="RU" tvg-language="Russian" tvg-logo="" group-title="Movies",Мир сериала (576p)
diff --git a/channels/tr.m3u b/channels/tr.m3u
index 93960ede65..bf3a100bc3 100644
--- a/channels/tr.m3u
+++ b/channels/tr.m3u
@@ -77,7 +77,7 @@ https://mn-nl.mncdn.com/blutv_diyanet/smil:diyanet_sd.smil/playlist.m3u8
https://waw2.artiyerelmedya.net/dimtv/bant1/playlist.m3u8
#EXTINF:-1 tvg-id="DRTTV.tr" tvg-country="TR" tvg-language="" tvg-logo="https://i.imgur.com/uOMuhrI.jpg" group-title="",DRT TV (720p)
https://broadcasttr.com:446/drt/bant1/playlist.m3u8
-#EXTINF:-1 tvg-id="EgeTV.tr" tvg-country="TR" tvg-language="" tvg-logo="" group-title="",Ege TV (720p)
+#EXTINF:-1 tvg-id="EgeTV.tr" tvg-country="TR" tvg-language="" tvg-logo="" group-title="",Ege TV (720p) [Offline]
https://waw2.artiyerelmedya.net/egetv/bant1/playlist.m3u8
#EXTINF:-1 tvg-id="EgeTurkTV.tr" tvg-country="TR" tvg-language="Turkish" tvg-logo="https://i.imgur.com/DdJWGOk.jpg" group-title="",Ege Türk TV (360p)
https://5be5d840359c6.streamlock.net/egeaturktv/egeaturktv/playlist.m3u8
diff --git a/channels/us.m3u b/channels/us.m3u
index fc5bac01b1..a7ba973217 100644
--- a/channels/us.m3u
+++ b/channels/us.m3u
@@ -317,7 +317,7 @@ http://209.91.213.10:8088/play/a00m
https://d2dy6pkj44n6e7.cloudfront.net/v1/master/77872db67918a151b697b5fbc23151e5765767dc/cmg_PROD_cmg-tv-10020_27d61a9c-67b2-4d7c-9486-626a6a071467_LE/in/cmg-wftxtv-hls-v3/live.m3u8
#EXTINF:-1 tvg-id="BowieTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/ZgrlVYT.jpg" group-title="Local",Bowie TV (720p)
https://granicusliveus3-a.akamaihd.net/cityofbowie/G0466_001/playlist.m3u8
-#EXTINF:-1 tvg-id="bspoketv.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/jsiHrMV.png" group-title="Lifestyle",bspoketv (720p)
+#EXTINF:-1 tvg-id="bspoketv.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/jsiHrMV.png" group-title="Lifestyle",bspoketv (720p) [Offline]
https://bspoketv.s.llnwi.net/streams/322/master.m3u8
#EXTINF:-1 tvg-id="BuffaloTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/PD5MCbE.jpg" group-title="Local",Buffalo TV (360p) [Offline]
https://na-all15.secdn.net/pegstream3-live/play/c3e1e4c4-7f11-4a54-8b8f-c590a95b4ade/playlist.m3u8
@@ -339,7 +339,7 @@ https://skystreams-lh.akamaihd.net/i/SkyC1_1@500806/master.m3u8
https://skystreams-lh.akamaihd.net/i/SkyC2_1@500807/master.m3u8
#EXTINF:-1 tvg-id="CSPAN3.us" tvg-country="US" tvg-language="English" tvg-logo="https://cdn.tvpassport.com/image/station/240x135/cspan3.png" group-title="Legislative",C-SPAN 3 (108p)
https://skystreams-lh.akamaihd.net/i/SkyC3_1@500808/master.m3u8
-#EXTINF:-1 tvg-id="CableHits.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/zl7Gzwm.png" group-title="Entertainment",Cable Hits (1080p)
+#EXTINF:-1 tvg-id="CableHits.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/zl7Gzwm.png" group-title="Entertainment",Cable Hits (1080p) [Offline]
https://bk7l2w4nlx53-hls-live.5centscdn.com/AETV/514c04b31b5f01cf00dd4965e197fdda.sdp/playlist.m3u8
#EXTINF:-1 tvg-id="CaliforniaMusicChannel.us" tvg-country="US" tvg-language="English" tvg-logo="http://3.bp.blogspot.com/-Ngn_IHUGV-E/VoGzyGsSlkI/AAAAAAAAAjc/XTspAPwP2TE/s1600/CMC-Music-Channel.png" group-title="Music",California Music Channel (720p)
https://cmctv.ios.internapcdn.net/cmctv_vitalstream_com/live_1/CMCU-92/playlist.m3u8
@@ -928,7 +928,7 @@ https://live-k2302-kbp.1plus1.video/sport/smil:sport.smil/playlist.m3u8
http://66.242.170.53/hls/live/temp/index.m3u8
#EXTINF:-1 tvg-id="KCRTTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/mNK5D5k.jpg" group-title="",KCRT-TV 28 Richmond CA (KCRT) (360p)
http://granicusliveus3-a.akamaihd.net/richmond/G0034_002/chunklist.m3u8
-#EXTINF:-1 tvg-id="KDOCTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/qX4bQox.jpg" group-title="Local",KDOC-TV Los Angeles CA (720p) [Offline]
+#EXTINF:-1 tvg-id="KDOCTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/qX4bQox.jpg" group-title="Local",KDOC-TV Los Angeles CA (720p) [Not 24/7]
https://cdn87.theus6tv.tk/locals/SoCal/kdoc-dt1.m3u8
#EXTINF:-1 tvg-id="KeyTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/IhLffYk.png" group-title="Local",Key TV (720p)
http://media4.tripsmarter.com:1935/LiveTV/KTVHD/chunklist.m3u8
@@ -1106,7 +1106,7 @@ https://cdnapisec.kaltura.com/p/2630451/sp/2630451/playManifest/entryId/1_hq4vlk
https://cdn88.theus6tv.tk/united-states/locals/madison/wisc-dt2.m3u8
#EXTINF:-1 tvg-id="Mythos.us" tvg-country="US" tvg-language="English" tvg-logo="https://i.imgur.com/JBEqPZP.png" group-title="Movies",Mythos (720p)
https://rpn1.bozztv.com/36bay2/gusa-mythos/playlist.m3u8
-#EXTINF:-1 tvg-id="KRONTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/KRON_4_Main_Logo.svg/1920px-KRON_4_Main_Logo.svg.png" group-title="Local",myTV 4 San Francisco Bay Area CA (KRON-TV) (720p) [Offline]
+#EXTINF:-1 tvg-id="KRONTV.us" tvg-country="US" tvg-language="English" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ad/KRON_4_Main_Logo.svg/1920px-KRON_4_Main_Logo.svg.png" group-title="Local",myTV 4 San Francisco Bay Area CA (KRON-TV) (720p) [Not 24/7]
https://cdn87.theus6tv.tk/locals/BayArea/kron-dt1.m3u8
#EXTINF:-1 tvg-id="KMSGDT.us" tvg-country="US" tvg-language="English" tvg-logo="https://media.localbtv.com/images/channelbtv_mytv53/MyTV_53.1_Fresno_Logo_500px.png" group-title="Entertainment",myTV 53.1 Fresno CA (KMSG) (720p)
https://cdn87.theus6tv.tk/locals/Fresno/kmsg-53.1.m3u8
diff --git a/channels/us_pluto.m3u b/channels/us_pluto.m3u
index 694df3f7dd..5f2bb91153 100644
--- a/channels/us_pluto.m3u
+++ b/channels/us_pluto.m3u
@@ -273,7 +273,7 @@ https://service-stitcher.clusters.pluto.tv/stitch/hls/channel/5e8b564ff59d130007
https://service-stitcher.clusters.pluto.tv/v1/stitch/embed/hls/channel/5e8b564ff59d130007363823/master.m3u8?advertisingId=channel&appName=rokuchannel&appVersion=1.0&bmodel=bm1&channel_id=channel&content=channel&content_rating=ROKU_ADS_CONTENT_RATING&content_type=livefeed&coppa=false&deviceDNT=1&deviceId=channel&deviceMake=rokuChannel&deviceModel=web&deviceType=rokuChannel&deviceVersion=1.0&embedPartner=rokuChannel&genre=ROKU_ADS_CONTENT_GENRE&is_lat=1&platform=web&rdid=channel&studio_id=viacom&tags=ROKU_CONTENT_TAGS
#EXTINF:-1 tvg-id="PlutoTVBobEsponja.us" tvg-country="US" tvg-language="Spanish" tvg-logo="https://images.pluto.tv/channels/5f1aca0b4e448e00075e7c5e/colorLogoPNG.png" group-title="Kids",Pluto TV Bob Esponja (720p)
https://service-stitcher.clusters.pluto.tv/v1/stitch/embed/hls/channel/5f1aca0b4e448e00075e7c5e/master.m3u8?advertisingId=channel&appName=rokuchannel&appVersion=1.0&bmodel=bm1&content=channel&content_rating=ROKU_ADS_CONTENT_RATING&content_type=livefeed&coppa=false&deviceDNT=1&deviceId=channel&deviceMake=rokuChannel&deviceModel=web&deviceType=rokuChannel&deviceVersion=1.0&embedPartner=rokuChannel&is_lat=1&platform=web&rdid=channel&tags=ROKU_CONTENT_TAGS
-#EXTINF:-1 tvg-id="PlutoTVBobEsponjaPlus.us" tvg-country="US" tvg-language="Spanish" tvg-logo="https://images.pluto.tv/channels/5f1aca0b4e448e00075e7c5e/colorLogoPNG.png" group-title="Kids",Pluto TV Bob Esponja Plus (720p) [Offline]
+#EXTINF:-1 tvg-id="PlutoTVBobEsponjaPlus.us" tvg-country="US" tvg-language="Spanish" tvg-logo="https://images.pluto.tv/channels/5f1aca0b4e448e00075e7c5e/colorLogoPNG.png" group-title="Kids",Pluto TV Bob Esponja Plus (720p) [Not 24/7]
https://service-stitcher.clusters.pluto.tv/v1/stitch/embed/hls/channel/5fd87d882574170007fac022/master.m3u8?advertisingId=channel&appName=rokuchannel&appVersion=1.0&bmodel=bm1&content=channel&content_rating=ROKU_ADS_CONTENT_RATING&content_type=livefeed&coppa=false&deviceDNT=1&deviceId=channel&deviceMake=rokuChannel&deviceModel=web&deviceType=rokuChannel&deviceVersion=1.0&embedPartner=rokuChannel&is_lat=1&platform=web&rdid=channel&tags=ROKU_CONTENT_TAGS
#EXTINF:-1 tvg-id="PlutoTVBobleponge.us" tvg-country="CH;FR" tvg-language="French" tvg-logo="https://images.pluto.tv/channels/5ffc8c345822750007e167de/colorLogoPNG.png" group-title="Kids",Pluto TV Bob l'éponge (720p)
https://service-stitcher.clusters.pluto.tv/stitch/hls/channel/5ffc8c345822750007e167de/master.m3u8?advertisingId=&appName=web&appVersion=5.14.0-0f5ca04c21649b8c8aad4e56266a23b96d73b83a&app_name=web&clientDeviceType=0&clientID=6fbead95-26b1-415d-998f-1bdef62d10be&clientModelNumber=na&deviceDNT=false&deviceId=6fbead95-26b1-415d-998f-1bdef62d10be&deviceLat=48.8582&deviceLon=2.3387&deviceMake=Chrome&deviceModel=web&deviceType=web&deviceVersion=88.0.4324.150&marketingRegion=FR&serverSideAds=false&sessionID=cc7dc550-6be3-11eb-9c02-0242ac110002&sid=cc7dc550-6be3-11eb-9c02-0242ac110002&userId=
diff --git a/package-lock.json b/package-lock.json
index d377bf1b25..ebcda9db29 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,9 +4,11 @@
"requires": true,
"packages": {
"": {
+ "name": "iptv",
"license": "MIT",
"dependencies": {
"@freearhey/iso-639-3": "^1.0.0",
+ "axios": "^0.21.4",
"commander": "^7.0.0",
"iptv-checker": "^0.21.0",
"iptv-playlist-parser": "^0.5.4",
@@ -1046,19 +1048,11 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"node_modules/axios": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
- "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dependencies": {
- "follow-redirects": "^1.10.0"
- }
- },
- "node_modules/axios/node_modules/follow-redirects": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
- "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==",
- "engines": {
- "node": ">=4.0"
+ "follow-redirects": "^1.14.0"
}
},
"node_modules/babel-jest": {
@@ -1679,6 +1673,25 @@
"node": ">=8"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.14.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
+ "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/form-data": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
@@ -4615,18 +4628,11 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"axios": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz",
- "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
+ "version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"requires": {
- "follow-redirects": "^1.10.0"
- },
- "dependencies": {
- "follow-redirects": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz",
- "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg=="
- }
+ "follow-redirects": "^1.14.0"
}
},
"babel-jest": {
@@ -5091,6 +5097,11 @@
"path-exists": "^4.0.0"
}
},
+ "follow-redirects": {
+ "version": "1.14.4",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
+ "integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g=="
+ },
"form-data": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
diff --git a/package.json b/package.json
index dff30960a5..b2eb86fad2 100644
--- a/package.json
+++ b/package.json
@@ -11,6 +11,7 @@
"license": "MIT",
"dependencies": {
"@freearhey/iso-639-3": "^1.0.0",
+ "axios": "^0.21.4",
"commander": "^7.0.0",
"iptv-checker": "^0.21.0",
"iptv-playlist-parser": "^0.5.4",
diff --git a/scripts/format.js b/scripts/format.js
index f70d11b391..99f9643bf4 100644
--- a/scripts/format.js
+++ b/scripts/format.js
@@ -187,10 +187,6 @@ function parseRequests(requests) {
function updateDescription(channel, playlist) {
const code = playlist.country.code
- // tvg-name
- if (!channel.tvg.name && channel.name) {
- channel.tvg.name = channel.name.replace(/\"/gi, '')
- }
// tvg-id
if (!channel.tvg.id && channel.tvg.name) {
const id = utils.name2id(channel.tvg.name)
diff --git a/scripts/generate.js b/scripts/generate.js
index 3a2e6a7a3a..4b50ec3c10 100644
--- a/scripts/generate.js
+++ b/scripts/generate.js
@@ -36,13 +36,16 @@ function createNoJekyllFile() {
function generateIndex() {
log.print('Generating index.m3u...\n')
+ const channels = db.channels.sortBy(['name', 'url']).removeDuplicates().removeOffline().get()
+ const guides = channels.map(channel => channel.tvg.url)
+
const filename = `${ROOT_DIR}/index.m3u`
- file.create(filename, '#EXTM3U\n')
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n`)
const nsfwFilename = `${ROOT_DIR}/index.nsfw.m3u`
- file.create(nsfwFilename, '#EXTM3U\n')
+ file.create(nsfwFilename, `#EXTM3U url-tvg="${urlTvg}"\n`)
- const channels = db.channels.sortBy(['name', 'url']).removeDuplicates().removeOffline().get()
for (const channel of channels) {
if (!channel.isNSFW()) {
file.append(filename, channel.toString())
@@ -53,14 +56,17 @@ function generateIndex() {
function generateCategoryIndex() {
log.print('Generating index.category.m3u...\n')
- const filename = `${ROOT_DIR}/index.category.m3u`
- file.create(filename, '#EXTM3U\n')
-
const channels = db.channels
.sortBy(['category', 'name', 'url'])
.removeDuplicates()
.removeOffline()
.get()
+ const guides = channels.map(channel => channel.tvg.url)
+
+ const filename = `${ROOT_DIR}/index.category.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n`)
+
for (const channel of channels) {
file.append(filename, channel.toString())
}
@@ -68,50 +74,56 @@ function generateCategoryIndex() {
function generateCountryIndex() {
log.print('Generating index.country.m3u...\n')
- const filename = `${ROOT_DIR}/index.country.m3u`
- file.create(filename, '#EXTM3U\n')
+ const guides = []
+ const lines = []
for (const country of [{ code: 'undefined' }, ...db.countries.sortBy(['name']).all()]) {
const channels = db.channels
.sortBy(['name', 'url'])
.forCountry(country)
.removeDuplicates()
+ .removeNSFW()
.removeOffline()
.get()
for (const channel of channels) {
const groupTitle = channel.group.title
- const nsfw = channel.isNSFW()
channel.group.title = country.name || ''
- if (!nsfw) {
- file.append(filename, channel.toString())
- }
+ lines.push(channel.toString())
channel.group.title = groupTitle
+ guides.push(channel.tvg.url)
}
}
+
+ const filename = `${ROOT_DIR}/index.country.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n${lines.join('')}`)
}
function generateLanguageIndex() {
log.print('Generating index.language.m3u...\n')
- const filename = `${ROOT_DIR}/index.language.m3u`
- file.create(filename, '#EXTM3U\n')
+ const guides = []
+ const lines = []
for (const language of [{ code: 'undefined' }, ...db.languages.sortBy(['name']).all()]) {
const channels = db.channels
.sortBy(['name', 'url'])
.forLanguage(language)
.removeDuplicates()
+ .removeNSFW()
.removeOffline()
.get()
for (const channel of channels) {
const groupTitle = channel.group.title
- const nsfw = channel.isNSFW()
channel.group.title = language.name || ''
- if (!nsfw) {
- file.append(filename, channel.toString())
- }
+ lines.push(channel.toString())
channel.group.title = groupTitle
+ guides.push(channel.tvg.url)
}
}
+
+ const filename = `${ROOT_DIR}/index.language.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n${lines.join('')}`)
}
function generateCategories() {
@@ -120,15 +132,17 @@ function generateCategories() {
file.createDir(outputDir)
for (const category of [...db.categories.all(), { id: 'other' }]) {
- const filename = `${outputDir}/${category.id}.m3u`
- file.create(filename, '#EXTM3U\n')
-
const channels = db.channels
.sortBy(['name', 'url'])
.forCategory(category)
.removeDuplicates()
.removeOffline()
.get()
+ const guides = channels.map(channel => channel.tvg.url)
+
+ const filename = `${outputDir}/${category.id}.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n`)
for (const channel of channels) {
file.append(filename, channel.toString())
}
@@ -141,19 +155,20 @@ function generateCountries() {
file.createDir(outputDir)
for (const country of [...db.countries.all(), { code: 'undefined' }]) {
- const filename = `${outputDir}/${country.code}.m3u`
- file.create(filename, '#EXTM3U\n')
-
const channels = db.channels
.sortBy(['name', 'url'])
.forCountry(country)
.removeDuplicates()
.removeOffline()
+ .removeNSFW()
.get()
+ const guides = channels.map(channel => channel.tvg.url)
+
+ const filename = `${outputDir}/${country.code}.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n`)
for (const channel of channels) {
- if (!channel.isNSFW()) {
- file.append(filename, channel.toString())
- }
+ file.append(filename, channel.toString())
}
}
}
@@ -164,19 +179,20 @@ function generateLanguages() {
file.createDir(outputDir)
for (const language of [...db.languages.all(), { code: 'undefined' }]) {
- const filename = `${outputDir}/${language.code}.m3u`
- file.create(filename, '#EXTM3U\n')
-
const channels = db.channels
.sortBy(['name', 'url'])
.forLanguage(language)
.removeDuplicates()
.removeOffline()
+ .removeNSFW()
.get()
+ const guides = channels.map(channel => channel.tvg.url)
+
+ const filename = `${outputDir}/${language.code}.m3u`
+ const urlTvg = generateUrlTvg(guides)
+ file.create(filename, `#EXTM3U url-tvg="${urlTvg}"\n`)
for (const channel of channels) {
- if (!channel.isNSFW()) {
- file.append(filename, channel.toString())
- }
+ file.append(filename, channel.toString())
}
}
}
@@ -197,4 +213,13 @@ function showResults() {
)
}
+function generateUrlTvg(guides) {
+ const output = guides.reduce((acc, curr) => {
+ if (curr && !acc.includes(curr)) acc.push(curr)
+ return acc
+ }, [])
+
+ return output.sort().join(',')
+}
+
main()
diff --git a/scripts/helpers/Channel.js b/scripts/helpers/Channel.js
index d938c2bb13..aa10bc8800 100644
--- a/scripts/helpers/Channel.js
+++ b/scripts/helpers/Channel.js
@@ -148,7 +148,7 @@ module.exports = class Channel {
countries: this.countries,
tvg: {
id: this.tvg.id || null,
- name: this.tvg.name || null,
+ name: this.tvg.name || this.name.replace(/\"/gi, ''),
url: this.tvg.url || null
}
}
diff --git a/scripts/helpers/Playlist.js b/scripts/helpers/Playlist.js
index 6b797c96c6..0df181a2da 100644
--- a/scripts/helpers/Playlist.js
+++ b/scripts/helpers/Playlist.js
@@ -11,17 +11,21 @@ module.exports = class Playlist {
this.updated = false
}
- toString(options = {}) {
- const config = { raw: false, ...options }
- let parts = ['#EXTM3U']
+ getHeader() {
+ let header = ['#EXTM3U']
for (let key in this.header.attrs) {
let value = this.header.attrs[key]
if (value) {
- parts.push(`${key}="${value}"`)
+ header.push(`${key}="${value}"`)
}
}
- let output = `${parts.join(' ')}\n`
+ return header.join(' ')
+ }
+
+ toString(options = {}) {
+ const config = { raw: false, ...options }
+ let output = `${this.getHeader()}\n`
for (let channel of this.channels) {
output += channel.toString(config.raw)
}
diff --git a/scripts/helpers/db.js b/scripts/helpers/db.js
index 859a41576d..0545a6c735 100644
--- a/scripts/helpers/db.js
+++ b/scripts/helpers/db.js
@@ -2,15 +2,21 @@ const categories = require('../data/categories')
const parser = require('./parser')
const utils = require('./utils')
const file = require('./file')
+const epg = require('./epg')
const db = {}
db.load = async function () {
- let files = await file.list()
+ const files = await file.list()
+ const codes = await epg.codes.load()
for (const file of files) {
const playlist = await parser.parsePlaylist(file)
- db.playlists.add(playlist)
for (const channel of playlist.channels) {
+ const code = codes.find(ch => ch['tvg_id'] === channel.tvg.id)
+ if (code && Array.isArray(code.guides) && code.guides.length) {
+ channel.tvg.url = code.guides[0]
+ }
+
db.channels.add(channel)
for (const country of channel.countries) {
@@ -25,6 +31,8 @@ db.load = async function () {
}
}
}
+
+ db.playlists.add(playlist)
}
}
diff --git a/scripts/helpers/epg.js b/scripts/helpers/epg.js
new file mode 100644
index 0000000000..202a89e894
--- /dev/null
+++ b/scripts/helpers/epg.js
@@ -0,0 +1,12 @@
+const axios = require('axios')
+
+module.exports = {
+ codes: {
+ async load() {
+ return await axios
+ .get('https://iptv-org.github.io/epg/codes.json')
+ .then(r => r.data)
+ .catch(console.log)
+ }
+ }
+}