diff --git a/README.md b/README.md
index d2a2274413..b17a0c4889 100644
--- a/README.md
+++ b/README.md
@@ -61,16 +61,16 @@ Same thing, but split up into separate files:
| Comedy | 82 | https://iptv-org.github.io/iptv/categories/comedy.m3u |
| Cooking | 28 | https://iptv-org.github.io/iptv/categories/cooking.m3u |
| Culture | 157 | https://iptv-org.github.io/iptv/categories/culture.m3u |
- | Documentary | 109 | https://iptv-org.github.io/iptv/categories/documentary.m3u |
+ | Documentary | 110 | https://iptv-org.github.io/iptv/categories/documentary.m3u |
| Education | 153 | https://iptv-org.github.io/iptv/categories/education.m3u |
- | Entertainment | 555 | https://iptv-org.github.io/iptv/categories/entertainment.m3u |
- | Family | 56 | https://iptv-org.github.io/iptv/categories/family.m3u |
- | General | 2294 | https://iptv-org.github.io/iptv/categories/general.m3u |
+ | Entertainment | 557 | https://iptv-org.github.io/iptv/categories/entertainment.m3u |
+ | Family | 57 | https://iptv-org.github.io/iptv/categories/family.m3u |
+ | General | 2298 | https://iptv-org.github.io/iptv/categories/general.m3u |
| Kids | 241 | https://iptv-org.github.io/iptv/categories/kids.m3u |
| Legislative | 189 | https://iptv-org.github.io/iptv/categories/legislative.m3u |
| Lifestyle | 92 | https://iptv-org.github.io/iptv/categories/lifestyle.m3u |
- | Movies | 330 | https://iptv-org.github.io/iptv/categories/movies.m3u |
- | Music | 655 | https://iptv-org.github.io/iptv/categories/music.m3u |
+ | Movies | 331 | https://iptv-org.github.io/iptv/categories/movies.m3u |
+ | Music | 657 | https://iptv-org.github.io/iptv/categories/music.m3u |
| News | 778 | https://iptv-org.github.io/iptv/categories/news.m3u |
| Outdoor | 44 | https://iptv-org.github.io/iptv/categories/outdoor.m3u |
| Relax | 3 | https://iptv-org.github.io/iptv/categories/relax.m3u |
@@ -148,7 +148,7 @@ Same thing, but split up into separate files:
| Dimili | 2 | https://iptv-org.github.io/iptv/languages/zza.m3u |
| Dutch | 186 | https://iptv-org.github.io/iptv/languages/nld.m3u |
| Egyptian Arabic | 2 | https://iptv-org.github.io/iptv/languages/arz.m3u |
- | English | 2239 | https://iptv-org.github.io/iptv/languages/eng.m3u |
+ | English | 2240 | https://iptv-org.github.io/iptv/languages/eng.m3u |
| Estonian | 9 | https://iptv-org.github.io/iptv/languages/est.m3u |
| Ewe | 2 | https://iptv-org.github.io/iptv/languages/ewe.m3u |
| Faroese | 1 | https://iptv-org.github.io/iptv/languages/fao.m3u |
@@ -173,7 +173,7 @@ Same thing, but split up into separate files:
| Haitian | 5 | https://iptv-org.github.io/iptv/languages/hat.m3u |
| Hausa | 2 | https://iptv-org.github.io/iptv/languages/hau.m3u |
| Hebrew | 14 | https://iptv-org.github.io/iptv/languages/heb.m3u |
- | Hindi | 131 | https://iptv-org.github.io/iptv/languages/hin.m3u |
+ | Hindi | 130 | https://iptv-org.github.io/iptv/languages/hin.m3u |
| Hmong | 1 | https://iptv-org.github.io/iptv/languages/hmn.m3u |
| Hungarian | 105 | https://iptv-org.github.io/iptv/languages/hun.m3u |
| Icelandic | 5 | https://iptv-org.github.io/iptv/languages/isl.m3u |
@@ -237,7 +237,7 @@ Same thing, but split up into separate files:
| Quechua | 1 | https://iptv-org.github.io/iptv/languages/que.m3u |
| Romanian | 129 | https://iptv-org.github.io/iptv/languages/ron.m3u |
| Romany | 1 | https://iptv-org.github.io/iptv/languages/rom.m3u |
- | Russian | 269 | https://iptv-org.github.io/iptv/languages/rus.m3u |
+ | Russian | 273 | https://iptv-org.github.io/iptv/languages/rus.m3u |
| Saint Lucian Creole French | 2 | https://iptv-org.github.io/iptv/languages/acf.m3u |
| Samoan | 2 | https://iptv-org.github.io/iptv/languages/smo.m3u |
| Santali | 1 | https://iptv-org.github.io/iptv/languages/sat.m3u |
@@ -273,7 +273,7 @@ Same thing, but split up into separate files:
| Uighur | 3 | https://iptv-org.github.io/iptv/languages/uig.m3u |
| Ukrainian | 60 | https://iptv-org.github.io/iptv/languages/ukr.m3u |
| Urdu | 40 | https://iptv-org.github.io/iptv/languages/urd.m3u |
- | Uzbek | 14 | https://iptv-org.github.io/iptv/languages/uzb.m3u |
+ | Uzbek | 24 | https://iptv-org.github.io/iptv/languages/uzb.m3u |
| Venda | 1 | https://iptv-org.github.io/iptv/languages/ven.m3u |
| Vietnamese | 69 | https://iptv-org.github.io/iptv/languages/vie.m3u |
| Welsh | 1 | https://iptv-org.github.io/iptv/languages/cym.m3u |
@@ -286,7 +286,7 @@ Same thing, but split up into separate files:
| Yue Chinese | 5 | https://iptv-org.github.io/iptv/languages/yue.m3u |
| Zarma | 1 | https://iptv-org.github.io/iptv/languages/dje.m3u |
| Zulu | 1 | https://iptv-org.github.io/iptv/languages/zul.m3u |
- | Undefined | 2384 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
+ | Undefined | 2385 | https://iptv-org.github.io/iptv/languages/undefined.m3u |
@@ -528,7 +528,7 @@ Same thing, but split up into separate files:
| ๐ญ๐ฐ Hong Kong | 12 | https://iptv-org.github.io/iptv/countries/hk.m3u |
| ๐ญ๐บ Hungary | 147 | https://iptv-org.github.io/iptv/countries/hu.m3u |
| ๐ฎ๐ธ Iceland | 41 | https://iptv-org.github.io/iptv/countries/is.m3u |
- | ๐ฎ๐ณ India | 329 | https://iptv-org.github.io/iptv/countries/in.m3u |
+ | ๐ฎ๐ณ India | 328 | https://iptv-org.github.io/iptv/countries/in.m3u |
| ๐ฎ๐ฉ Indonesia | 149 | https://iptv-org.github.io/iptv/countries/id.m3u |
| Aceh | 2 | https://iptv-org.github.io/iptv/subdivisions/id-ac.m3u |
| Bali | 2 | https://iptv-org.github.io/iptv/subdivisions/id-ba.m3u |
@@ -807,7 +807,7 @@ Same thing, but split up into separate files:
| Washington | 4 | https://iptv-org.github.io/iptv/subdivisions/us-wa.m3u |
| Wisconsin | 4 | https://iptv-org.github.io/iptv/subdivisions/us-wi.m3u |
| ๐บ๐พ Uruguay | 80 | https://iptv-org.github.io/iptv/countries/uy.m3u |
- | ๐บ๐ฟ Uzbekistan | 29 | https://iptv-org.github.io/iptv/countries/uz.m3u |
+ | ๐บ๐ฟ Uzbekistan | 39 | https://iptv-org.github.io/iptv/countries/uz.m3u |
| ๐ป๐บ Vanuatu | 8 | https://iptv-org.github.io/iptv/countries/vu.m3u |
| ๐ป๐ฆ Vatican City | 37 | https://iptv-org.github.io/iptv/countries/va.m3u |
| ๐ป๐ช Venezuela | 120 | https://iptv-org.github.io/iptv/countries/ve.m3u |
@@ -819,7 +819,7 @@ Same thing, but split up into separate files:
| ๐พ๐ช Yemen | 50 | https://iptv-org.github.io/iptv/countries/ye.m3u |
| ๐ฟ๐ฒ Zambia | 27 | https://iptv-org.github.io/iptv/countries/zm.m3u |
| ๐ฟ๐ผ Zimbabwe | 28 | https://iptv-org.github.io/iptv/countries/zw.m3u |
- | Undefined | 2384 | https://iptv-org.github.io/iptv/countries/undefined.m3u |
+ | Undefined | 2385 | https://iptv-org.github.io/iptv/countries/undefined.m3u |
@@ -848,16 +848,16 @@ Same thing, but split up into separate files:
| Africa | 474 | https://iptv-org.github.io/iptv/regions/afr.m3u |
| Americas | 3450 | https://iptv-org.github.io/iptv/regions/amer.m3u |
| Arab world | 412 | https://iptv-org.github.io/iptv/regions/arab.m3u |
- | Asia | 2202 | https://iptv-org.github.io/iptv/regions/asia.m3u |
- | Asia-Pacific | 1164 | https://iptv-org.github.io/iptv/regions/apac.m3u |
+ | Asia | 2211 | https://iptv-org.github.io/iptv/regions/asia.m3u |
+ | Asia-Pacific | 1163 | https://iptv-org.github.io/iptv/regions/apac.m3u |
| Association of Southeast Asian Nations | 357 | https://iptv-org.github.io/iptv/regions/asean.m3u |
| Balkan | 727 | https://iptv-org.github.io/iptv/regions/balkan.m3u |
| Benelux | 249 | https://iptv-org.github.io/iptv/regions/benelux.m3u |
| Caribbean | 377 | https://iptv-org.github.io/iptv/regions/carib.m3u |
| Central America | 379 | https://iptv-org.github.io/iptv/regions/cenamer.m3u |
| Central and Eastern Europe | 946 | https://iptv-org.github.io/iptv/regions/cee.m3u |
- | Central Asia | 120 | https://iptv-org.github.io/iptv/regions/cas.m3u |
- | Commonwealth of Independent States | 375 | https://iptv-org.github.io/iptv/regions/cis.m3u |
+ | Central Asia | 130 | https://iptv-org.github.io/iptv/regions/cas.m3u |
+ | Commonwealth of Independent States | 385 | https://iptv-org.github.io/iptv/regions/cis.m3u |
| Europe | 3056 | https://iptv-org.github.io/iptv/regions/eur.m3u |
| Europe, the Middle East and Africa | 3921 | https://iptv-org.github.io/iptv/regions/emea.m3u |
| European Union | 2084 | https://iptv-org.github.io/iptv/regions/eu.m3u |
@@ -873,14 +873,14 @@ Same thing, but split up into separate files:
| Northern Europe | 162 | https://iptv-org.github.io/iptv/regions/neur.m3u |
| Oceania | 83 | https://iptv-org.github.io/iptv/regions/oce.m3u |
| South America | 1062 | https://iptv-org.github.io/iptv/regions/southam.m3u |
- | South Asia | 428 | https://iptv-org.github.io/iptv/regions/sas.m3u |
+ | South Asia | 427 | https://iptv-org.github.io/iptv/regions/sas.m3u |
| Southeast Asia | 357 | https://iptv-org.github.io/iptv/regions/sea.m3u |
| Southern Europe | 1156 | https://iptv-org.github.io/iptv/regions/ser.m3u |
| Sub-Saharan Africa | 421 | https://iptv-org.github.io/iptv/regions/ssa.m3u |
| West Africa | 237 | https://iptv-org.github.io/iptv/regions/wafr.m3u |
| Western Europe | 957 | https://iptv-org.github.io/iptv/regions/wer.m3u |
| Worldwide | 63 | https://iptv-org.github.io/iptv/regions/int.m3u |
- | Undefined | 2384 | https://iptv-org.github.io/iptv/regions/undefined.m3u |
+ | Undefined | 2385 | https://iptv-org.github.io/iptv/regions/undefined.m3u |
diff --git a/scripts/core/playlistParser.ts b/scripts/core/playlistParser.ts
index 7d388dd209..37e2896dbe 100644
--- a/scripts/core/playlistParser.ts
+++ b/scripts/core/playlistParser.ts
@@ -23,6 +23,8 @@ export class PlaylistParser {
let streams = new Collection()
for (const filepath of files) {
+ if (!this.storage.existsSync(filepath)) continue
+
const _streams: Collection = await this.parseFile(filepath)
streams = streams.concat(_streams)
}
diff --git a/streams/in.m3u b/streams/in.m3u
index dadf37c91f..2878c7729f 100644
--- a/streams/in.m3u
+++ b/streams/in.m3u
@@ -407,8 +407,6 @@ https://rtmp.smartstream.video/news11/news11/playlist.m3u8
https://vidcdn.vidgyor.com/news24-origin/liveabr/playlist.m3u8
#EXTINF:-1 tvg-id="NewsLive.in",News Live (720p)
https://5b48d7e1b4bce.streamlock.net/myapp/newslive/playlist.m3u8
-#EXTINF:-1 tvg-id="NewsNation.in",News Nation (720p)
-https://livetv-channels.b-cdn.net/8006/playlist.m3u8
#EXTINF:-1 tvg-id="NickHDPlus.in",Nick HD+ (1080p)
https://prod-sports-north-gm.jiocinema.com/bpk-tv/Nick_HD_Plus_voot_MOB/Fallback/index.m3u8
#EXTINF:-1 tvg-id="NickHDPlus.in",Nick HD+
diff --git a/streams/uz.m3u b/streams/uz.m3u
index 957482db06..f3b329837f 100644
--- a/streams/uz.m3u
+++ b/streams/uz.m3u
@@ -31,3 +31,43 @@ http://gohoski.fvds.ru:3000/mediabay/393/playlist.m3u8
http://gohoski.fvds.ru:3000/mediabay/136/playlist.m3u8
#EXTINF:-1 tvg-id="Yoshlar.uz",Yoshlar (480p)
http://gohoski.fvds.ru:3000/mediabay/134/playlist.m3u8
+#EXTINF:-1 tvg-id="Ozbekiston.uz",O'zbekiston (576p)
+https://stream8.cinerama.uz/1001/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Qaraqalpaqstan.uz",Qaraqalpaqstan (720p)
+https://stream8.cinerama.uz/1467/playlist.m3u8
+#EXTINF:-1 tvg-id="FTV.uz",FTV (576p)
+https://stream8.cinerama.uz/1018/playlist.m3u8
+#EXTINF:-1 tvg-id="Ozbekiston24.uz",O'zbekiston 24 (1080p)
+https://stream8.cinerama.uz/1011/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="OzbekistonTarixi.uz",O'zbekiston Tarixi (1080p)
+https://stream8.cinerama.uz/1209/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Kinoteatr.uz",Kinoteatr (1080p)
+https://stream8.cinerama.uz/1009/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Mahalla.uz",Mahalla (576p)
+https://stream8.cinerama.uz/1013/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Navo.uz",Navo (576p)
+https://stream8.cinerama.uz/1008/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Yoshlar.uz",Yoshlar (1080p)
+https://stream8.cinerama.uz/1002/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Bolajon.uz",Bolajon (576p)
+https://stream8.cinerama.uz/1007/playlist.m3u8
+#EXTINF:-1 tvg-id="Dunyoboylab.uz",Dunyo bo'ylab (1080p)
+https://stream8.cinerama.uz/1006/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Madaniyatvamarifat.uz",Madaniyat va ma'rifat (576p)
+https://stream8.cinerama.uz/1005/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="UzReportTV.uz",UzReport TV (1080p)
+https://stream8.cinerama.uz/1015/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="SevimliTV.uz",Sevimli TV (1080p)
+https://stream8.cinerama.uz/1017/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Toshkent.uz",Toshkent (576p)
+https://stream8.cinerama.uz/1003/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="RenessansTV.uz",Renessans TV (576p)
+https://stream8.cinerama.uz/1221/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="Milliy.uz",Milliy (1080p)
+https://stream8.cinerama.uz/1014/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="DasturxonTV.uz",Dasturxon TV (576p)
+https://stream8.cinerama.uz/1206/tracks-v1a1/playlist.m3u8
+#EXTINF:-1 tvg-id="ZorTV.uz",Zo'r TV (576p)
+https://stream8.cinerama.uz/1016/tracks-v1a1/mono.m3u8
+#EXTINF:-1 tvg-id="MY5.uz",MY5 (576p)
+https://stream8.cinerama.uz/1217/tracks-v1a1/playlist.m3u8
diff --git a/streams/ve.m3u b/streams/ve.m3u
index da0cbd892f..2b4cc4d9ed 100644
--- a/streams/ve.m3u
+++ b/streams/ve.m3u
@@ -21,8 +21,8 @@ https://vcp.myplaytv.com/nubehtv/nubehtv/playlist.m3u8
https://vcp.myplaytv.com/cantinatv/cantinatv/playlist.m3u8
#EXTINF:-1 tvg-id="CatatumboTV.ve",Catatumbo TV (406p)
https://cloud.fastchannel.es/manifiest/hls/prog9/catatumbotv.m3u8
-#EXTINF:-1 tvg-id="ChivacoaTVInternacional.ve",Chivacoa TV Internacional (720p) [Not 24/7]
-https://glb.bozztv.com/glb/ssh101/1234chivacoa/index.m3u8
+#EXTINF:-1 tvg-id="ChivacoaTVInternacional.ve",Chivacoa TV Internacional (1080p)
+https://live20.bozztv.com/akamaissh101/ssh101/1234chivacoa/playlist.m3u8
#EXTINF:-1 tvg-id="EXCTV.ve",Explosiรณn Creativa (720p) [Not 24/7]
https://vcp.myplaytv.com/explosioncreativa/explosioncreativa/playlist.m3u8
#EXTINF:-1 tvg-id="",GlobalTV (480p)
diff --git a/streams/vn.m3u b/streams/vn.m3u
index fcaf77d2ad..7a4dc45476 100644
--- a/streams/vn.m3u
+++ b/streams/vn.m3u
@@ -137,3 +137,5 @@ https://live.fptplay53.net/epzhd1/htv3_hls.smil/chunklist.m3u8
https://live.fptplay53.net/epzhd2/film360_vhls.smil/chunklist.m3u8
#EXTINF:-1 tvg-id="HTVSports.vn",HTV Sports (1080p) [Geo-blocked]
https://live.fptplay53.net/epzhd1/htvcthethao_vhls.smil/chunklist.m3u8
+#EXTINF:-1 tvg-id="VTV1.vn@HD",VTV1 (1080p)
+http://p1.cvtv.xyz/vtv1?token=live
diff --git a/tests/commands/playlist/validate.test.ts b/tests/commands/playlist/validate.test.ts
index 95f77cd9e4..fe4885b9dc 100644
--- a/tests/commands/playlist/validate.test.ts
+++ b/tests/commands/playlist/validate.test.ts
@@ -41,4 +41,9 @@ describe('playlist:validate', () => {
)
}
})
+
+ it('skip the file if it does not exist', () => {
+ const cmd = `${ENV_VAR} npm run playlist:validate -- missing.m3u`
+ execSync(cmd, { encoding: 'utf8' })
+ })
})