iptv icon indicating copy to clipboard operation
iptv copied to clipboard

Patch 2025.12.3

Open freearhey opened this issue 2 weeks ago • 4 comments

The playlist:test script with the --fix option enabled will now skip streams marked as "Geo-blocked" or "Not 24/7" to avoid removing potentially working links (https://github.com/iptv-org/iptv/pull/30011).

For example, this command:

npm run playlist:test streams/hr.m3u --- --fix

streams/hr.m3u
┌─────┬───────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────┬──────────────────────────────┐
│     │ tvg-id                    │ url                                                                                                  │ label         │ status                       │
├─────┼───────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────┼───────────────┼──────────────────────────────┤
│  0  │ BravoKidsTV.hr@SD         │ https://streaming.social3.hr/play/r3CK_tdsFIFL3bN7w4NW1plrwsCToUBsRFjhxM68sZY/m3u8                   │               │ OK                           │
│  1  │ BravoTV.hr@SD             │ https://streaming.social3.hr/bravoTVkdjd7djd/XAbSERW5p3/2.m3u8                                       │               │ OK                           │
│  2  │ CMCTV.hr@SD               │ https://stream.cmctv.hr:49998/cmc/live.m3u8                                                          │               │ OK                           │
│  3  │ DiadoraTV.hr@SD           │ https://diadoratv.stream/live/diadora/playlist.m3u8                                                  │               │ OK                           │
│  4  │ ExtraTV.hr@SD             │ https://streaming.social3.hr/ExtraTVudzdhr5/uUankWqpXD/1.m3u8                                        │               │ OK                           │
│  5  │ HRT1.hr@SD                │ https://webtvstream.bhtelecom.ba/hrt1.m3u8                                                           │               │ OK                           │
│  6  │ HRT1.hr@HD                │ https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT1/default/index.mpd                                      │ Geo-blocked   │ HTTP_404_NOT_FOUND           │
│  7  │ HRT2.hr@SD                │ https://webtvstream.bhtelecom.ba/hrt2.m3u8                                                           │               │ OK                           │
│  8  │ HRT2.hr@HD                │ https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT2/default/index.mpd                                      │ Geo-blocked   │ HTTP_404_NOT_FOUND           │
│  9  │ HRT3.hr@SD                │ https://webtvstream.bhtelecom.ba/hrt3.m3u8                                                           │               │ OK                           │
│ 10  │ HRT3.hr@HD                │ https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT3/default/index.mpd                                      │ Geo-blocked   │ HTTP_404_NOT_FOUND           │
│ 11  │ HRT4.hr@HD                │ https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT4/default/index.mpd                                      │ Geo-blocked   │ HTTP_404_NOT_FOUND           │
│ 12  │ KlapeiTambureTV.hr@SD     │ https://stream.cmctv.hr:49998/kit/live.m3u8                                                          │               │ OK                           │
│ 13  │ Klasik.hr@SD              │ https://178.253.194.105/klasiktv/playlist.m3u8                                                       │ Not 24/7      │ ERR_TLS_CERT_ALTNAME_INVALID │
│ 14  │ LibertasTV.hr@SD          │ https://stream.luci.xyz/hls/LTV.m3u8                                                                 │               │ OK                           │
│ 15  │ OTV.hr@SD                 │ https://stream.agatin.hr:3559/live/otvlive.m3u8                                                      │ Not 24/7      │ ECONNREFUSED                 │
│ 16  │ RadioTelevizijaBanovin... │ https://pool.alter-media.hr:1936/live/myStream/playlist.m3u8?DVR=                                    │ Not 24/7      │ OK                           │
│ 17  │ SBTV.hr@SD                │ https://live.leveex.hr/hls/live.m3u8                                                                 │ Not 24/7      │ OK                           │
│ 18  │ STV.hr@SD                 │ http://89.201.163.244:8080/hls/hdmi.m3u8                                                             │               │ OK                           │
│ 19  │ TrendTV.hr@SD             │ http://185.62.75.22:1935/trend/myStream/playlist.m3u8                                                │               │ TIMEOUT                      │
│ 20  │ TVJadran.hr@SD            │ https://tvjadran.stream.agatin.hr:3412/live/tvjadranlive.m3u8                                        │ Not 24/7      │ OK                           │
│ 21  │ TVNova.hr@SD              │ https://stream.agatin.hr:3727/live/tvnovalive.m3u8                                                   │               │ OK                           │
│ 22  │ TVZapad.hr@SD             │ http://85.94.67.158/TVZAPAD/index.fmp4.m3u8                                                          │ Not 24/7      │ HTTP_404_NOT_FOUND           │
└─────┴───────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────┴──────────────────────────────┘
8 problems (0 errors, 8 warnings)

will not delete any links.

Test results:

npm test                                      

> test
> jest --runInBand

 PASS  tests/commands/playlist/validate.test.ts (5.04 s)
 PASS  tests/commands/playlist/test.test.ts
 PASS  tests/commands/playlist/generate.test.ts
 PASS  tests/commands/playlist/edit.test.ts
 PASS  tests/commands/readme/update.test.ts
 PASS  tests/commands/playlist/update.test.ts
 PASS  tests/commands/playlist/format.test.ts
 PASS  tests/commands/report/create.test.ts
 PASS  tests/commands/playlist/export.test.ts

Test Suites: 9 passed, 9 total
Tests:       12 passed, 12 total
Snapshots:   0 total
Time:        21.543 s
Ran all test suites.

freearhey avatar Dec 12 '25 23:12 freearhey

From my side mpd streams works

5 HRT1.hr@SD https://webtvstream.bhtelecom.ba/hrt1.m3u8
6 HRT1.hr@HD https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT1/default/index.mpd
7 HRT2.hr@SD https://webtvstream.bhtelecom.ba/hrt2.m3u8
8 HRT2.hr@HD https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT2/default/index.mpd
9 HRT3.hr@SD https://webtvstream.bhtelecom.ba/hrt3.m3u8
10 HRT3.hr@HD https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT3/default/index.mpd
11 HRT4.hr@HD https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT4/default/index.mpd

streamlink https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT1/default/index.mpd
[cli][info] Found matching plugin dash for URL https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT1/default/index.mpd
Available streams: 270p (worst), 360p, 576p, 720p_alt, 720p, 1080p (best)
Screenshot from 2025-12-13 02-49-44

Archrootsda avatar Dec 13 '25 01:12 Archrootsda

Well, there's nothing I can do about that. On my end, the links are definitely not accessible and return a 404 (Not Found) error. Plus, according to this report (https://check-host.net/check-report/3489472dkc0d), they don't work in most countries.

The only solution I can think of is to add a "Geo-blocked" label to these links, and then the script will skip them as well.

freearhey avatar Dec 13 '25 06:12 freearhey

image I can confirm the MPD links works as well for me. French IP.

BellezaEmporium avatar Dec 13 '25 23:12 BellezaEmporium

Example updated.

freearhey avatar Dec 20 '25 22:12 freearhey

For now, I've decided to just skip links with a 403 code (https://github.com/iptv-org/iptv/pull/30294), but if someone can hook up the check-host.net API without significantly increasing the verification time and staying within the request limits, that would be great.

freearhey avatar Dec 22 '25 03:12 freearhey