Compare commits

...

34 commits

Author SHA1 Message Date
GitHub Actions Bot
a2d2155bbf update M3U8 2026-05-26 18:30:50 -04:00
GitHub Actions Bot
9fb77b07d9 health log 2026-05-26 22:03:00 +00:00
GitHub Actions Bot
b9220bcee5 update M3U8 2026-05-26 18:00:13 -04:00
GitHub Actions Bot
5eaca671e7 update M3U8 2026-05-26 17:30:53 -04:00
GitHub Actions Bot
91f02c4b4d update M3U8 2026-05-26 17:00:31 -04:00
GitHub Actions Bot
4b4a6da4ac update EPG 2026-05-26 20:35:39 +00:00
GitHub Actions Bot
faa0d47f8c update M3U8 2026-05-26 16:31:08 -04:00
GitHub Actions Bot
4486fd75f2 update M3U8 2026-05-26 16:00:44 -04:00
GitHub Actions Bot
fa13daa97a update M3U8 2026-05-26 15:30:18 -04:00
GitHub Actions Bot
ab2b9fe895 update M3U8 2026-05-26 15:00:56 -04:00
GitHub Actions Bot
44d20b574c update M3U8 2026-05-26 14:30:33 -04:00
GitHub Actions Bot
a34620f331 update M3U8 2026-05-26 14:01:03 -04:00
GitHub Actions Bot
63010428da health log 2026-05-26 17:43:04 +00:00
GitHub Actions Bot
9823e1d85f update M3U8 2026-05-26 13:31:37 -04:00
GitHub Actions Bot
84cdaf7411 update M3U8 2026-05-26 13:00:52 -04:00
GitHub Actions Bot
090556c025 update M3U8 2026-05-26 12:01:19 -04:00
GitHub Actions Bot
57816f6681 update M3U8 2026-05-26 11:00:41 -04:00
GitHub Actions Bot
59f2dab1e2 update M3U8 2026-05-26 10:01:08 -04:00
GitHub Actions Bot
6f36a08cdc update EPG 2026-05-26 13:40:09 +00:00
GitHub Actions Bot
0cb6951440 update M3U8 2026-05-26 09:00:36 -04:00
GitHub Actions Bot
aa81730a55 update M3U8 2026-05-26 08:02:05 -04:00
GitHub Actions Bot
ce91c8a7a6 update EPG 2026-05-26 06:34:04 +00:00
GitHub Actions Bot
b077d80a04 health log 2026-05-26 06:32:06 +00:00
GitHub Actions Bot
2cefe0f2f6 update M3U8 2026-05-25 23:30:17 -04:00
GitHub Actions Bot
1df9b10474 update M3U8 2026-05-25 23:00:52 -04:00
GitHub Actions Bot
fd141ea4be update M3U8 2026-05-25 22:30:19 -04:00
doms9
00000d96d1 e
- add xyzstream.py
- misc edits.
2026-05-25 22:25:24 -04:00
GitHub Actions Bot
c92a0ecab6 update M3U8 2026-05-25 22:00:53 -04:00
GitHub Actions Bot
d721b5008c update M3U8 2026-05-25 21:30:26 -04:00
GitHub Actions Bot
8eee913c34 update M3U8 2026-05-25 21:00:57 -04:00
GitHub Actions Bot
27ddac650e update M3U8 2026-05-25 20:30:25 -04:00
GitHub Actions Bot
320db011e8 update M3U8 2026-05-25 20:00:58 -04:00
GitHub Actions Bot
0906ce09b1 update M3U8 2026-05-25 19:30:34 -04:00
GitHub Actions Bot
7cb1263a1d update M3U8 2026-05-25 19:00:54 -04:00
8 changed files with 108867 additions and 104492 deletions

File diff suppressed because it is too large Load diff

210291
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -34,7 +34,7 @@ https://bcovlive-a.akamaihd.net/7f5ec16d102f4b5d92e8e27bc95ff424/us-east-1/62407
https://vs-hls-push-ww-live.akamaized.net/x=4/i=urn:bbc:pips:service:bbc_news_channel_hd/t=3840/v=pv14/b=5070016/main.m3u8
#EXTINF:-1 tvg-chno="12" tvg-id="BET.HD.us2" tvg-name="BET" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10051_dark_360w_270h.png" group-title="TV",BET
http://41.205.93.154/BET-EN/index.m3u8
http://cdn1host.online:2999/live/bongus/35zqYxrbg0/204.ts
#EXTINF:-1 tvg-chno="13" tvg-id="Big.Ten.Network.HD.us2" tvg-name="Big Ten Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s56783_dark_360w_270h.png" group-title="TV",Big Ten Network
http://23.237.104.106:8080/USA_BTN/index.m3u8

