Author SHA1 Message Date
Kálmán „KAMI” Szalai 13359f9ed0 Surface recovered Invalid channels on the dashboard, wire --include-invalid into the deep check
Follow-up to the previous commit on this branch: that one added
--invalid/--include-invalid to check_channels.py but deliberately left
them unwired, because generate_dashboard.py's "most recent row per
(list, channel)" view assumed every row was a working channel -
turning --include-invalid on in a workflow would have bloated the
"needs attention" table with hundreds of already-known-dead Invalid
rows, while hiding the one thing that's actually interesting: an
Invalid channel that's alive again wouldn't show up there at all,
since that table only lists rows that are *not* alive.

- generate_dashboard.py: every existing count (cards, trend, by-list,
  "needs attention") is now built from `>` (working) rows only, via a
  `marker_of()` helper that treats history written before this field
  existed as `>` too, since only working channels were ever checked
  back then - so this is a no-op for every dashboard that hasn't
  started using --include-invalid yet.
- New "Flagged Invalid, answering again" section lists `x` rows whose
  latest check came back alive/flaky - the dashboard's equivalent of
  check_channels.py's own `RECOVERED?` line - with a note that this is
  a shortlist for a human, not something to auto-restore.
- check_channels_deep.yml now runs with --include-invalid, and its
  step-summary blurb mentions the new section.

Tested: wrote a small synthetic history.jsonl mixing a marker-less
legacy row, `>` rows, and `x` rows (one alive, one dead) and confirmed
the channel count/cards only reflect the `>` rows, the alive `x` row
shows up under "Flagged Invalid, answering again", the dead `x` row
shows up nowhere (expected - it's just confirming the status quo), and
an all-`>` history renders the new section's "none right now" empty
state. Also ran it against this repo's real 77MB
.github/checker-history/history.jsonl (all pre-dates this change, so
no `x` rows in it) - renders in ~1.5s, unchanged output. pylint:
10.00/10 on both files.
2026-10-23 09:20:28 +02:00
17 changed files with 170 additions and 44 deletions
+2 -2
View File
@@ -28,7 +28,7 @@ jobs:
- name: Run the deep check (HTTP probes + ffprobe confirmation on dead channels)
run: |
python3 check_channels.py --attempts 3 --timeout 12 --pause 5 --workers 40 --confirm-dead --json run.jsonl | tee check_summary.txt
python3 check_channels.py --attempts 3 --timeout 12 --pause 5 --workers 40 --confirm-dead --include-invalid --json run.jsonl | tee check_summary.txt
- name: Append to history and prune entries older than 90 days
run: |
@@ -73,7 +73,7 @@ jobs:
{
echo "## Deep channel check - $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo ""
echo "Channels that looked \`dead\` over HTTP were given a second opinion by \`ffprobe\`. A channel still reported \`dead\` here survived both checks and is safe to act on; one reported \`disputed\` looked dead over HTTP but ffprobe found a real stream behind it - needs a human look, not an automatic edit."
echo "Channels that looked \`dead\` over HTTP were given a second opinion by \`ffprobe\`. A channel still reported \`dead\` here survived both checks and is safe to act on; one reported \`disputed\` looked dead over HTTP but ffprobe found a real stream behind it - needs a human look, not an automatic edit. This run also re-checks every channel already flagged Invalid (\`--include-invalid\`) - one reported \`RECOVERED?\` answered like a live stream again and shows up on the dashboard's own 'Flagged Invalid, answering again' section, also pending a human look before anyone restores it."
echo ""
echo '```'
cat check_summary.txt
+75 -4
View File
@@ -12,10 +12,20 @@ The page shows:
- a trend of the alive share across every run kept in the history
- one row per list (country) with its current breakdown
- every channel that is not currently `alive`, searchable and filterable by state
- any channel flagged Invalid in the lists that answered like a live stream again,
if the history has rows for those (see check_channels.py's --invalid/--include-invalid)
"Currently" means: for each (list, channel), the most recent row in the history -
older rows for the same channel are trend data, not part of today's snapshot.
A row's `marker` says whether it came from a working (`>`) or an Invalid (`x`) list
entry; older history written before that field existed has no `marker` and is always
treated as `>`, since only working channels were ever checked back then. Every count
above - the state breakdown, the trend, the by-list table, "needs attention" - is
built from `>` rows only, so turning on --include-invalid in a workflow never changes
what those numbers mean; the `x` rows only ever feed the separate "flagged Invalid"
section below them.
Usage:
./generate_dashboard.py # reads the default history path
./generate_dashboard.py --history path/to.jsonl --out path/to.html
@@ -32,6 +42,15 @@ BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DEFAULT_HISTORY = os.path.join(BASE_DIR, ".github", "checker-history", "history.jsonl")
DEFAULT_OUT = os.path.join(BASE_DIR, "docs", "index.html")
# history written before check_channels.py recorded `marker` has none - it only ever
# checked working channels back then, so the absence of the field means `>` too
WORKING = ">"
def marker_of(row):
"""Return `row`'s marker, treating pre-`marker` history as a working (`>`) row."""
return row.get("marker", WORKING)
# rendering order and the CSS custom property carrying each state's color
STATE_ORDER = ["alive", "flaky", "blocked", "unreachable", "disputed", "dead"]
STATE_VAR = {s: f"var(--s-{s})" for s in STATE_ORDER}
@@ -236,13 +255,43 @@ def build_problem_rows(current):
return "".join(rows)
def render(history_path, generated_at):
def build_recovered_rows(recovered):
"""Return one `<tr>` per Invalid-flagged channel that answered like a live stream.
Unlike `build_problem_rows`, every row here is worth printing - there is no
`alive` case to skip, since being `alive`/`flaky` again is exactly what makes a
row belong in this table in the first place.
"""
ordered = sorted(recovered, key=lambda r: (r["list"], r["channel"]))
rows = []
for row in ordered:
rows.append(
f"<tr>"
f'<td>{escape(row["list"])}</td>'
f'<td>{escape(row["channel"])}</td>'
f'<td><span class="pill" style="background:{STATE_VAR[row["state"]]}">'
f'{escape(row["state"])}</span></td>'
f'<td class="url"><a href="{escape(row["url"])}">{escape(row["url"])}</a></td>'
f'<td class="dim">{escape(row["checked_at"][:10])}</td>'
"</tr>"
)
return "".join(rows)
def render(history_path, generated_at): # pylint: disable=too-many-locals
"""Build the full dashboard page for the history found at `history_path`."""
rows = read_history(history_path)
if not rows:
return EMPTY_PAGE.format(path=escape(history_path))
current = latest_snapshot(rows)
# every top-of-page count, the trend, and "needs attention" are built from working
# (`>`) rows only, so turning --include-invalid on in a workflow can only ever add
# the separate "flagged Invalid" section below - it never changes what these numbers
# mean, and never hides a dead working channel behind hundreds of expected-dead
# Invalid ones.
working_rows = [row for row in rows if marker_of(row) == WORKING]
current = latest_snapshot(working_rows)
overall_counts = defaultdict(int)
for row in current:
overall_counts[row["state"]] += 1
@@ -252,18 +301,29 @@ def render(history_path, generated_at):
for row in current:
by_list[row["list"]].append(row)
trend = run_trend(rows)
trend = run_trend(working_rows)
last_checked = rows[-1]["checked_at"]
alive_pct_overall = (
overall_counts.get("alive", 0) / total_channels * 100 if total_channels else 0
)
# the opposite case from "needs attention": a channel that is *supposed* to be
# dead (it is sitting on an `[x]` row) but just answered like a live stream -
# recorded only when a workflow actually ran check_channels.py with --invalid or
# --include-invalid, so this is empty rather than wrong on a history that never did
invalid_current = latest_snapshot([row for row in rows if marker_of(row) != WORKING])
recovered = [row for row in invalid_current if row["state"] in ("alive", "flaky")]
cards = build_cards(overall_counts)
list_rows = build_list_rows(by_list)
problem_rows = build_problem_rows(current)
recovered_rows = build_recovered_rows(recovered)
state_options = "".join(
f'<option value="{s}">{s}</option>' for s in STATE_ORDER if s != "alive"
)
recovered_subline = (
f" &middot; {len(recovered)} flagged Invalid now answering again" if recovered else ""
)
# pylint: disable=line-too-long
return f"""<!doctype html>
@@ -418,7 +478,7 @@ footer a {{ color: var(--accent); }}
<div class="masthead">
<h1>Channel Signal <span class="on-air">&mdash; {alive_pct_overall:.0f}% on air</span></h1>
</div>
<p class="subline">{total_channels} channels &middot; {len(by_list)} lists &middot; last swept {escape(last_checked)} &middot; page built {escape(generated_at)}</p>
<p class="subline">{total_channels} channels &middot; {len(by_list)} lists{recovered_subline} &middot; last swept {escape(last_checked)} &middot; page built {escape(generated_at)}</p>
<div class="cards">{cards}</div>
@@ -457,6 +517,17 @@ footer a {{ color: var(--accent); }}
</div>
</section>
<section>
<h2>Flagged Invalid, answering again</h2>
<p class="section-note">Channels sitting on an <code>[x]</code> row that answered like a live stream when a workflow last ran <code>check_channels.py</code> with <code>--invalid</code> or <code>--include-invalid</code>. Not proof the source is back for good - a single good answer can be a flaky CDN having a moment, not a restored channel - so this is a shortlist to look at by hand, not something to auto-restore.</p>
<div class="table-wrap">
<table>
<thead><tr><th>List</th><th>Channel</th><th>State</th><th>URL</th><th>Last checked</th></tr></thead>
<tbody>{"".join(recovered_rows) or '<tr><td colspan="5" class="dim">none right now</td></tr>'}</tbody>
</table>
</div>
</section>
<footer>generated by <a href="https://github.com/Free-TV/IPTV/blob/master/check_channels.py">check_channels.py</a></footer>
</main>
<script>
+1 -1
View File
@@ -11,7 +11,7 @@
| 5 | RTV HB Ⓢ | [>](https://prd-hometv-live-open.spectar.tv/ERO_1_083/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/en/6/60/Logo_of_TV_Herceg-Bosne.png"/> | RTVHB.ba |
| 6 | RTV BN | [>](https://stream2.rtvbn.tv:8080/live_1935/bnstream/index.m3u8) | <img height="20" src="https://i.imgur.com/DUBvfWb.png"/> | BNTV.ba |
| 7 | RTV Glas Drine | [>](http://glasdrine.cutuk.net:8081/433ssdsw/GlasDrineSD/playlist.m3u8) | <img height="20" src="https://i.imgur.com/9NgxOdb.png"/> | RTVGlasDrine.ba |
| 8 | Sevdah Ⓢ | [x](https://restreamer2.tnt.ba/hls/stream.m3u8) | <img height="20" src="https://i.imgur.com/V6W3yEp.png"/> | SevdahTV.ba |
| 8 | Sevdah Ⓢ | [>](https://restreamer2.tnt.ba/hls/stream.m3u8) | <img height="20" src="https://i.imgur.com/V6W3yEp.png"/> | SevdahTV.ba |
| 9 | TNT Kids | [>](https://restreamer1.tnt.ba/hls/tntkids.m3u8) | <img height="20" src="https://i.imgur.com/irTDbpn.png"/> | TNTKidsTV.ba |
| 10 | Televizija 5 | [>](https://balkanmedia.dynu.net/hls/tv5web.m3u8) | <img height="20" src="https://i.imgur.com/znpvJys.png"/> | Televizija5.ba |
| 11 | Kanal 6 | [>](https://restreamer1.tnt.ba/hls/kanal6.m3u8) | <img height="20" src="https://i.imgur.com/GGhvR0l.png"/> | Kanal6.ba |
+2 -7
View File
@@ -106,6 +106,7 @@
| 92 | ART TV | [>](https://rtmp.win:3696/live/arttvgrlive.m3u8) | <img height="20" src="https://i.imgur.com/LyCqQvx.png" /> | arttv.gr |
| 93 | Corfu | [>](https://itv.streams.ovh:1936/corfuchannel/corfuchannel/playlist.m3u8) | <img height="20" src="https://i.imgur.com/dCMqo8w.jpeg" /> | corfutv.gr |
| 94 | Epirus TV 1 | [>](https://rtmp.win:3929/live/epiruslive.m3u8) | <img height="20" src="https://i.imgur.com/QB3aSl1.png" /> | epirustv1.gr |
| 95 | Start | [>](https://live.cast-control.eu/StartMedia/StartMedia/playlist.m3u8) | <img height="20" src="https://i.imgur.com/nrEtmBN.png" /> | starttv.gr |
<h2>Thrace and Eastern Macedonia Channels</h2>
@@ -114,13 +115,7 @@
|:---:|:--------------|---------------------------------------------------------------------------|:---------------------------------------------------------|:---------------|
| 101 | Center TV | [>](https://eu1.streams.gr:8081/centertv/index.m3u8) | <img height="20" src="https://i.imgur.com/52JW71Q.png"/> | CenterTV.gr |
| 102 | Delta Evros | [>](http://81.171.10.42:1935/liveD/DStream.sdp/chunklist_w819085920.m3u8) | <img height="20" src="https://i.imgur.com/PDfSkRF.png"/> | DeltaTV.gr |
<h2>Invalid</h2>
| # | Channel | Link | Logo | EPG id |
|:---:|:--------------|:-----:|:----:|:-------|
| 95 | Start | [x](https://live.cast-control.eu/StartMedia/StartMedia/playlist.m3u8) | <img height="20" src="https://i.imgur.com/nrEtmBN.png" /> | starttv.gr |
| 103 | Thraki Net TV | [x](https://cdn.onestreaming.com/thrakinettv/thrakinettv/playlist.m3u8) | <img height="20" src="https://i.imgur.com/DV0I0ed.png"/> | ThrakiNetTV.gr |
| 103 | Thraki Net TV | [>](https://cdn.onestreaming.com/thrakinettv/thrakinettv/playlist.m3u8) | <img height="20" src="https://i.imgur.com/DV0I0ed.png"/> | ThrakiNetTV.gr |
+6 -6
View File
@@ -4,12 +4,12 @@
| # | Channel | Link | Logo | EPG id |
|:--:|:---------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------:|
| D011 | NHK総合 (東京) Ⓖ   | [>](https://nhk4.mov3.co/hls/nhk.m3u8) | <img height="30" src="https://i.imgur.com/fAZ2BEZ.png"/> | JOAKDTV.jp |
| D041 | 日本テレビ Ⓖ | [>](https://ntv5.mov3.co/hls/ntv.m3u8) | <img height="30" src="https://i.imgur.com/ecbM7QS.png"/> | JOAXDTV.jp |
| D051 | テレビ朝日 Ⓖ | [>](https://tvasahi.mov3.co/hls/tvasahi.m3u8) | <img height="30" src="https://i.imgur.com/5XnMfcR.png"/> | JOEXDTV.jp |
| D061 | TBSテレビ Ⓖ | [>](https://tbs5.mov3.co/hls/tbs.m3u8) | <img height="30" src="https://i.imgur.com/jIZ9TlO.png"/> | JORXDTV.jp |
| D071 | テレビ東京 Ⓖ | [>](https://tvtokyo.mov3.co/hls/tvtokyo.m3u8) | <img height="30" src="https://i.imgur.com/U8jBxEi.png"/> | JOTXDTV.jp |
| D081 | フジテレビ Ⓖ | [>](https://fujitv4.mov3.co/hls/fujitv.m3u8) | <img height="30" src="https://i.imgur.com/epJYc7P.png"/> | JOCXDTV.jp |
| D011 | NHK総合 (東京)   | [>](https://nhk4.mov3.co/hls/nhk.m3u8) | <img height="30" src="https://i.imgur.com/fAZ2BEZ.png"/> | JOAKDTV.jp |
| D041 | 日本テレビ | [>](https://ntv5.mov3.co/hls/ntv.m3u8) | <img height="30" src="https://i.imgur.com/ecbM7QS.png"/> | JOAXDTV.jp |
| D051 | テレビ朝日 | [>](https://tvasahi.mov3.co/hls/tvasahi.m3u8) | <img height="30" src="https://i.imgur.com/5XnMfcR.png"/> | JOEXDTV.jp |
| D061 | TBSテレビ | [>](https://tbs5.mov3.co/hls/tbs.m3u8) | <img height="30" src="https://i.imgur.com/jIZ9TlO.png"/> | JORXDTV.jp |
| D071 | テレビ東京 | [>](https://tvtokyo.mov3.co/hls/tvtokyo.m3u8) | <img height="30" src="https://i.imgur.com/U8jBxEi.png"/> | JOTXDTV.jp |
| D081 | フジテレビ | [>](https://fujitv4.mov3.co/hls/fujitv.m3u8) | <img height="30" src="https://i.imgur.com/epJYc7P.png"/> | JOCXDTV.jp |
<h2> BS/CS (Satellite) </h2>
+5 -5
View File
@@ -3,7 +3,12 @@
| # | Channel | Link | Logo | EPG id |
|:-:|:-------:|:----:|:----:|:------:|
| 1 | Markíza | [>](https://cdnsk003.panaccess.com/local/Markiza/index.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png"/> | Markiza.sk |
| 2 | Doma | [>](https://sktv.mxnticek.eu/new/stream.php?ch=Doma) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-doma-sk.png"/> | MarkizaDoma.sk |
| 3 | Dajto | [>](https://sktv.mxnticek.eu/new/stream.php?ch=Dajto) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-dajto-sk.png"/> | MarkizaDajto.sk |
| 4 | Krimi | [>](https://sktv.mxnticek.eu/new/stream.php?ch=Krimi) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-krimi-sk.png"/> | MarkizaKrimi.sk |
| 5 | Klasik | [>](https://cdnsk003.panaccess.com/local/Markiza_Klasik/index.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png"/> | |
| 6 | Markíza TN Live | [>](https://sktv.mxnticek.eu/new/stream.php?ch=Mark%C3%ADza%20TN%20Live) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png"/> | |
| 12 | Jojko | [>](https://sktv.mxnticek.eu/new/stream.php?ch=Jojko) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/jojko-sk.png"/> | Jojko.sk |
| 15 | STVR :24 | [>](https://sktv.mxnticek.eu/new/stream.php?ch=STVR%20%3A24) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/rtvs-24-sk.png"/> | RTVS24.sk |
| 16 | Šport | [>](https://sktv.mxnticek.eu/new/stream.php?ch=%C5%A0port) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/rtvs-sport-sk.png"/> | RTVSSport.sk |
| 17 | STVR :O | [>](https://sktv.mxnticek.eu/new/stream.php?ch=STVR%20%3AO) | STVR :O | |
@@ -22,8 +27,3 @@
| 5 | JOJ Šport | [x](https://sktv.mxnticek.eu/new/stream.php?ch=JOJ%20%C5%A0port) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/joj-sport-sk.png"/> | JOJSport.sk |
| 6 | Jednotka | [x](http://88.212.15.19/live/test_jednotka_25p/playlist.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/jednotka-sk.png"/> | STV1.sk |
| 7 | Dvojka | [x](http://88.212.15.19/live/test_dvojka_25p/playlist.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/dvojka-sk.png"/> | STV2.sk |
| 8 | Doma | [x](https://sktv.mxnticek.eu/new/stream.php?ch=Doma) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-doma-sk.png"/> | MarkizaDoma.sk |
| 9 | Dajto | [x](https://sktv.mxnticek.eu/new/stream.php?ch=Dajto) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-dajto-sk.png"/> | MarkizaDajto.sk |
| 10 | Krimi | [x](https://sktv.mxnticek.eu/new/stream.php?ch=Krimi) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-krimi-sk.png"/> | MarkizaKrimi.sk |
| 11 | Markíza TN Live | [x](https://sktv.mxnticek.eu/new/stream.php?ch=Mark%C3%ADza%20TN%20Live) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png"/> | |
| 12 | Jojko | [x](https://sktv.mxnticek.eu/new/stream.php?ch=Jojko) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/jojko-sk.png"/> | Jojko.sk |
+3 -3
View File
@@ -34,7 +34,7 @@ https://en.wikipedia.org/wiki/Television_in_Spain#Digital_terrestrial_television
| 5 | Telecinco | [>](https://livehlsdai-i.akamaihd.net/hls/live/571640/telecinco/bitrate_1.m3u8) | <img height="20" src="https://i.imgur.com/JECsKdk.png"/> | Telecinco.es |
| 6 | La Sexta | [>](http://a3live-lh.akamaihd.net/i/lasexta_1@35272/master.m3u8) | <img height="20" src="https://i.imgur.com/b59MxgM.png"/> | LaSexta.es |
| 11 | Neox Ⓢ | [>](http://a3live-lh.akamaihd.net/i/nxhds/geoneox_1@35261/master.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/neox-es.png"/> | Neox.es |
| 12 | Nova Ⓢ | [x](http://40.160.24.55/Nova/index.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/nova-es.png"/> | Nova.es |
| 12 | Nova Ⓢ | [>](http://40.160.24.55/Nova/index.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/nova-es.png"/> | Nova.es |
| 13 | Mega Ⓢ | [>](http://a3live-lh.akamaihd.net/i/mghds/geomega_1@328914/master.m3u8) | <img height="20" src="https://i.imgur.com/Udrt2eK.png"/> | Mega.es |
| 15 | FDF | [>](https://mdslivehls-i.akamaihd.net/hls/live/571650/fdf/bitrate_1.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/fdf-es.png"/> | FactoriadeFiccion.es |
| 18 | Boing | [>](https://mdslivehls-i.akamaihd.net/hls/live/571647/boing/bitrate_1.m3u8) | <img height="20" src="https://i.imgur.com/nUYuCAP.png"/> | Boing.es |
@@ -48,7 +48,7 @@ https://en.wikipedia.org/wiki/Television_in_Spain#Digital_terrestrial_television
| 1 | Telemadrid | [>](https://telemadrid-23-secure2.akamaized.net/master.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/7/71/TeleMadrid.svg/500px-TeleMadrid.svg.png"/> | Telemadrid.es |
| 2 | La Otra | [>](https://laotra-1-23-secure2.akamaized.net/master.m3u8) | <img height="20" src="https://i.imgur.com/W1UZyXH.png" /> | LaOtra.es |
| 3 | Canal Sur Andalucía | [>](https://d4oe4cnrgi9c9.cloudfront.net/master.m3u8) | <img height="20" src="https://i.imgur.com/WcVOXPr.png"/> | CanalSurAndalucia.es |
| 4 | La 7 CYLTV | [x](http://nws.nice264.com/ilive/cyl/cyl_cyltvlivem_MB_348/playlist.m3u8) | <img height="20" src="https://i.imgur.com/o2FlMXP.png"/> | La7deCyLTV.es |
| 4 | La 7 CYLTV | [>](http://nws.nice264.com/ilive/cyl/cyl_cyltvlivem_MB_348/playlist.m3u8) | <img height="20" src="https://i.imgur.com/o2FlMXP.png"/> | La7deCyLTV.es |
| 5 | La 8 Mediterráneo | [>](https://newscript.gestec-video.com/hls/8TVEVENTOS.m3u8) | <img height="20" src="https://graph.facebook.com/la8mediterraneo/picture?width=200&height=200"/> | La8Mediterraneo.es |
| 6 | Televisión Canaria Ⓨ | [>](https://rtvclive.flumotion.cloud/rtvc1live/smil:channel1PRG.smil/playlist.m3u8) | <img height="20" src="https://i.imgur.com/68LNS8e.png"/> | TVCanaria.es |
| 7 | IB3 Global Ⓨ | [>](https://www.youtube.com/c/ib3/live) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/ib3-es.png"/> | IB3.es |
@@ -62,7 +62,7 @@ https://en.wikipedia.org/wiki/Television_in_Spain#Digital_terrestrial_television
| 15 | SX3 Ⓖ | [>](https://directes-tv-cat.3catdirectes.cat/live-content/super3-hls/master.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/SX3_logo.svg/1920px-SX3_logo.svg.png"/> | SX3.es |
| 15 | El 33 Ⓖ | [>](https://directes-tv-cat.3catdirectes.cat/live-origin/c33-super3-hls/master.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/el-33-es.png"/> | El33.es |
| 15 | Esport3 Ⓖ | [>](https://directes-tv-es.3catdirectes.cat/live-origin/esport3-hls/master.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Esport3.svg/1280px-Esport3.svg.png"/> | Esport3.es |
| 15 | Canal TE24 | [x](https://ingest1-video.streaming-pro.com/esportsteABR/etestream/playlist.m3u8) | <img height="20" src="https://i.ibb.co/3ynghbW/logox2.png"/> | CanalTerresdelEbre.es |
| 15 | Canal TE24 | [>](https://ingest1-video.streaming-pro.com/esportsteABR/etestream/playlist.m3u8) | <img height="20" src="https://i.ibb.co/3ynghbW/logox2.png"/> | CanalTerresdelEbre.es |
| 16 | À Punt TV | [>](https://bcovlive-a.akamaihd.net/8499d938ef904e39b58a4adec2ddeada/eu-west-1/6057955885001/playlist_dvr.m3u8) | <img height="20" src="https://i.imgur.com/M88LoNl.png"/> | APunt.es |
| 17 | 7 Región de Murcia Ⓢ | [>](https://rtv-murcia-live.globalmest.com/principal/smil:principal.smil/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/La_7_logo.svg/120px-La_7_logo.svg.png" /> | La7.es |
| 17 | Canal 4 Tenerife | [>](https://videoserver.tmcreativos.com:19360/hkbpjryheu/hkbpjryheu.m3u8) | <img height="20" src="https://i.imgur.com/Egymir4.png" /> | Canal4Tenerife.es |
+2 -2
View File
@@ -15,14 +15,14 @@
| # | Channel | Link | Logo | EPG id |
|:---:|:--------------:|:-----:|:----:|:------:|
| 1 | CNN | [x](https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8) | <img height="20" src="https://i.imgur.com/vyrc1I1.png"/> | CNN.us |
| 1 | CNN | [>](https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8) | <img height="20" src="https://i.imgur.com/vyrc1I1.png"/> | CNN.us |
| 2 | CNBC Ⓨ | [>](https://www.youtube.com/c/CNBC/live) | <img height="20" src="https://i.imgur.com/BTasyOy.png"/> | CNBC.us |
| 3 | Bloomberg | [>](https://bloomberg.com/media-manifest/streams/us.m3u8) | <img height="20" src="https://i.imgur.com/VnCcH73.png"/> | BloombergTelevision.us |
| 4 | ABC News | [>](https://abcnews-streams.akamaized.net/hls/live/2023560/abcnewshudson1/master.m3u8) | <img height="20" src="https://i.imgur.com/7sJLzKi.png"/> | ABCNews.us |
| 5 | CBS News | [>](https://cbsnews.akamaized.net/hls/live/2020607/cbsnlineup_8/master.m3u8) | <img height="20" src="https://i.imgur.com/nki2HDQ.png"/> | CBSNews.us |
| 6 | NBC News | [>](https://d1bl6tskrpq9ze.cloudfront.net/hls/master.m3u8?ads.xumo_channelId=99984003) | <img height="20" src="https://i.imgur.com/v48mMRT.png"/> | NBCNewsNow.us |
| 7 | Reuters TV | [>](https://reuters-reutersnow-1-eu.rakuten.wurl.tv/playlist.m3u8) | <img height="20" src="https://i.imgur.com/AbvCnoH.png"/> | ReutersTV.us |
| 8 | NASA TV Public | [x](https://ntv1.akamaized.net/hls/live/2014075/NASA-NTV1-HLS/master_2000.m3u8) | <img height="20" src="https://i.imgur.com/rmyfoOI.png"/> | NASATVPublic.us |
| 8 | NASA TV Public | [>](https://ntv1.akamaized.net/hls/live/2014075/NASA-NTV1-HLS/master_2000.m3u8) | <img height="20" src="https://i.imgur.com/rmyfoOI.png"/> | NASATVPublic.us |
| 9 | NASA TV Media | [>](https://ntv2.akamaized.net/hls/live/2013923/NASA-NTV2-HLS/master.m3u8) | <img height="20" src="https://i.imgur.com/rmyfoOI.png"/> | NASATVMedia.us |
<h2>Pluto</h2>
+2 -2
View File
@@ -37,8 +37,8 @@
| 33 | Global News | [>](https://live.corusdigitaldev.com/groupd/live/49a91e7f-1023-430f-8d66-561055f3d0f7/live.isml/.m3u8) | <img height="20" src="https://i.imgur.com/xk1QOhW.png"/> | GlobalNews.ca |
| 34 | Russia Today Ⓖ | [>](https://rt-glb.rttv.com/live/rtnews/playlist.m3u8) | <img height="20" src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Russia-today-logo.svg/500px-Russia-today-logo.svg.png"/> | RT.ru |
| 35 | Pluto TV News | [x]() | <img height="20" src="https://i.imgur.com/JdqA4r9.png"/> | PlutoTVNews.us |
| 36 | CNN | [x](https://raw.githubusercontent.com/Alstruit/adaptive-streams/alstruit-10_23_us/streams/us/CNNUSA.us.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png"/> | CNN.us |
| 37 | CNN International | [x](https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png"/> | CNNInternationalEurope.us |
| 36 | CNN | [>](https://raw.githubusercontent.com/Alstruit/adaptive-streams/alstruit-10_23_us/streams/us/CNNUSA.us.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png"/> | CNN.us |
| 37 | CNN International | [>](https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8) | <img height="20" src="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png"/> | CNNInternationalEurope.us |
| 38 | GB News Ⓨ | [>](https://www.youtube.com/channel/UC0vn8ISa4LKMunLbzaXLnOQ/live) | <img height="20" src="https://upload.wikimedia.org/wikipedia/en/thumb/3/35/GB_News_Logo.svg/500px-GB_News_Logo.svg.png"/> | GBNews.uk |
| 39 | TalkTV | [>](https://488f4ce4.wurl.com/master/f36d25e7e52f1ba8d7e56eb859c636563214f541/TEctZ2JfVGFsa19ITFM/playlist.m3u8) | <img height="20" src="https://i.imgur.com/KxHWpQB.png"/> | TalkTV.uk |
| 40 | Joy News Ⓨ | [>](https://www.youtube.com/channel/UChd1DEecCRlxaa0-hvPACCw/live) | <img height="20" src="https://i.imgur.com/kGuMNmR.png"/> | JoyNews.gh |
+36 -6
View File
@@ -259,6 +259,8 @@ https://prd-hometv-live-open.spectar.tv/ERO_1_083/playlist.m3u8
https://stream2.rtvbn.tv:8080/live_1935/bnstream/index.m3u8
#EXTINF:-1 tvg-name="RTV Glas Drine" tvg-logo="https://i.imgur.com/9NgxOdb.png" tvg-id="RTVGlasDrine.ba" tvg-chno="7" tvg-country="BA" group-title="Bosnia and Herzegovina",RTV Glas Drine
http://glasdrine.cutuk.net:8081/433ssdsw/GlasDrineSD/playlist.m3u8
#EXTINF:-1 tvg-name="Sevdah" tvg-logo="https://i.imgur.com/V6W3yEp.png" tvg-id="SevdahTV.ba" tvg-chno="8" tvg-country="BA" group-title="Bosnia and Herzegovina",Sevdah Ⓢ
https://restreamer2.tnt.ba/hls/stream.m3u8
#EXTINF:-1 tvg-name="TNT Kids" tvg-logo="https://i.imgur.com/irTDbpn.png" tvg-id="TNTKidsTV.ba" tvg-chno="9" tvg-country="BA" group-title="Bosnia and Herzegovina",TNT Kids
https://restreamer1.tnt.ba/hls/tntkids.m3u8
#EXTINF:-1 tvg-name="Televizija 5" tvg-logo="https://i.imgur.com/znpvJys.png" tvg-id="Televizija5.ba" tvg-chno="10" tvg-country="BA" group-title="Bosnia and Herzegovina",Televizija 5
@@ -973,10 +975,14 @@ https://rtmp.win:3696/live/arttvgrlive.m3u8
https://itv.streams.ovh:1936/corfuchannel/corfuchannel/playlist.m3u8
#EXTINF:-1 tvg-name="Epirus TV 1" tvg-logo="https://i.imgur.com/QB3aSl1.png" tvg-id="epirustv1.gr" tvg-chno="94" tvg-country="GR" group-title="Greece",Epirus TV 1
https://rtmp.win:3929/live/epiruslive.m3u8
#EXTINF:-1 tvg-name="Start" tvg-logo="https://i.imgur.com/nrEtmBN.png" tvg-id="starttv.gr" tvg-chno="95" tvg-country="GR" group-title="Greece",Start
https://live.cast-control.eu/StartMedia/StartMedia/playlist.m3u8
#EXTINF:-1 tvg-name="Center TV" tvg-logo="https://i.imgur.com/52JW71Q.png" tvg-id="CenterTV.gr" tvg-chno="101" tvg-country="GR" group-title="Greece",Center TV
https://eu1.streams.gr:8081/centertv/index.m3u8
#EXTINF:-1 tvg-name="Delta Evros" tvg-logo="https://i.imgur.com/PDfSkRF.png" tvg-id="DeltaTV.gr" tvg-chno="102" tvg-country="GR" group-title="Greece",Delta Evros
http://81.171.10.42:1935/liveD/DStream.sdp/chunklist_w819085920.m3u8
#EXTINF:-1 tvg-name="Thraki Net TV" tvg-logo="https://i.imgur.com/DV0I0ed.png" tvg-id="ThrakiNetTV.gr" tvg-chno="103" tvg-country="GR" group-title="Greece",Thraki Net TV
https://cdn.onestreaming.com/thrakinettv/thrakinettv/playlist.m3u8
#EXTINF:-1 tvg-name="Creta" tvg-logo="https://i.imgur.com/x0qK8IE.png" tvg-id="CretaTV.gr" tvg-chno="111" tvg-country="GR" group-title="Greece",Creta
http://live.streams.ovh:1935/tvcreta/tvcreta/playlist.m3u8
#EXTINF:-1 tvg-name="Kriti 1" tvg-logo="https://i.imgur.com/C1ucQeC.png" tvg-id="Kriti1Tv.gr" tvg-chno="112" tvg-country="GR" group-title="Greece",Kriti 1
@@ -2193,17 +2199,17 @@ https://dotfvxkfj90ca.cloudfront.net/live/canale58_aac/master.m3u8
https://www.twitch.tv/teleroma_56
#EXTINF:-1 tvg-name="TeleRadioStereo" tvg-logo="https://i.imgur.com/eRNgqnA.png" tvg-country="IT" group-title="Italy",TeleRadioStereo Ⓣ
https://www.twitch.tv/teleradiostereo
#EXTINF:-1 tvg-name="NHK総合 (東京)" tvg-logo="https://i.imgur.com/fAZ2BEZ.png" tvg-id="JOAKDTV.jp" tvg-chno="D011" tvg-country="JP" group-title="日本 / Japan",NHK総合 (東京) Ⓖ
#EXTINF:-1 tvg-name="NHK総合 (東京)" tvg-logo="https://i.imgur.com/fAZ2BEZ.png" tvg-id="JOAKDTV.jp" tvg-chno="D011" tvg-country="JP" group-title="日本 / Japan",NHK総合 (東京)
https://nhk4.mov3.co/hls/nhk.m3u8
#EXTINF:-1 tvg-name="日本テレビ" tvg-logo="https://i.imgur.com/ecbM7QS.png" tvg-id="JOAXDTV.jp" tvg-chno="D041" tvg-country="JP" group-title="日本 / Japan",日本テレビ Ⓖ
#EXTINF:-1 tvg-name="日本テレビ" tvg-logo="https://i.imgur.com/ecbM7QS.png" tvg-id="JOAXDTV.jp" tvg-chno="D041" tvg-country="JP" group-title="日本 / Japan",日本テレビ
https://ntv5.mov3.co/hls/ntv.m3u8
#EXTINF:-1 tvg-name="テレビ朝日" tvg-logo="https://i.imgur.com/5XnMfcR.png" tvg-id="JOEXDTV.jp" tvg-chno="D051" tvg-country="JP" group-title="日本 / Japan",テレビ朝日 Ⓖ
#EXTINF:-1 tvg-name="テレビ朝日" tvg-logo="https://i.imgur.com/5XnMfcR.png" tvg-id="JOEXDTV.jp" tvg-chno="D051" tvg-country="JP" group-title="日本 / Japan",テレビ朝日
https://tvasahi.mov3.co/hls/tvasahi.m3u8
#EXTINF:-1 tvg-name="TBSテレビ" tvg-logo="https://i.imgur.com/jIZ9TlO.png" tvg-id="JORXDTV.jp" tvg-chno="D061" tvg-country="JP" group-title="日本 / Japan",TBSテレビ Ⓖ
#EXTINF:-1 tvg-name="TBSテレビ" tvg-logo="https://i.imgur.com/jIZ9TlO.png" tvg-id="JORXDTV.jp" tvg-chno="D061" tvg-country="JP" group-title="日本 / Japan",TBSテレビ
https://tbs5.mov3.co/hls/tbs.m3u8
#EXTINF:-1 tvg-name="テレビ東京" tvg-logo="https://i.imgur.com/U8jBxEi.png" tvg-id="JOTXDTV.jp" tvg-chno="D071" tvg-country="JP" group-title="日本 / Japan",テレビ東京 Ⓖ
#EXTINF:-1 tvg-name="テレビ東京" tvg-logo="https://i.imgur.com/U8jBxEi.png" tvg-id="JOTXDTV.jp" tvg-chno="D071" tvg-country="JP" group-title="日本 / Japan",テレビ東京
https://tvtokyo.mov3.co/hls/tvtokyo.m3u8
#EXTINF:-1 tvg-name="フジテレビ" tvg-logo="https://i.imgur.com/epJYc7P.png" tvg-id="JOCXDTV.jp" tvg-chno="D081" tvg-country="JP" group-title="日本 / Japan",フジテレビ Ⓖ
#EXTINF:-1 tvg-name="フジテレビ" tvg-logo="https://i.imgur.com/epJYc7P.png" tvg-id="JOCXDTV.jp" tvg-chno="D081" tvg-country="JP" group-title="日本 / Japan",フジテレビ
https://fujitv4.mov3.co/hls/fujitv.m3u8
#EXTINF:-1 tvg-name="WOWOWライブ" tvg-logo="https://www.lyngsat.com/logo/tv/ww/wowow_live.png" tvg-id="WOWOWLive.jp" tvg-chno="BS192" tvg-country="JP" group-title="日本 / Japan",WOWOWライブ
[NO PUBLIC STREAM]
@@ -2913,8 +2919,18 @@ rtmp://212.200.230.50:1935/RTV/rtv1
rtmp://212.200.230.50:1935/RTV/rtv2
#EXTINF:-1 tvg-name="Markíza" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png" tvg-id="Markiza.sk" tvg-chno="1" tvg-country="SK" group-title="Slovakia",Markíza
https://cdnsk003.panaccess.com/local/Markiza/index.m3u8
#EXTINF:-1 tvg-name="Doma" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-doma-sk.png" tvg-id="MarkizaDoma.sk" tvg-chno="2" tvg-country="SK" group-title="Slovakia",Doma
https://sktv.mxnticek.eu/new/stream.php?ch=Doma
#EXTINF:-1 tvg-name="Dajto" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-dajto-sk.png" tvg-id="MarkizaDajto.sk" tvg-chno="3" tvg-country="SK" group-title="Slovakia",Dajto
https://sktv.mxnticek.eu/new/stream.php?ch=Dajto
#EXTINF:-1 tvg-name="Krimi" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-krimi-sk.png" tvg-id="MarkizaKrimi.sk" tvg-chno="4" tvg-country="SK" group-title="Slovakia",Krimi
https://sktv.mxnticek.eu/new/stream.php?ch=Krimi
#EXTINF:-1 tvg-name="Klasik" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png" tvg-chno="5" tvg-country="SK" group-title="Slovakia",Klasik
https://cdnsk003.panaccess.com/local/Markiza_Klasik/index.m3u8
#EXTINF:-1 tvg-name="Markíza TN Live" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/markiza-sk.png" tvg-chno="6" tvg-country="SK" group-title="Slovakia",Markíza TN Live
https://sktv.mxnticek.eu/new/stream.php?ch=Mark%C3%ADza%20TN%20Live
#EXTINF:-1 tvg-name="Jojko" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/jojko-sk.png" tvg-id="Jojko.sk" tvg-chno="12" tvg-country="SK" group-title="Slovakia",Jojko
https://sktv.mxnticek.eu/new/stream.php?ch=Jojko
#EXTINF:-1 tvg-name="STVR :24" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/rtvs-24-sk.png" tvg-id="RTVS24.sk" tvg-chno="15" tvg-country="SK" group-title="Slovakia",STVR :24
https://sktv.mxnticek.eu/new/stream.php?ch=STVR%20%3A24
#EXTINF:-1 tvg-name="Šport" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/slovakia/rtvs-sport-sk.png" tvg-id="RTVSSport.sk" tvg-chno="16" tvg-country="SK" group-title="Slovakia",Šport
@@ -3011,6 +3027,8 @@ https://livehlsdai-i.akamaihd.net/hls/live/571640/telecinco/bitrate_1.m3u8
http://a3live-lh.akamaihd.net/i/lasexta_1@35272/master.m3u8
#EXTINF:-1 tvg-name="Neox" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/neox-es.png" tvg-id="Neox.es" tvg-chno="11" tvg-country="ES" group-title="Spain",Neox Ⓢ
http://a3live-lh.akamaihd.net/i/nxhds/geoneox_1@35261/master.m3u8
#EXTINF:-1 tvg-name="Nova" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/nova-es.png" tvg-id="Nova.es" tvg-chno="12" tvg-country="ES" group-title="Spain",Nova Ⓢ
http://40.160.24.55/Nova/index.m3u8
#EXTINF:-1 tvg-name="Mega" tvg-logo="https://i.imgur.com/Udrt2eK.png" tvg-id="Mega.es" tvg-chno="13" tvg-country="ES" group-title="Spain",Mega Ⓢ
http://a3live-lh.akamaihd.net/i/mghds/geomega_1@328914/master.m3u8
#EXTINF:-1 tvg-name="FDF" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/fdf-es.png" tvg-id="FactoriadeFiccion.es" tvg-chno="15" tvg-country="ES" group-title="Spain",FDF
@@ -3023,6 +3041,8 @@ https://telemadrid-23-secure2.akamaized.net/master.m3u8
https://laotra-1-23-secure2.akamaized.net/master.m3u8
#EXTINF:-1 tvg-name="Canal Sur Andalucía" tvg-logo="https://i.imgur.com/WcVOXPr.png" tvg-id="CanalSurAndalucia.es" tvg-chno="3" tvg-country="ES" group-title="Spain",Canal Sur Andalucía
https://d4oe4cnrgi9c9.cloudfront.net/master.m3u8
#EXTINF:-1 tvg-name="La 7 CYLTV" tvg-logo="https://i.imgur.com/o2FlMXP.png" tvg-id="La7deCyLTV.es" tvg-chno="4" tvg-country="ES" group-title="Spain",La 7 CYLTV
http://nws.nice264.com/ilive/cyl/cyl_cyltvlivem_MB_348/playlist.m3u8
#EXTINF:-1 tvg-name="La 8 Mediterráneo" tvg-logo="https://graph.facebook.com/la8mediterraneo/picture?width=200&height=200" tvg-id="La8Mediterraneo.es" tvg-chno="5" tvg-country="ES" group-title="Spain",La 8 Mediterráneo
https://newscript.gestec-video.com/hls/8TVEVENTOS.m3u8
#EXTINF:-1 tvg-name="Televisión Canaria" tvg-logo="https://i.imgur.com/68LNS8e.png" tvg-id="TVCanaria.es" tvg-chno="6" tvg-country="ES" group-title="Spain",Televisión Canaria Ⓨ
@@ -3049,6 +3069,8 @@ https://directes-tv-cat.3catdirectes.cat/live-content/super3-hls/master.m3u8
https://directes-tv-cat.3catdirectes.cat/live-origin/c33-super3-hls/master.m3u8
#EXTINF:-1 tvg-name="Esport3" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Esport3.svg/1280px-Esport3.svg.png" tvg-id="Esport3.es" tvg-chno="15" tvg-country="ES" group-title="Spain",Esport3 Ⓖ
https://directes-tv-es.3catdirectes.cat/live-origin/esport3-hls/master.m3u8
#EXTINF:-1 tvg-name="Canal TE24" tvg-logo="https://i.ibb.co/3ynghbW/logox2.png" tvg-id="CanalTerresdelEbre.es" tvg-chno="15" tvg-country="ES" group-title="Spain",Canal TE24
https://ingest1-video.streaming-pro.com/esportsteABR/etestream/playlist.m3u8
#EXTINF:-1 tvg-name="À Punt TV" tvg-logo="https://i.imgur.com/M88LoNl.png" tvg-id="APunt.es" tvg-chno="16" tvg-country="ES" group-title="Spain",À Punt TV
https://bcovlive-a.akamaihd.net/8499d938ef904e39b58a4adec2ddeada/eu-west-1/6057955885001/playlist_dvr.m3u8
#EXTINF:-1 tvg-name="7 Región de Murcia" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/La_7_logo.svg/120px-La_7_logo.svg.png" tvg-id="La7.es" tvg-chno="17" tvg-country="ES" group-title="Spain",7 Región de Murcia Ⓢ
@@ -3477,6 +3499,8 @@ https://2-fss-1.streamhoster.com/pl_154/205722-2251224-1/playlist.m3u8
https://lukentvlive.vgcdn.net/v1/master/cef183924f24adfa3d5d7601c3a17769082c0c2b/heartland/index.m3u8
#EXTINF:-1 tvg-name="Rev'n" tvg-logo="https://i.imgur.com/VUhqVgG.png" tvg-id="RevnTV.us" tvg-chno="6" tvg-country="US" group-title="USA",Rev'n
https://lukentvlive.vgcdn.net/v1/master/cef183924f24adfa3d5d7601c3a17769082c0c2b/Revn/index.m3u8
#EXTINF:-1 tvg-name="CNN" tvg-logo="https://i.imgur.com/vyrc1I1.png" tvg-id="CNN.us" tvg-chno="1" tvg-country="US" group-title="USA",CNN
https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-name="CNBC" tvg-logo="https://i.imgur.com/BTasyOy.png" tvg-id="CNBC.us" tvg-chno="2" tvg-country="US" group-title="USA",CNBC Ⓨ
https://www.youtube.com/c/CNBC/live
#EXTINF:-1 tvg-name="Bloomberg" tvg-logo="https://i.imgur.com/VnCcH73.png" tvg-id="BloombergTelevision.us" tvg-chno="3" tvg-country="US" group-title="USA",Bloomberg
@@ -3489,6 +3513,8 @@ https://cbsnews.akamaized.net/hls/live/2020607/cbsnlineup_8/master.m3u8
https://d1bl6tskrpq9ze.cloudfront.net/hls/master.m3u8?ads.xumo_channelId=99984003
#EXTINF:-1 tvg-name="Reuters TV" tvg-logo="https://i.imgur.com/AbvCnoH.png" tvg-id="ReutersTV.us" tvg-chno="7" tvg-country="US" group-title="USA",Reuters TV
https://reuters-reutersnow-1-eu.rakuten.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-name="NASA TV Public" tvg-logo="https://i.imgur.com/rmyfoOI.png" tvg-id="NASATVPublic.us" tvg-chno="8" tvg-country="US" group-title="USA",NASA TV Public
https://ntv1.akamaized.net/hls/live/2014075/NASA-NTV1-HLS/master_2000.m3u8
#EXTINF:-1 tvg-name="NASA TV Media" tvg-logo="https://i.imgur.com/rmyfoOI.png" tvg-id="NASATVMedia.us" tvg-chno="9" tvg-country="US" group-title="USA",NASA TV Media
https://ntv2.akamaized.net/hls/live/2013923/NASA-NTV2-HLS/master.m3u8
#EXTINF:-1 tvg-name="BBC Food" tvg-logo="https://i.imgur.com/N3xiz4m.png" tvg-id="BBCFood.us" tvg-chno="1" tvg-country="US" group-title="USA",BBC Food
@@ -3691,6 +3717,10 @@ https://i.mjh.nz/sky-news-now.m3u8
https://live.corusdigitaldev.com/groupd/live/49a91e7f-1023-430f-8d66-561055f3d0f7/live.isml/.m3u8
#EXTINF:-1 tvg-name="Russia Today" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Russia-today-logo.svg/500px-Russia-today-logo.svg.png" tvg-id="RT.ru" tvg-chno="34" group-title="News",Russia Today Ⓖ
https://rt-glb.rttv.com/live/rtnews/playlist.m3u8
#EXTINF:-1 tvg-name="CNN" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png" tvg-id="CNN.us" tvg-chno="36" group-title="News",CNN
https://raw.githubusercontent.com/Alstruit/adaptive-streams/alstruit-10_23_us/streams/us/CNNUSA.us.m3u8
#EXTINF:-1 tvg-name="CNN International" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png" tvg-id="CNNInternationalEurope.us" tvg-chno="37" group-title="News",CNN International
https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-name="GB News" tvg-logo="https://upload.wikimedia.org/wikipedia/en/thumb/3/35/GB_News_Logo.svg/500px-GB_News_Logo.svg.png" tvg-id="GBNews.uk" tvg-chno="38" group-title="News",GB News Ⓨ
https://www.youtube.com/channel/UC0vn8ISa4LKMunLbzaXLnOQ/live
#EXTINF:-1 tvg-name="TalkTV" tvg-logo="https://i.imgur.com/KxHWpQB.png" tvg-id="TalkTV.uk" tvg-chno="39" group-title="News",TalkTV
@@ -17,6 +17,8 @@ https://prd-hometv-live-open.spectar.tv/ERO_1_083/playlist.m3u8
https://stream2.rtvbn.tv:8080/live_1935/bnstream/index.m3u8
#EXTINF:-1 tvg-name="RTV Glas Drine" tvg-logo="https://i.imgur.com/9NgxOdb.png" tvg-id="RTVGlasDrine.ba" tvg-chno="7" tvg-country="BA" group-title="Bosnia and Herzegovina",RTV Glas Drine
http://glasdrine.cutuk.net:8081/433ssdsw/GlasDrineSD/playlist.m3u8
#EXTINF:-1 tvg-name="Sevdah" tvg-logo="https://i.imgur.com/V6W3yEp.png" tvg-id="SevdahTV.ba" tvg-chno="8" tvg-country="BA" group-title="Bosnia and Herzegovina",Sevdah Ⓢ
https://restreamer2.tnt.ba/hls/stream.m3u8
#EXTINF:-1 tvg-name="TNT Kids" tvg-logo="https://i.imgur.com/irTDbpn.png" tvg-id="TNTKidsTV.ba" tvg-chno="9" tvg-country="BA" group-title="Bosnia and Herzegovina",TNT Kids
https://restreamer1.tnt.ba/hls/tntkids.m3u8
#EXTINF:-1 tvg-name="Televizija 5" tvg-logo="https://i.imgur.com/znpvJys.png" tvg-id="Televizija5.ba" tvg-chno="10" tvg-country="BA" group-title="Bosnia and Herzegovina",Televizija 5
+4
View File
@@ -105,10 +105,14 @@ https://rtmp.win:3696/live/arttvgrlive.m3u8
https://itv.streams.ovh:1936/corfuchannel/corfuchannel/playlist.m3u8
#EXTINF:-1 tvg-name="Epirus TV 1" tvg-logo="https://i.imgur.com/QB3aSl1.png" tvg-id="epirustv1.gr" tvg-chno="94" tvg-country="GR" group-title="Greece",Epirus TV 1
https://rtmp.win:3929/live/epiruslive.m3u8
#EXTINF:-1 tvg-name="Start" tvg-logo="https://i.imgur.com/nrEtmBN.png" tvg-id="starttv.gr" tvg-chno="95" tvg-country="GR" group-title="Greece",Start
https://live.cast-control.eu/StartMedia/StartMedia/playlist.m3u8
#EXTINF:-1 tvg-name="Center TV" tvg-logo="https://i.imgur.com/52JW71Q.png" tvg-id="CenterTV.gr" tvg-chno="101" tvg-country="GR" group-title="Greece",Center TV
https://eu1.streams.gr:8081/centertv/index.m3u8
#EXTINF:-1 tvg-name="Delta Evros" tvg-logo="https://i.imgur.com/PDfSkRF.png" tvg-id="DeltaTV.gr" tvg-chno="102" tvg-country="GR" group-title="Greece",Delta Evros
http://81.171.10.42:1935/liveD/DStream.sdp/chunklist_w819085920.m3u8
#EXTINF:-1 tvg-name="Thraki Net TV" tvg-logo="https://i.imgur.com/DV0I0ed.png" tvg-id="ThrakiNetTV.gr" tvg-chno="103" tvg-country="GR" group-title="Greece",Thraki Net TV
https://cdn.onestreaming.com/thrakinettv/thrakinettv/playlist.m3u8
#EXTINF:-1 tvg-name="Creta" tvg-logo="https://i.imgur.com/x0qK8IE.png" tvg-id="CretaTV.gr" tvg-chno="111" tvg-country="GR" group-title="Greece",Creta
http://live.streams.ovh:1935/tvcreta/tvcreta/playlist.m3u8
#EXTINF:-1 tvg-name="Kriti 1" tvg-logo="https://i.imgur.com/C1ucQeC.png" tvg-id="Kriti1Tv.gr" tvg-chno="112" tvg-country="GR" group-title="Greece",Kriti 1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+6
View File
@@ -43,6 +43,8 @@ https://livehlsdai-i.akamaihd.net/hls/live/571640/telecinco/bitrate_1.m3u8
http://a3live-lh.akamaihd.net/i/lasexta_1@35272/master.m3u8
#EXTINF:-1 tvg-name="Neox" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/neox-es.png" tvg-id="Neox.es" tvg-chno="11" tvg-country="ES" group-title="Spain",Neox Ⓢ
http://a3live-lh.akamaihd.net/i/nxhds/geoneox_1@35261/master.m3u8
#EXTINF:-1 tvg-name="Nova" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/nova-es.png" tvg-id="Nova.es" tvg-chno="12" tvg-country="ES" group-title="Spain",Nova Ⓢ
http://40.160.24.55/Nova/index.m3u8
#EXTINF:-1 tvg-name="Mega" tvg-logo="https://i.imgur.com/Udrt2eK.png" tvg-id="Mega.es" tvg-chno="13" tvg-country="ES" group-title="Spain",Mega Ⓢ
http://a3live-lh.akamaihd.net/i/mghds/geomega_1@328914/master.m3u8
#EXTINF:-1 tvg-name="FDF" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/spain/fdf-es.png" tvg-id="FactoriadeFiccion.es" tvg-chno="15" tvg-country="ES" group-title="Spain",FDF
@@ -55,6 +57,8 @@ https://telemadrid-23-secure2.akamaized.net/master.m3u8
https://laotra-1-23-secure2.akamaized.net/master.m3u8
#EXTINF:-1 tvg-name="Canal Sur Andalucía" tvg-logo="https://i.imgur.com/WcVOXPr.png" tvg-id="CanalSurAndalucia.es" tvg-chno="3" tvg-country="ES" group-title="Spain",Canal Sur Andalucía
https://d4oe4cnrgi9c9.cloudfront.net/master.m3u8
#EXTINF:-1 tvg-name="La 7 CYLTV" tvg-logo="https://i.imgur.com/o2FlMXP.png" tvg-id="La7deCyLTV.es" tvg-chno="4" tvg-country="ES" group-title="Spain",La 7 CYLTV
http://nws.nice264.com/ilive/cyl/cyl_cyltvlivem_MB_348/playlist.m3u8
#EXTINF:-1 tvg-name="La 8 Mediterráneo" tvg-logo="https://graph.facebook.com/la8mediterraneo/picture?width=200&height=200" tvg-id="La8Mediterraneo.es" tvg-chno="5" tvg-country="ES" group-title="Spain",La 8 Mediterráneo
https://newscript.gestec-video.com/hls/8TVEVENTOS.m3u8
#EXTINF:-1 tvg-name="Televisión Canaria" tvg-logo="https://i.imgur.com/68LNS8e.png" tvg-id="TVCanaria.es" tvg-chno="6" tvg-country="ES" group-title="Spain",Televisión Canaria Ⓨ
@@ -81,6 +85,8 @@ https://directes-tv-cat.3catdirectes.cat/live-content/super3-hls/master.m3u8
https://directes-tv-cat.3catdirectes.cat/live-origin/c33-super3-hls/master.m3u8
#EXTINF:-1 tvg-name="Esport3" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Esport3.svg/1280px-Esport3.svg.png" tvg-id="Esport3.es" tvg-chno="15" tvg-country="ES" group-title="Spain",Esport3 Ⓖ
https://directes-tv-es.3catdirectes.cat/live-origin/esport3-hls/master.m3u8
#EXTINF:-1 tvg-name="Canal TE24" tvg-logo="https://i.ibb.co/3ynghbW/logox2.png" tvg-id="CanalTerresdelEbre.es" tvg-chno="15" tvg-country="ES" group-title="Spain",Canal TE24
https://ingest1-video.streaming-pro.com/esportsteABR/etestream/playlist.m3u8
#EXTINF:-1 tvg-name="À Punt TV" tvg-logo="https://i.imgur.com/M88LoNl.png" tvg-id="APunt.es" tvg-chno="16" tvg-country="ES" group-title="Spain",À Punt TV
https://bcovlive-a.akamaihd.net/8499d938ef904e39b58a4adec2ddeada/eu-west-1/6057955885001/playlist_dvr.m3u8
#EXTINF:-1 tvg-name="7 Región de Murcia" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/La_7_logo.svg/120px-La_7_logo.svg.png" tvg-id="La7.es" tvg-chno="17" tvg-country="ES" group-title="Spain",7 Región de Murcia Ⓢ
+4
View File
@@ -11,6 +11,8 @@ https://2-fss-1.streamhoster.com/pl_154/205722-2251224-1/playlist.m3u8
https://lukentvlive.vgcdn.net/v1/master/cef183924f24adfa3d5d7601c3a17769082c0c2b/heartland/index.m3u8
#EXTINF:-1 tvg-name="Rev'n" tvg-logo="https://i.imgur.com/VUhqVgG.png" tvg-id="RevnTV.us" tvg-chno="6" tvg-country="US" group-title="USA",Rev'n
https://lukentvlive.vgcdn.net/v1/master/cef183924f24adfa3d5d7601c3a17769082c0c2b/Revn/index.m3u8
#EXTINF:-1 tvg-name="CNN" tvg-logo="https://i.imgur.com/vyrc1I1.png" tvg-id="CNN.us" tvg-chno="1" tvg-country="US" group-title="USA",CNN
https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-name="CNBC" tvg-logo="https://i.imgur.com/BTasyOy.png" tvg-id="CNBC.us" tvg-chno="2" tvg-country="US" group-title="USA",CNBC Ⓨ
https://www.youtube.com/c/CNBC/live
#EXTINF:-1 tvg-name="Bloomberg" tvg-logo="https://i.imgur.com/VnCcH73.png" tvg-id="BloombergTelevision.us" tvg-chno="3" tvg-country="US" group-title="USA",Bloomberg
@@ -23,6 +25,8 @@ https://cbsnews.akamaized.net/hls/live/2020607/cbsnlineup_8/master.m3u8
https://d1bl6tskrpq9ze.cloudfront.net/hls/master.m3u8?ads.xumo_channelId=99984003
#EXTINF:-1 tvg-name="Reuters TV" tvg-logo="https://i.imgur.com/AbvCnoH.png" tvg-id="ReutersTV.us" tvg-chno="7" tvg-country="US" group-title="USA",Reuters TV
https://reuters-reutersnow-1-eu.rakuten.wurl.tv/playlist.m3u8
#EXTINF:-1 tvg-name="NASA TV Public" tvg-logo="https://i.imgur.com/rmyfoOI.png" tvg-id="NASATVPublic.us" tvg-chno="8" tvg-country="US" group-title="USA",NASA TV Public
https://ntv1.akamaized.net/hls/live/2014075/NASA-NTV1-HLS/master_2000.m3u8
#EXTINF:-1 tvg-name="NASA TV Media" tvg-logo="https://i.imgur.com/rmyfoOI.png" tvg-id="NASATVMedia.us" tvg-chno="9" tvg-country="US" group-title="USA",NASA TV Media
https://ntv2.akamaized.net/hls/live/2013923/NASA-NTV2-HLS/master.m3u8
#EXTINF:-1 tvg-name="BBC Food" tvg-logo="https://i.imgur.com/N3xiz4m.png" tvg-id="BBCFood.us" tvg-chno="1" tvg-country="US" group-title="USA",BBC Food
+4
View File
@@ -67,6 +67,10 @@ https://i.mjh.nz/sky-news-now.m3u8
https://live.corusdigitaldev.com/groupd/live/49a91e7f-1023-430f-8d66-561055f3d0f7/live.isml/.m3u8
#EXTINF:-1 tvg-name="Russia Today" tvg-logo="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/Russia-today-logo.svg/500px-Russia-today-logo.svg.png" tvg-id="RT.ru" tvg-chno="34" group-title="News",Russia Today Ⓖ
https://rt-glb.rttv.com/live/rtnews/playlist.m3u8
#EXTINF:-1 tvg-name="CNN" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png" tvg-id="CNN.us" tvg-chno="36" group-title="News",CNN
https://raw.githubusercontent.com/Alstruit/adaptive-streams/alstruit-10_23_us/streams/us/CNNUSA.us.m3u8
#EXTINF:-1 tvg-name="CNN International" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/main/countries/united-states/cnn-us.png" tvg-id="CNNInternationalEurope.us" tvg-chno="37" group-title="News",CNN International
https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-name="GB News" tvg-logo="https://upload.wikimedia.org/wikipedia/en/thumb/3/35/GB_News_Logo.svg/500px-GB_News_Logo.svg.png" tvg-id="GBNews.uk" tvg-chno="38" group-title="News",GB News Ⓨ
https://www.youtube.com/channel/UC0vn8ISa4LKMunLbzaXLnOQ/live
#EXTINF:-1 tvg-name="TalkTV" tvg-logo="https://i.imgur.com/KxHWpQB.png" tvg-id="TalkTV.uk" tvg-chno="39" group-title="News",TalkTV