Compare commits

...

41 commits

Author SHA1 Message Date
GitHub Actions Bot
ad40759ec2 update EPG 2026-01-30 04:23:23 +00:00
GitHub Actions Bot
662a615392 health log 2026-01-30 04:20:23 +00:00
GitHub Actions Bot
a9cbac7ebf update M3U8 2026-01-29 23:01:47 -05:00
GitHub Actions Bot
ad270203f7 update M3U8 2026-01-29 22:31:38 -05:00
GitHub Actions Bot
0a454ebc62 update M3U8 2026-01-29 22:02:24 -05:00
GitHub Actions Bot
70268363df update M3U8 2026-01-29 21:32:22 -05:00
GitHub Actions Bot
11e894e261 update M3U8 2026-01-29 21:03:21 -05:00
GitHub Actions Bot
73db349274 update M3U8 2026-01-29 20:31:11 -05:00
GitHub Actions Bot
4833c0a6d5 update M3U8 2026-01-29 20:02:56 -05:00
doms9
00000d9c8c e
change base url for totalsportek.py (duplicate source)
2026-01-29 19:38:47 -05:00
GitHub Actions Bot
8be3067419 update M3U8 2026-01-29 19:31:30 -05:00
GitHub Actions Bot
ddbe759fcb update M3U8 2026-01-29 19:04:09 -05:00
GitHub Actions Bot
af7e55ef86 update M3U8 2026-01-29 18:32:27 -05:00
GitHub Actions Bot
023b80b7df update M3U8 2026-01-29 18:01:29 -05:00
GitHub Actions Bot
664c57bb5a health log 2026-01-29 17:52:37 -05:00
doms9
00000d938e e 2026-01-29 17:52:18 -05:00
doms9
00000d9d9e fixes #5 2026-01-29 17:39:04 -05:00
doms9
00000d9e96 e
add football to livetvsx.py
2026-01-29 17:37:15 -05:00
GitHub Actions Bot
ab3d43599a update M3U8 2026-01-29 17:31:05 -05:00
GitHub Actions Bot
3ee1a12e6e update M3U8 2026-01-29 17:00:59 -05:00
GitHub Actions Bot
a0f6bf1240 update M3U8 2026-01-29 16:32:09 -05:00
GitHub Actions Bot
044aa3d055 update M3U8 2026-01-29 16:00:40 -05:00
GitHub Actions Bot
433aebe9e9 health log 2026-01-29 20:52:58 +00:00
GitHub Actions Bot
4fb81bbb82 update M3U8 2026-01-29 15:30:50 -05:00
GitHub Actions Bot
6d43365576 update M3U8 2026-01-29 15:05:07 -05:00
GitHub Actions Bot
b461d3dcb5 update EPG 2026-01-29 19:19:16 +00:00
GitHub Actions Bot
f2456ba331 update M3U8 2026-01-29 14:02:10 -05:00
GitHub Actions Bot
c07fa6efbc update M3U8 2026-01-29 13:31:31 -05:00
GitHub Actions Bot
09727563c1 update M3U8 2026-01-29 13:03:38 -05:00
GitHub Actions Bot
74e8a25a5d health log 2026-01-29 12:45:42 -05:00
GitHub Actions Bot
92894d4712 update M3U8 2026-01-29 12:02:26 -05:00
GitHub Actions Bot
ea2e223ca9 update M3U8 2026-01-29 11:02:53 -05:00
GitHub Actions Bot
5ec530b033 health log 2026-01-29 15:04:32 +00:00
GitHub Actions Bot
cd738c572c update M3U8 2026-01-29 10:02:26 -05:00
GitHub Actions Bot
c3c4cf6671 update M3U8 2026-01-29 09:01:24 -05:00
GitHub Actions Bot
1bc40cfb4b update M3U8 2026-01-29 08:02:44 -05:00
GitHub Actions Bot
526a5a5d47 update EPG 2026-01-29 11:17:58 +00:00
GitHub Actions Bot
4de9d84507 health log 2026-01-29 09:05:42 +00:00
doms9
00000d91bf e
edit livetvsx.py scraping
edit totalsportek.py scraping
2026-01-29 00:11:43 -05:00
GitHub Actions Bot
0625fe5be8 update M3U8 2026-01-28 23:31:35 -05:00
GitHub Actions Bot
c1ddb9bd8b update EPG 2026-01-29 04:20:37 +00:00
8 changed files with 106179 additions and 109164 deletions

File diff suppressed because it is too large Load diff

209802
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -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

File diff suppressed because it is too large Load diff

View file

@ -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()),

View file

@ -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)

View file

@ -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 = (

View file

@ -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
```