File diff suppressed because it is too large Load diff

View file

@ -22,6 +22,7 @@ from scrapers import (
tvapp,
watchfooty,
webcast,
xyzstream,
)
from scrapers.utils import get_logger, network
@ -73,9 +74,10 @@ async def main() -> None:
asyncio.create_task(streamcenter.scrape()),
asyncio.create_task(streamsgate.scrape()),
asyncio.create_task(streamtpnew.scrape()),
# asyncio.create_task(totalsportek.scrape()),
asyncio.create_task(totalsportek.scrape()),
asyncio.create_task(tvapp.scrape()),
asyncio.create_task(webcast.scrape()),
asyncio.create_task(xyzstream.scrape()),
]
await asyncio.gather(*(pw_tasks + httpx_tasks))
@ -109,6 +111,7 @@ async def main() -> None:
| tvapp.urls
| watchfooty.urls
| webcast.urls
| xyzstream.urls
)
live_events: list[str] = []

View file

@ -16,8 +16,8 @@ TAG = "TSPRTK"
CACHE_FILE = Cache(TAG, exp=19_800)
BASES = {
"TSPRTK1": "https://live.totalsportek.fyi",
"TSPRTK3": "https://live3.totalsportek.fyi",
"TSPRTK1": "https://live.totalsportek.rodeo",
"TSPRTK3": "https://live3.totalsportek.rodeo",
}
@ -69,7 +69,7 @@ async def process_ts3(ifr_src: str, url_num: int) -> str | None:
log.warning(f"URL {url_num}) Failed to load iframe source. (IFR2)")
return
valid_m3u8 = re.compile(r'currentStreamUrl\s+=\s+"([^"]*)"', re.I)
valid_m3u8 = re.compile(r'StreamUrl\s+=\s+"([^"]*)"', re.I)
if not (match := valid_m3u8.search(ifr_2_src_data.text)):
log.warning(f"URL {url_num}) No Clappr source found.")

View file

@ -0,0 +1,74 @@
from .utils import Cache, Time, get_logger, leagues, network
log = get_logger(__name__)
urls: dict[str, dict[str, str | float]] = {}
TAG = "XYZSTRM"
CACHE_FILE = Cache(TAG, exp=28_800)
API_URL = "https://blog.xyzstreams.shop:2053/api/scoreboard"
async def get_events() -> dict[str, dict[str, str | float]]:
events = {}
if not (r := await network.request(API_URL, log=log)):
return events
now = Time.clean(Time.now())
api_data: list[dict[str, str | dict]] = r.json()
sport = "Live Event"
for event_info in api_data:
away_team: str = event_info.get("away", {}).get("name")
home_team: str = event_info.get("home", {}).get("name")
event_date: str = event_info.get("gameDate")
if not (event_date and away_team and home_team):
continue
event_dt = Time.fromisoformat(event_date)
if event_dt.date() != now.date():
continue
if not (feeds := event_info.get("feeds")):
continue
event_name = f"{away_team} vs {home_team}"
for i, feed in enumerate(feeds.values(), start=1):
key = f"[{sport}] {event_name} {i} ({TAG})"
tvg_id, logo = leagues.get_tvg_info(sport, event_name)
events[key] = {
"url": feed,
"logo": logo,
"base": "https://xyzstreams.shop",
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
}
return events
async def scrape() -> None:
if cached := CACHE_FILE.load():
urls.update(cached)
log.info(f"Loaded {len(urls)} event(s) from cache")
return
log.info('Scraping from "https://xyzstreams.shop"')
urls.update(await get_events() or {})
log.info(f"Collected and cached {len(urls)} new event(s)")
CACHE_FILE.write(urls)

View file

@ -1,15 +1,16 @@
## Base Log @ 2026-05-25 21:43 UTC
## Base Log @ 2026-05-26 22:03 UTC
### ✅ Working Streams: 151<br>❌ Dead Streams: 6
### ✅ Working Streams: 150<br>❌ Dead Streams: 7
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| Bounce TV | HTTP Error (404) | `http://23.237.104.106:8080/USA_BOUNCE/index.m3u8` |
| FDSN Detroit | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/317.ts` |
| FDSN North | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/320.ts` |
| FDSN Ohio | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/1207.ts` |
| FDSN South | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/319.ts` |
| FDSN Sun | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/322.ts` |
| FDSN West | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/1633.ts` |
| FDSN Wisconsin | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/1621.ts` |
| Lifetime | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/148.ts` |
| Smithsonian Channel | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/46810.ts` |
---
#### Base Channels URL
```