Compare commits

..

No commits in common. "f41268a1b4a1ce3f67d4a86b72cd7e24fc5cac52" and "47171025860673ee9a49cd6d4749821ce63ce512" have entirely different histories.

7 changed files with 92788 additions and 91006 deletions

177687
EPG/TV.xml

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,8 @@
from urllib.parse import urljoin
from urllib.parse import quote, urljoin
import httpx
from .utils import Cache, Time, get_logger, leagues, network
from .utils import Cache, Time, get_logger, leagues
log = get_logger(__name__)
@ -62,11 +62,7 @@ async def get_events(client: httpx.AsyncClient) -> dict[str, dict[str, str | flo
tvg_id, pic = leagues.get_tvg_info(sport, name)
events[key] = {
"url": network.build_proxy_url(
tag=TAG,
path=f"{stream_key}720p/index.m3u8",
query={"stream_name": name},
),
"url": f"https://stream.nvrmind.xyz/strmfr/{stream_key}720p/index.m3u8?stream_name={quote(name)}",
"logo": logo or pic,
"base": BASE_URL,
"timestamp": now,

View file

@ -26,7 +26,7 @@
{
"MLB": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/mlb.png",
"names": ["BASEBALL", "MAJOR LEAGUE BASEBALL", "MLB PLAYOFFS"]
"names": ["BASEBALL", "MAJOR LEAGUE BASEBALL"]
}
}
],
@ -37,8 +37,6 @@
"names": [
"NATIONAL BASKETBALL ASSOCIATION",
"NBA BASKETBALL",
"NBA CUP",
"NBA PLAYOFFS",
"NBA PRESEASON"
]
}
@ -51,11 +49,8 @@
"names": [
"CBB",
"CFB",
"CFB PLAYOFFS",
"CFP",
"COLLEGE BASKETBALL",
"COLLEGE FOOTBALL",
"MARCH MADNESS",
"NCAA - BASKETBALL",
"NCAA - FOOTBALL",
"NCAA AMERICAN FOOTBALL",
@ -80,7 +75,6 @@
"names": [
"AMERICAN FOOTBALL",
"NATIONAL FOOTBALL LEAGUE",
"NFL PLAYOFFS",
"NFL PRESEASON",
"USA NFL"
]
@ -95,7 +89,6 @@
"HOCKEY",
"NATIONAL HOCKEY LEAGUE",
"NHL HOCKEY",
"NHL PLAYOFFS",
"NHL PRESEASON"
]
}

View file

@ -5,7 +5,6 @@ import re
from collections.abc import Awaitable, Callable
from functools import partial
from typing import TypeVar
from urllib.parse import urlencode, urljoin
import httpx
from playwright.async_api import Browser, BrowserContext, Playwright, Request
@ -16,8 +15,6 @@ T = TypeVar("T")
class Network:
proxy_base = "https://stream.nvrmind.xyz"
UA = (
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 (KHTML, like Gecko) "
@ -34,23 +31,6 @@ class Network:
self._logger = get_logger("network")
@staticmethod
def build_proxy_url(
tag: str,
path: str,
query: dict | None = None,
) -> str:
base = network.proxy_base
tag = tag.lower()
return (
f"{urljoin(base, f'{tag}/{path}')}?{urlencode(query)}"
if query
else urljoin(base, f"{tag}/{path}")
)
async def check_status(self, url: str) -> bool:
try:
r = await self.client.get(url)

View file

@ -1,13 +1,11 @@
## Base Log @ 2025-12-11 14:46 UTC
## Base Log @ 2025-12-10 14:47 UTC
### ✅ Working Streams: 142<br>❌ Dead Streams: 4
### ✅ Working Streams: 144<br>❌ Dead Streams: 2
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| BBC World News | HTTP Error (403) | `http://cord-cutter.net:8080/30550113/30550113/139752` |
| Cartoon Network | HTTP Error (403) | `http://cord-cutter.net:8080/30550113/30550113/46708` |
| FDSN Florida | HTTP Error (403) | `http://cord-cutter.net:8080/30550113/30550113/46794` |
| Fox Sports 2 | HTTP Error (403) | `http://cord-cutter.net:8080/30550113/30550113/1847` |
| NESN | HTTP Error (403) | `http://cord-cutter.net:8080/30550113/30550113/31637` |
---
#### Base Channels URL
```