mirror of
https://github.com/doms9/iptv.git
synced 2026-03-07 11:18:25 +01:00
Compare commits
41 commits
0d0ba7a015
...
ad40759ec2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad40759ec2 | ||
|
|
662a615392 | ||
|
|
a9cbac7ebf | ||
|
|
ad270203f7 | ||
|
|
0a454ebc62 | ||
|
|
70268363df | ||
|
|
11e894e261 | ||
|
|
73db349274 | ||
|
|
4833c0a6d5 | ||
|
|
00000d9c8c | ||
|
|
8be3067419 | ||
|
|
ddbe759fcb | ||
|
|
af7e55ef86 | ||
|
|
023b80b7df | ||
|
|
664c57bb5a | ||
|
|
00000d938e | ||
|
|
00000d9d9e | ||
|
|
00000d9e96 | ||
|
|
ab3d43599a | ||
|
|
3ee1a12e6e | ||
|
|
a0f6bf1240 | ||
|
|
044aa3d055 | ||
|
|
433aebe9e9 | ||
|
|
4fb81bbb82 | ||
|
|
6d43365576 | ||
|
|
b461d3dcb5 | ||
|
|
f2456ba331 | ||
|
|
c07fa6efbc | ||
|
|
09727563c1 | ||
|
|
74e8a25a5d | ||
|
|
92894d4712 | ||
|
|
ea2e223ca9 | ||
|
|
5ec530b033 | ||
|
|
cd738c572c | ||
|
|
c3c4cf6671 | ||
|
|
1bc40cfb4b | ||
|
|
526a5a5d47 | ||
|
|
4de9d84507 | ||
|
|
00000d91bf | ||
|
|
0625fe5be8 | ||
|
|
c1ddb9bd8b |
8 changed files with 106179 additions and 109164 deletions
2736
M3U8/TV.m3u8
2736
M3U8/TV.m3u8
File diff suppressed because it is too large
Load diff
209802
M3U8/TV.xml
209802
M3U8/TV.xml
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
#EXTM3U url-tvg="https://raw.githubusercontent.com/doms9/iptv/refs/heads/default/EPG/TV.xml"
|
||||
#EXTM3U url-tvg="https://raw.githubusercontent.com/doms9/iptv/refs/heads/default/M3U8/TV.xml"
|
||||
|
||||
#EXTINF:-1 tvg-chno="1" tvg-id="A.and.E.HD.East.us2" tvg-name="A&E TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s51529_dark_360w_270h.png" group-title="TV",A&E TV
|
||||
http://fl1.moveonjoy.com/ANE/index.m3u8
|
||||
|
|
@ -308,7 +308,7 @@ http://mytvstream.net:8080/live/bn80NG/909467/20939.m3u8
|
|||
http://mytvstream.net:8080/live/bn80NG/909467/20940.m3u8
|
||||
|
||||
#EXTINF:-1 tvg-chno="101" tvg-id="a90a91570ce0536cbb22b591ad7e0da2" tvg-name="NBC Sports NOW" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s114140_dark_360w_270h.png" group-title="TV",NBC Sports NOW
|
||||
https://jmp2.uk/rok-a90a91570ce0536cbb22b591ad7e0da2.m3u8
|
||||
https://jmp2.uk/stvp-USBD420002446
|
||||
|
||||
#EXTINF:-1 tvg-chno="102" tvg-id="NBC.Sports.Philadelphia.HD.us2" tvg-name="NBC Sports Philadelphia" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32571_dark_360w_270h.png" group-title="TV",NBC Sports Philadelphia
|
||||
http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/136477
|
||||
|
|
|
|||
2732
M3U8/events.m3u8
2732
M3U8/events.m3u8
File diff suppressed because it is too large
Load diff
|
|
@ -82,7 +82,7 @@ async def main() -> None:
|
|||
asyncio.create_task(pawa.scrape()),
|
||||
asyncio.create_task(roxie.scrape()),
|
||||
asyncio.create_task(shark.scrape()),
|
||||
asyncio.create_task(streambtw.scrape()),
|
||||
# asyncio.create_task(streambtw.scrape()),
|
||||
asyncio.create_task(streamfree.scrape()),
|
||||
asyncio.create_task(tvpass.scrape()),
|
||||
asyncio.create_task(xstreameast.scrape()),
|
||||
|
|
|
|||
|
|
@ -18,7 +18,11 @@ XML_CACHE = Cache(f"{TAG}-xml", exp=28_000)
|
|||
|
||||
BASE_URL = "https://cdn.livetv861.me/rss/upcoming_en.xml"
|
||||
|
||||
VALID_SPORTS = {"NBA", "NHL", "NFL", "NCAA", "MLB"}
|
||||
VALID_SPORTS = {
|
||||
"Football",
|
||||
"Basketball",
|
||||
"Ice Hockey",
|
||||
}
|
||||
|
||||
|
||||
async def process_event(
|
||||
|
|
@ -50,22 +54,22 @@ async def process_event(
|
|||
|
||||
buttons = await page.query_selector_all(".lnktbj a[href*='webplayer']")
|
||||
|
||||
href = None
|
||||
labels = await page.eval_on_selector_all(
|
||||
".lnktyt span",
|
||||
"elements => elements.map(el => el.textContent.trim().toLowerCase())",
|
||||
)
|
||||
|
||||
for btn in buttons:
|
||||
img = await btn.query_selector("img")
|
||||
|
||||
label = (await img.get_attribute("alt") or "").lower()
|
||||
|
||||
if not label or label == "web":
|
||||
for btn, label in zip(buttons, labels):
|
||||
if label in ["web", "youtube"]:
|
||||
continue
|
||||
|
||||
if not (href := await btn.get_attribute("href")):
|
||||
continue
|
||||
|
||||
href = await btn.get_attribute("href")
|
||||
break
|
||||
|
||||
else:
|
||||
log.warning(f"URL {url_num}) No available stream links.")
|
||||
|
||||
log.warning(f"URL {url_num}) No valid sources found.")
|
||||
return
|
||||
|
||||
href = href if href.startswith("http") else f"https:{href}"
|
||||
|
|
@ -130,17 +134,20 @@ async def refresh_xml_cache(now_ts: float) -> dict[str, dict[str, str | float]]:
|
|||
if not all([title, link, sport_sum, date]):
|
||||
continue
|
||||
|
||||
sport = sport_sum.split()[-1]
|
||||
sprt = sport_sum.split(".", 1)
|
||||
|
||||
sport, league = sprt[0], "".join(sprt[1:]).strip()
|
||||
|
||||
if sport not in VALID_SPORTS:
|
||||
continue
|
||||
|
||||
event_dt = Time.from_str(date)
|
||||
|
||||
key = f"[{sport}] {title} ({TAG})"
|
||||
key = f"[{sport} - {league}] {title} ({TAG})"
|
||||
|
||||
events[key] = {
|
||||
"sport": sport,
|
||||
"league": league,
|
||||
"event": title,
|
||||
"link": link,
|
||||
"event_ts": event_dt.timestamp(),
|
||||
|
|
@ -210,14 +217,15 @@ async def scrape(browser: Browser) -> None:
|
|||
log=log,
|
||||
)
|
||||
|
||||
sport, event, ts, link = (
|
||||
sport, league, event, ts, link = (
|
||||
ev["sport"],
|
||||
ev["league"],
|
||||
ev["event"],
|
||||
ev["timestamp"],
|
||||
ev["link"],
|
||||
)
|
||||
|
||||
key = f"[{sport}] {event} ({TAG})"
|
||||
key = f"[{sport} - {league}] {event} ({TAG})"
|
||||
|
||||
tvg_id, logo = leagues.get_tvg_info(sport, event)
|
||||
|
||||
|
|
|
|||
|
|
@ -107,8 +107,9 @@ async def scrape(browser: Browser) -> None:
|
|||
url = await network.safe_process(
|
||||
handler,
|
||||
url_num=i,
|
||||
semaphore=network.HTTP_S,
|
||||
semaphore=network.PW_S,
|
||||
log=log,
|
||||
timeout=6,
|
||||
)
|
||||
|
||||
sport, event, link = (
|
||||
|
|
|
|||
22
readme.md
22
readme.md
|
|
@ -1,27 +1,13 @@
|
|||
## Base Log @ 2026-01-29 04:16 UTC
|
||||
## Base Log @ 2026-01-30 04:20 UTC
|
||||
|
||||
### ✅ Working Streams: 128<br>❌ Dead Streams: 18
|
||||
### ✅ Working Streams: 142<br>❌ Dead Streams: 4
|
||||
|
||||
| Channel | Error (Code) | Link |
|
||||
| ------- | ------------ | ---- |
|
||||
| ESPN2 | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/2210.m3u8` |
|
||||
| FDSN Detroit | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/20930.m3u8` |
|
||||
| FDSN Florida | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/46794.m3u8` |
|
||||
| FDSN Midwest | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/66795.m3u8` |
|
||||
| FDSN North | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/58827.m3u8` |
|
||||
| FDSN Oklahoma | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/20934.m3u8` |
|
||||
| FDSN SoCal | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/221151.m3u8` |
|
||||
| FDSN West | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/20932.m3u8` |
|
||||
| FDSN Wisconsin | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/78599.m3u8` |
|
||||
| FXX | HTTP Error (404) | `https://fl1.moveonjoy.com/FXX/index.m3u8` |
|
||||
| NBC Sports Boston | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/20939.m3u8` |
|
||||
| NBC Sports California | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/20940.m3u8` |
|
||||
| NESN | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/46726.m3u8` |
|
||||
| Premier Sports 1 | HTTP Error (403) | `http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/117037` |
|
||||
| Premier Sports 2 | HTTP Error (502) | `http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/117038` |
|
||||
| Space City Home Network | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/213668.m3u8` |
|
||||
| Sportsnet East | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/57298.m3u8` |
|
||||
| Sportsnet One | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/57297.m3u8` |
|
||||
| The Weather Channel | HTTP Error (404) | `http://mytvstream.net:8080/live/bn80NG/909467/18926.m3u8` |
|
||||
| Sportsnet One | HTTP Error (403) | `http://mytvstream.net:8080/live/bn80NG/909467/57297.m3u8` |
|
||||
---
|
||||
#### Base Channels URL
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue