mirror of
https://github.com/doms9/iptv.git
synced 2026-01-21 03:59:03 +01:00
Compare commits
35 commits
1a050be1bd
...
8d4d6c5751
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8d4d6c5751 | ||
|
|
b077b7db65 | ||
|
|
a4d3d20528 | ||
|
|
0429cb0805 | ||
|
|
3ff690d637 | ||
|
|
47bcdd1e40 | ||
|
|
00000d9cd4 | ||
|
|
501a8d2847 | ||
|
|
146b248d6f | ||
|
|
100ba1de00 | ||
|
|
ebf4e87d1c | ||
|
|
bca4b1e697 | ||
|
|
bfa2278017 | ||
|
|
99ed70b40d | ||
|
|
91113f8bcc | ||
|
|
8d60656c5e | ||
|
|
edac57a177 | ||
|
|
2d9cf9c04f | ||
|
|
6e7d6bd886 | ||
|
|
6904e0fa95 | ||
|
|
222e517ef4 | ||
|
|
e24a475845 | ||
|
|
5d632c26b1 | ||
|
|
0f7eddd923 | ||
|
|
9587ca3f2c | ||
|
|
f32df7e27a | ||
|
|
3998a71038 | ||
|
|
e91b812205 | ||
|
|
8b54ee247a | ||
|
|
85bf4d653c | ||
|
|
cee3c7aa76 | ||
|
|
0d2f78d556 | ||
|
|
9a5de3d581 | ||
|
|
1360f0d3cc | ||
|
|
2027e28087 |
8 changed files with 89484 additions and 89328 deletions
174793
EPG/TV.xml
174793
EPG/TV.xml
File diff suppressed because one or more lines are too long
1966
M3U8/TV.m3u8
1966
M3U8/TV.m3u8
File diff suppressed because it is too large
Load diff
1966
M3U8/events.m3u8
1966
M3U8/events.m3u8
File diff suppressed because it is too large
Load diff
|
|
@ -21,7 +21,7 @@ BASE_URL = "https://roxiestreams.live"
|
||||||
|
|
||||||
SPORT_ENDPOINTS = {
|
SPORT_ENDPOINTS = {
|
||||||
"fighting": "Fighting",
|
"fighting": "Fighting",
|
||||||
"mlb": "MLB",
|
# "mlb": "MLB",
|
||||||
"motorsports": "Racing",
|
"motorsports": "Racing",
|
||||||
"nba": "NBA",
|
"nba": "NBA",
|
||||||
"nfl": "American Football",
|
"nfl": "American Football",
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@ CATEGORIES = {
|
||||||
"American Football": "sport_68c02a4465113",
|
"American Football": "sport_68c02a4465113",
|
||||||
# "Baseball": "sport_68c02a446582f",
|
# "Baseball": "sport_68c02a446582f",
|
||||||
"Basketball": "sport_68c02a4466011",
|
"Basketball": "sport_68c02a4466011",
|
||||||
# "Cricket": "sport_68c02a44669f3",
|
"Cricket": "sport_68c02a44669f3",
|
||||||
"Hockey": "sport_68c02a4466f56",
|
"Hockey": "sport_68c02a4466f56",
|
||||||
"MMA": "sport_68c02a44674e9",
|
"MMA": "sport_68c02a44674e9",
|
||||||
"Racing": "sport_68c02a4467a48",
|
"Racing": "sport_68c02a4467a48",
|
||||||
# "Rugby": "sport_68c02a4467fc1",
|
# "Rugby": "sport_68c02a4467fc1",
|
||||||
# "Tennis": "sport_68c02a4468cf7",
|
"Tennis": "sport_68c02a4468cf7",
|
||||||
# "Volleyball": "sport_68c02a4469422",
|
# "Volleyball": "sport_68c02a4469422",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -135,9 +135,11 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
|
||||||
async def scrape() -> None:
|
async def scrape() -> None:
|
||||||
cached_urls = CACHE_FILE.load()
|
cached_urls = CACHE_FILE.load()
|
||||||
|
|
||||||
cached_count = len(cached_urls)
|
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
|
||||||
|
|
||||||
urls.update(cached_urls)
|
valid_count = cached_count = len(valid_urls)
|
||||||
|
|
||||||
|
urls.update(valid_urls)
|
||||||
|
|
||||||
log.info(f"Loaded {cached_count} event(s) from cache")
|
log.info(f"Loaded {cached_count} event(s) from cache")
|
||||||
|
|
||||||
|
|
@ -169,34 +171,38 @@ async def scrape() -> None:
|
||||||
log=log,
|
log=log,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
sport, event, logo, link, ts = (
|
||||||
|
ev["sport"],
|
||||||
|
ev["event"],
|
||||||
|
ev["logo"],
|
||||||
|
ev["link"],
|
||||||
|
ev["event_ts"],
|
||||||
|
)
|
||||||
|
|
||||||
|
key = f"[{sport}] {event} ({TAG})"
|
||||||
|
|
||||||
|
tvg_id, pic = leagues.get_tvg_info(sport, event)
|
||||||
|
|
||||||
|
entry = {
|
||||||
|
"url": url,
|
||||||
|
"logo": logo or pic,
|
||||||
|
"base": "https://storytrench.net/",
|
||||||
|
"timestamp": ts,
|
||||||
|
"id": tvg_id or "Live.Event.us",
|
||||||
|
"link": link,
|
||||||
|
}
|
||||||
|
|
||||||
|
cached_urls[key] = entry
|
||||||
|
|
||||||
if url:
|
if url:
|
||||||
sport, event, logo, link, ts = (
|
valid_count += 1
|
||||||
ev["sport"],
|
|
||||||
ev["event"],
|
|
||||||
ev["logo"],
|
|
||||||
ev["link"],
|
|
||||||
ev["event_ts"],
|
|
||||||
)
|
|
||||||
|
|
||||||
key = f"[{sport}] {event} ({TAG})"
|
urls[key] = entry
|
||||||
|
|
||||||
tvg_id, pic = leagues.get_tvg_info(sport, event)
|
|
||||||
|
|
||||||
entry = {
|
|
||||||
"url": url,
|
|
||||||
"logo": logo or pic,
|
|
||||||
"base": "https://storytrench.net/",
|
|
||||||
"timestamp": ts,
|
|
||||||
"id": tvg_id or "Live.Event.us",
|
|
||||||
"link": link,
|
|
||||||
}
|
|
||||||
|
|
||||||
urls[key] = cached_urls[key] = entry
|
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
await browser.close()
|
await browser.close()
|
||||||
|
|
||||||
if new_count := len(cached_urls) - cached_count:
|
if new_count := valid_count - cached_count:
|
||||||
log.info(f"Collected and cached {new_count} new event(s)")
|
log.info(f"Collected and cached {new_count} new event(s)")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -549,7 +549,7 @@
|
||||||
{
|
{
|
||||||
"LIGUE 1": {
|
"LIGUE 1": {
|
||||||
"logo": "https://ligue1.com/images/Logo_Ligue_1.webp",
|
"logo": "https://ligue1.com/images/Logo_Ligue_1.webp",
|
||||||
"names": ["FRANCE LIGUE 1", "FRENCH LIGUE 1"]
|
"names": ["FRANCE LIGUE 1", "FRENCH LIGUE 1", "LIGUE 1 FRANCE"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -591,7 +591,11 @@
|
||||||
{
|
{
|
||||||
"PRIMEIRA LIGA": {
|
"PRIMEIRA LIGA": {
|
||||||
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png",
|
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/14.png",
|
||||||
"names": ["LIGA PORTUGAL", "PORTUGUESE PRIMEIRA LIGA"]
|
"names": [
|
||||||
|
"LIGA PORTUGAL",
|
||||||
|
"PORTUGAL PRIMEIRA LIGA",
|
||||||
|
"PORTUGUESE PRIMEIRA LIGA"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -32,16 +32,16 @@ VALID_SPORTS = [
|
||||||
# "australian-football",
|
# "australian-football",
|
||||||
# "baseball",
|
# "baseball",
|
||||||
"basketball",
|
"basketball",
|
||||||
# "cricket",
|
"cricket",
|
||||||
# "darts",
|
"darts",
|
||||||
"fighting",
|
"fighting",
|
||||||
"football",
|
"football",
|
||||||
"golf",
|
"golf",
|
||||||
"hockey",
|
"hockey",
|
||||||
"racing",
|
"racing",
|
||||||
# "rugby",
|
# "rugby",
|
||||||
# "tennis",
|
"tennis",
|
||||||
# "volleyball",
|
"volleyball",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
11
readme.md
11
readme.md
|
|
@ -1,15 +1,10 @@
|
||||||
## Base Log @ 2026-01-01 20:43 UTC
|
## Base Log @ 2026-01-02 17:36 UTC
|
||||||
|
|
||||||
### ✅ Working Streams: 140<br>❌ Dead Streams: 6
|
### ✅ Working Streams: 145<br>❌ Dead Streams: 1
|
||||||
|
|
||||||
| Channel | Error (Code) | Link |
|
| Channel | Error (Code) | Link |
|
||||||
| ------- | ------------ | ---- |
|
| ------- | ------------ | ---- |
|
||||||
| Bounce TV | HTTP Error (404) | `http://fl1.moveonjoy.com/BOUNCE_TV/index.m3u8` |
|
| BET | HTTP Error (404) | `http://fl1.moveonjoy.com/BET_EAST/index.m3u8` |
|
||||||
| FX Movie Channel | HTTP Error (404) | `http://fl1.moveonjoy.com/FX_MOVIE/index.m3u8` |
|
|
||||||
| HBO Family | HTTP Error (404) | `https://fl1.moveonjoy.com/HBO_FAMILY/index.m3u8` |
|
|
||||||
| HBO | HTTP Error (404) | `http://fl1.moveonjoy.com/HBO/index.m3u8` |
|
|
||||||
| Hallmark Channel | HTTP Error (404) | `http://fl1.moveonjoy.com/HALLMARK_CHANNEL/index.m3u8` |
|
|
||||||
| Root Sports | HTTP Error (403) | `http://cord-cutter.net:8080/k4Svp2/645504/85232` |
|
|
||||||
---
|
---
|
||||||
#### Base Channels URL
|
#### Base Channels URL
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue