Skip to content

Conversation

@freearhey
Copy link
Collaborator

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 (#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                                      │                 │ 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                                      │                 │ 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                                      │                 │ HTTP_404_NOT_FOUND           │
│ 11  │ HRT4.hr@HD                │ https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT4/default/index.mpd                                      │                 │ 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 (4 errors, 4 warnings)

will result in the removal of only these 4 links:

https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT1/default/index.mpd
https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT2/default/index.mpd
https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT3/default/index.mpd
https://bpcdnmanprod.nexttv.ht.hr/bpk-tv/HRT4/default/index.mpd

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 freearhey marked this pull request as ready for review December 12, 2025 23:52
@Archrootsda
Copy link
Collaborator

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

@freearhey
Copy link
Collaborator Author

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 freearhey mentioned this pull request Dec 13, 2025
@freearhey freearhey marked this pull request as draft December 13, 2025 08:00
@BellezaEmporium
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants