From c6a6ce2ef0c1ca2300611f14b0548e6d0c1d2160 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Mon, 19 May 2025 19:12:06 +0300 Subject: [PATCH 1/6] Update validate.test.ts --- tests/commands/playlist/validate.test.ts | 5 +++++ 1 file changed, 5 insertions(+) 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' }) + }) }) From b0c56724a605aaed1eb04e119d273cf3078256f4 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Mon, 19 May 2025 19:12:11 +0300 Subject: [PATCH 2/6] Update playlistParser.ts --- scripts/core/playlistParser.ts | 2 ++ 1 file changed, 2 insertions(+) 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) } From f49eb5d053c1f1b33d1789ad61346a16815e54c9 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:12:23 +0000 Subject: [PATCH 3/6] [Bot] Update /streams Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/15150436342) workflow. closes #21866, closes #21865 --- streams/in.m3u | 2 -- streams/vn.m3u | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) 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/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 From eb021df68b4e529acc9e0980626a5fc207466953 Mon Sep 17 00:00:00 2001 From: "iptv-bot[bot]" <84861620+iptv-bot[bot]@users.noreply.github.com> Date: Wed, 21 May 2025 00:12:23 +0000 Subject: [PATCH 4/6] [Bot] Update README.md Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/15150436342) workflow. --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d2a2274413..1bd41a788d 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ Same thing, but split up into separate files:
https://iptv-org.github.io/iptv/categories/lifestyle.m3uhttps://iptv-org.github.io/iptv/categories/movies.m3uhttps://iptv-org.github.io/iptv/categories/music.m3uhttps://iptv-org.github.io/iptv/categories/news.m3uhttps://iptv-org.github.io/iptv/categories/news.m3uhttps://iptv-org.github.io/iptv/categories/outdoor.m3uhttps://iptv-org.github.io/iptv/categories/relax.m3uhttps://iptv-org.github.io/iptv/categories/religious.m3uhttps://iptv-org.github.io/iptv/categories/travel.m3uhttps://iptv-org.github.io/iptv/categories/weather.m3uhttps://iptv-org.github.io/iptv/categories/xxx.m3uhttps://iptv-org.github.io/iptv/categories/undefined.m3uhttps://iptv-org.github.io/iptv/categories/undefined.m3uhttps://iptv-org.github.io/iptv/languages/hat.m3uhttps://iptv-org.github.io/iptv/languages/hau.m3uhttps://iptv-org.github.io/iptv/languages/heb.m3uhttps://iptv-org.github.io/iptv/languages/hin.m3uhttps://iptv-org.github.io/iptv/languages/hin.m3uhttps://iptv-org.github.io/iptv/languages/hmn.m3uhttps://iptv-org.github.io/iptv/languages/hun.m3uhttps://iptv-org.github.io/iptv/languages/isl.m3uhttps://iptv-org.github.io/iptv/languages/yue.m3uhttps://iptv-org.github.io/iptv/languages/dje.m3uhttps://iptv-org.github.io/iptv/languages/zul.m3uhttps://iptv-org.github.io/iptv/languages/undefined.m3uhttps://iptv-org.github.io/iptv/languages/undefined.m3uhttps://iptv-org.github.io/iptv/countries/hk.m3uhttps://iptv-org.github.io/iptv/countries/hu.m3uhttps://iptv-org.github.io/iptv/countries/is.m3uhttps://iptv-org.github.io/iptv/countries/in.m3uhttps://iptv-org.github.io/iptv/countries/in.m3uhttps://iptv-org.github.io/iptv/countries/id.m3uhttps://iptv-org.github.io/iptv/subdivisions/id-ac.m3uhttps://iptv-org.github.io/iptv/subdivisions/id-ba.m3uhttps://iptv-org.github.io/iptv/countries/ye.m3uhttps://iptv-org.github.io/iptv/countries/zm.m3uhttps://iptv-org.github.io/iptv/countries/zw.m3uhttps://iptv-org.github.io/iptv/countries/undefined.m3uhttps://iptv-org.github.io/iptv/countries/undefined.m3uhttps://iptv-org.github.io/iptv/regions/afr.m3uhttps://iptv-org.github.io/iptv/regions/amer.m3uhttps://iptv-org.github.io/iptv/regions/arab.m3uhttps://iptv-org.github.io/iptv/regions/asia.m3uhttps://iptv-org.github.io/iptv/regions/apac.m3uhttps://iptv-org.github.io/iptv/regions/asia.m3uhttps://iptv-org.github.io/iptv/regions/apac.m3uhttps://iptv-org.github.io/iptv/regions/asean.m3uhttps://iptv-org.github.io/iptv/regions/balkan.m3uhttps://iptv-org.github.io/iptv/regions/benelux.m3uhttps://iptv-org.github.io/iptv/regions/neur.m3uhttps://iptv-org.github.io/iptv/regions/oce.m3uhttps://iptv-org.github.io/iptv/regions/southam.m3uhttps://iptv-org.github.io/iptv/regions/sas.m3uhttps://iptv-org.github.io/iptv/regions/sas.m3uhttps://iptv-org.github.io/iptv/regions/sea.m3uhttps://iptv-org.github.io/iptv/regions/ser.m3uhttps://iptv-org.github.io/iptv/regions/ssa.m3uhttps://iptv-org.github.io/iptv/regions/wafr.m3uhttps://iptv-org.github.io/iptv/regions/wer.m3uhttps://iptv-org.github.io/iptv/regions/int.m3uhttps://iptv-org.github.io/iptv/regions/undefined.m3uhttps://iptv-org.github.io/iptv/regions/undefined.m3uhttps://iptv-org.github.io/iptv/categories/comedy.m3uhttps://iptv-org.github.io/iptv/categories/cooking.m3uhttps://iptv-org.github.io/iptv/categories/culture.m3uhttps://iptv-org.github.io/iptv/categories/documentary.m3uhttps://iptv-org.github.io/iptv/categories/documentary.m3uhttps://iptv-org.github.io/iptv/categories/education.m3uhttps://iptv-org.github.io/iptv/categories/entertainment.m3uhttps://iptv-org.github.io/iptv/categories/family.m3uhttps://iptv-org.github.io/iptv/categories/general.m3uhttps://iptv-org.github.io/iptv/categories/entertainment.m3uhttps://iptv-org.github.io/iptv/categories/family.m3uhttps://iptv-org.github.io/iptv/categories/general.m3uhttps://iptv-org.github.io/iptv/categories/kids.m3uhttps://iptv-org.github.io/iptv/categories/legislative.m3uhttps://iptv-org.github.io/iptv/categories/lifestyle.m3uhttps://iptv-org.github.io/iptv/categories/movies.m3uhttps://iptv-org.github.io/iptv/categories/music.m3uhttps://iptv-org.github.io/iptv/categories/news.m3uhttps://iptv-org.github.io/iptv/categories/movies.m3uhttps://iptv-org.github.io/iptv/categories/music.m3uhttps://iptv-org.github.io/iptv/categories/news.m3uhttps://iptv-org.github.io/iptv/categories/outdoor.m3uhttps://iptv-org.github.io/iptv/categories/relax.m3uhttps://iptv-org.github.io/iptv/categories/religious.m3uhttps://iptv-org.github.io/iptv/categories/travel.m3uhttps://iptv-org.github.io/iptv/categories/weather.m3uhttps://iptv-org.github.io/iptv/categories/xxx.m3uhttps://iptv-org.github.io/iptv/categories/undefined.m3uhttps://iptv-org.github.io/iptv/categories/undefined.m3uhttps://iptv-org.github.io/iptv/languages/zza.m3uhttps://iptv-org.github.io/iptv/languages/nld.m3uhttps://iptv-org.github.io/iptv/languages/arz.m3uhttps://iptv-org.github.io/iptv/languages/eng.m3uhttps://iptv-org.github.io/iptv/languages/eng.m3uhttps://iptv-org.github.io/iptv/languages/est.m3uhttps://iptv-org.github.io/iptv/languages/ewe.m3uhttps://iptv-org.github.io/iptv/languages/fao.m3uhttps://iptv-org.github.io/iptv/languages/que.m3uhttps://iptv-org.github.io/iptv/languages/ron.m3uhttps://iptv-org.github.io/iptv/languages/rom.m3uhttps://iptv-org.github.io/iptv/languages/rus.m3uhttps://iptv-org.github.io/iptv/languages/rus.m3uhttps://iptv-org.github.io/iptv/languages/acf.m3uhttps://iptv-org.github.io/iptv/languages/smo.m3uhttps://iptv-org.github.io/iptv/languages/sat.m3uhttps://iptv-org.github.io/iptv/languages/uig.m3uhttps://iptv-org.github.io/iptv/languages/ukr.m3uhttps://iptv-org.github.io/iptv/languages/urd.m3uhttps://iptv-org.github.io/iptv/languages/uzb.m3uhttps://iptv-org.github.io/iptv/languages/uzb.m3uhttps://iptv-org.github.io/iptv/languages/ven.m3uhttps://iptv-org.github.io/iptv/languages/vie.m3uhttps://iptv-org.github.io/iptv/languages/cym.m3uhttps://iptv-org.github.io/iptv/subdivisions/us-wa.m3uhttps://iptv-org.github.io/iptv/subdivisions/us-wi.m3uhttps://iptv-org.github.io/iptv/countries/uy.m3uhttps://iptv-org.github.io/iptv/countries/uz.m3uhttps://iptv-org.github.io/iptv/countries/uz.m3uhttps://iptv-org.github.io/iptv/countries/vu.m3uhttps://iptv-org.github.io/iptv/countries/va.m3uhttps://iptv-org.github.io/iptv/countries/ve.m3uhttps://iptv-org.github.io/iptv/regions/afr.m3uhttps://iptv-org.github.io/iptv/regions/amer.m3uhttps://iptv-org.github.io/iptv/regions/arab.m3uhttps://iptv-org.github.io/iptv/regions/asia.m3uhttps://iptv-org.github.io/iptv/regions/asia.m3uhttps://iptv-org.github.io/iptv/regions/apac.m3uhttps://iptv-org.github.io/iptv/regions/asean.m3uhttps://iptv-org.github.io/iptv/regions/balkan.m3uhttps://iptv-org.github.io/iptv/regions/carib.m3uhttps://iptv-org.github.io/iptv/regions/cenamer.m3uhttps://iptv-org.github.io/iptv/regions/cee.m3uhttps://iptv-org.github.io/iptv/regions/cas.m3uhttps://iptv-org.github.io/iptv/regions/cis.m3uhttps://iptv-org.github.io/iptv/regions/cas.m3uhttps://iptv-org.github.io/iptv/regions/cis.m3uhttps://iptv-org.github.io/iptv/regions/eur.m3uhttps://iptv-org.github.io/iptv/regions/emea.m3uhttps://iptv-org.github.io/iptv/regions/eu.m3u