Compare commits

...

33 commits

Author SHA1 Message Date
GitHub Actions Bot
26c5e0ec9e update M3U8 2026-06-04 20:30:44 -04:00
GitHub Actions Bot
dbade8dd16 update M3U8 2026-06-04 20:00:22 -04:00
GitHub Actions Bot
ba898f1889 update M3U8 2026-06-04 19:31:00 -04:00
GitHub Actions Bot
abd714d0d5 update M3U8 2026-06-04 19:02:27 -04:00
GitHub Actions Bot
4a3f722871 update M3U8 2026-06-04 18:30:38 -04:00
GitHub Actions Bot
c1141bd051 update M3U8 2026-06-04 18:00:15 -04:00
GitHub Actions Bot
56b95179db health log 2026-06-04 21:59:22 +00:00
GitHub Actions Bot
0c23e6c0ff update M3U8 2026-06-04 17:30:56 -04:00
GitHub Actions Bot
3b8945432e update M3U8 2026-06-04 17:00:38 -04:00
GitHub Actions Bot
9081fd7231 update EPG 2026-06-04 20:53:55 +00:00
GitHub Actions Bot
fc9d03fdd7 update M3U8 2026-06-04 16:30:28 -04:00
GitHub Actions Bot
90a34c4261 update M3U8 2026-06-04 16:00:57 -04:00
GitHub Actions Bot
115b6193f2 update M3U8 2026-06-04 15:31:30 -04:00
doms9
00000d9818 e
- edit scraping for roxie.py
- misc edits.
2026-06-04 15:05:05 -04:00
GitHub Actions Bot
97d0ca9ed1 update M3U8 2026-06-04 15:00:48 -04:00
GitHub Actions Bot
8b8b8c1115 update M3U8 2026-06-04 14:31:21 -04:00
GitHub Actions Bot
51d62d0a70 update M3U8 2026-06-04 14:00:47 -04:00
GitHub Actions Bot
1bb5f37507 update M3U8 2026-06-04 13:32:14 -04:00
GitHub Actions Bot
05411b0f9e health log 2026-06-04 17:28:56 +00:00
GitHub Actions Bot
0621d58b71 update M3U8 2026-06-04 13:01:09 -04:00
GitHub Actions Bot
3a268fb2ca update M3U8 2026-06-04 12:00:30 -04:00
GitHub Actions Bot
68b962004f update M3U8 2026-06-04 11:00:38 -04:00
GitHub Actions Bot
94731be897 update M3U8 2026-06-04 10:01:07 -04:00
GitHub Actions Bot
23eb435e73 update M3U8 2026-06-04 08:02:06 -04:00
GitHub Actions Bot
d5f64f3118 health log 2026-06-04 11:30:17 +00:00
GitHub Actions Bot
fe52827bfa update EPG 2026-06-04 07:11:22 +00:00
GitHub Actions Bot
2a16c8b13c update M3U8 2026-06-03 23:30:31 -04:00
GitHub Actions Bot
9af42b3bf0 update M3U8 2026-06-03 23:01:06 -04:00
GitHub Actions Bot
6ac81f95fd update M3U8 2026-06-03 22:30:37 -04:00
GitHub Actions Bot
84d110fcd5 update M3U8 2026-06-03 22:01:13 -04:00
GitHub Actions Bot
2e8b1ef189 update M3U8 2026-06-03 21:30:43 -04:00
GitHub Actions Bot
3efa5eeb11 update M3U8 2026-06-03 21:01:11 -04:00
GitHub Actions Bot
9229f197d0 update M3U8 2026-06-03 20:31:37 -04:00
6 changed files with 106858 additions and 123455 deletions

File diff suppressed because it is too large Load diff

227338
M3U8/TV.xml

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,4 @@
import asyncio
import re
from functools import partial
from urllib.parse import urljoin
@ -16,7 +15,7 @@ TAG = "ROXIE"
CACHE_FILE = Cache(TAG, exp=19_800)
BASE_URL = "https://roxiestreams.su"
BASE_URL = "https://roxiestreams.info"
SPORT_URLS = {
# "March Madness": urljoin(BASE_URL, "march-madness"),
@ -102,18 +101,10 @@ async def get_events() -> list[dict[str, str]]:
if not (href := a_tag.attributes.get("href")):
continue
if not (span := row.css_first("span.countdown-timer")) or not (
data_start := span.attributes.get("data-start")
):
if not (event_time_elem := row.css_first("td.event-start-time")):
continue
event_time = (
data_start.rsplit(":", 1)[0]
if (re.search(r"\d+:\d+:\d+", data_start) or "M:00" in data_start)
else data_start
)
event_dt = Time.from_str(event_time, timezone="PST")
event_dt = Time.from_str(event_time_elem.text(strip=True), timezone="EST")
if event_dt.date() != now.date():
continue

View file

@ -2,11 +2,11 @@ import asyncio
import logging
import random
import re
from collections.abc import Awaitable, Callable
from collections.abc import AsyncGenerator, Awaitable, Callable
from contextlib import asynccontextmanager
from functools import cache, partial
from pathlib import Path
from typing import AsyncGenerator, TypeVar
from typing import TypeVar
from urllib.parse import urlparse
import httpx
@ -158,7 +158,7 @@ class Network:
browser: Browser,
stealth: bool = True,
ignore_https: bool = False,
) -> AsyncGenerator[BrowserContext, None]:
) -> AsyncGenerator[BrowserContext]:
context: BrowserContext | None = None
@ -195,7 +195,7 @@ class Network:
@staticmethod
@asynccontextmanager
async def event_page(context: BrowserContext) -> AsyncGenerator[Page, None]:
async def event_page(context: BrowserContext) -> AsyncGenerator[Page]:
page = await context.new_page()
try:

View file

@ -1,7 +1,11 @@
## Base Log @ 2026-06-03 23:06 UTC
## Base Log @ 2026-06-04 21:59 UTC
### ✅ Working Streams: 144<br>❌ Dead Streams: 0
### ✅ Working Streams: 142<br>❌ Dead Streams: 2
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| BBC America | HTTP Error (403) | `https://bcovlive-a.akamaihd.net/7f5ec16d102f4b5d92e8e27bc95ff424/us-east-1/6240731308001/playlist.m3u8` |
| Lifetime | HTTP Error (403) | `http://cdn1host.online:2999/live/bongus/35zqYxrbg0/148.ts` |
---
#### Base Channels URL
```