Compare commits

..

No commits in common. "cdbd02f50182ecbaecc41a760787391375b7b997" and "ad40759ec2c3b28049c5c074a75ef44027bdf270" have entirely different histories.

10 changed files with 191408 additions and 184318 deletions

File diff suppressed because it is too large Load diff

371668
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -135,29 +135,29 @@ http://fl1.moveonjoy.com/ESPN_NEWS/index.m3u8
http://fl1.moveonjoy.com/ESPN_U/index.m3u8
#EXTINF:-1 tvg-chno="45" tvg-id="ESPN2.HD.us2" tvg-name="ESPN2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12444_dark_360w_270h.png" group-title="TV",ESPN2
http://mytvstream.net:8080/live/30550113/30550113/2210.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/2210.m3u8
#EXTINF:-1 tvg-chno="46" tvg-id="FanDuel.Sports.Network.Detroit.24/7.HDTV.us" tvg-name="FDSN Detroit" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s54286_dark_360w_270h.png" group-title="TV",FDSN Detroit
http://mytvstream.net:8080/live/30550113/30550113/20930.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/20930.m3u8
#EXTINF:-1 tvg-chno="47" tvg-id="FanDuel.Sports.Network.Florida.HDTV.(Out.of.Market).us" tvg-name="FDSN Florida" tvg-logo="https://i.gyazo.com/fad701fbaaafe161b13b23ed9b50179b.png" group-title="TV",FDSN Florida
http://mytvstream.net:8080/live/30550113/30550113/46794.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/46794.m3u8
#EXTINF:-1 tvg-chno="48" tvg-id="FanDuel.Sports.Network.Midwest.24/7.HDTV.us" tvg-name="FDSN Midwest" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11058_dark_360w_270h.png" group-title="TV",FDSN Midwest
http://mytvstream.net:8080/live/30550113/30550113/66795.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/66795.m3u8
#EXTINF:-1 tvg-chno="49" tvg-id="FanDuel.Sports.Network.North.HDTV.us" tvg-name="FDSN North" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10977_dark_360w_270h.png" group-title="TV",FDSN North
http://mytvstream.net:8080/live/30550113/30550113/58827.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/58827.m3u8
#EXTINF:-1 tvg-chno="50" tvg-id="FanDuel.Sports.Network.Ohio.(Cleveland).HDTV.us" tvg-name="FDSN Ohio" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49691_dark_360w_270h.png" group-title="TV",FDSN Ohio
#EXTVLCOPT:http-user-agent=curl/8.5.0
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222126
#EXTINF:-1 tvg-chno="51" tvg-id="FanDuel.Sports.Network.Oklahoma.24/7.HDTV.(Tulsa).us" tvg-name="FDSN Oklahoma" tvg-logo="https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png" group-title="TV",FDSN Oklahoma
http://mytvstream.net:8080/live/30550113/30550113/20934.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/20934.m3u8
#EXTINF:-1 tvg-chno="52" tvg-id="FanDuel.Sports.Network.SoCal.HDTV.us" tvg-name="FDSN SoCal" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16743_dark_360w_270h.png" group-title="TV",FDSN SoCal
http://mytvstream.net:8080/live/30550113/30550113/221151.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/221151.m3u8
#EXTINF:-1 tvg-chno="53" tvg-id="FanDuel.Sports.Network.Southeast.HDTV.(Mont./Birm./Dothan/Mobile.AL).us" tvg-name="FDSN Southeast" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s20789_dark_360w_270h.png" group-title="TV",FDSN Southeast
#EXTVLCOPT:http-user-agent=curl/8.5.0
@ -172,10 +172,10 @@ http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/220452
http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222132
#EXTINF:-1 tvg-chno="56" tvg-id="FanDuel.Sports.Network.West.HDTV.us" tvg-name="FDSN West" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59627_dark_360w_270h.png" group-title="TV",FDSN West
http://mytvstream.net:8080/live/30550113/30550113/20932.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/20932.m3u8
#EXTINF:-1 tvg-chno="57" tvg-id="FanDuel.Sports.Network.Wisconsin.24/7.HDTV.us" tvg-name="FDSN Wisconsin" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16348_dark_360w_270h.png" group-title="TV",FDSN Wisconsin
http://mytvstream.net:8080/live/30550113/30550113/78599.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/78599.m3u8
#EXTINF:-1 tvg-chno="58" tvg-id="plex.tv.FIFA+.plex" tvg-name="FIFA+ TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s136235_dark_360w_270h.png" group-title="TV",FIFA+ TV
https://jmp2.uk/stvp-IN270000230
@ -302,10 +302,10 @@ https://fl1.moveonjoy.com/FL_Tampa_NBC/index.m3u8
http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/257216
#EXTINF:-1 tvg-chno="99" tvg-id="NBC.Sports.Boston.HD.us2" tvg-name="NBC Sports Boston" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49198_dark_360w_270h.png" group-title="TV",NBC Sports Boston
http://mytvstream.net:8080/live/30550113/30550113/20939.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/20939.m3u8
#EXTINF:-1 tvg-chno="100" tvg-id="NBC.Sports.California.SAT.us2" tvg-name="NBC Sports California" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s45540_dark_360w_270h.png" group-title="TV",NBC Sports California
http://mytvstream.net:8080/live/30550113/30550113/20940.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/stvp-USBD420002446
@ -314,7 +314,7 @@ https://jmp2.uk/stvp-USBD420002446
http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/136477
#EXTINF:-1 tvg-chno="103" tvg-id="New.England.Sports.Network.HD.us2" tvg-name="NESN" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s35038_dark_360w_270h.png" group-title="TV",NESN
http://mytvstream.net:8080/live/30550113/30550113/46726.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/46726.m3u8
#EXTINF:-1 tvg-chno="104" tvg-id="NewsNation.us2" tvg-name="NewsNation" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s91096_dark_360w_270h.png" group-title="TV",NewsNation
http://fl1.moveonjoy.com/NEWS_NATION/index.m3u8
@ -371,7 +371,7 @@ http://fl1.moveonjoy.com/SMITHSONIAN_CHANNEL/index.m3u8
http://fl1.moveonjoy.com/Sony_Movie_Channel/index.m3u8
#EXTINF:-1 tvg-chno="122" tvg-id="Space.City.Home.Network.HD.us2" tvg-name="Space City Home Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s77744_dark_360w_270h.png" group-title="TV",Space City Home Network
http://mytvstream.net:8080/live/30550113/30550113/213668.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/213668.m3u8
#EXTINF:-1 tvg-chno="123" tvg-id="Spectrum.SportsNet.LA.Dodgers.HD.us2" tvg-name="Spectrum SportsNet LA Dodgers" tvg-logo="https://i.gyazo.com/765cce528ddda366695bb178d9dee6da.png" group-title="TV",Spectrum SportsNet LA Dodgers
http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/141497
@ -383,13 +383,13 @@ http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/141498
http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/21635
#EXTINF:-1 tvg-chno="126" tvg-id="Sportsnet.East.ca2" tvg-name="Sportsnet East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62109_dark_360w_270h.png" group-title="TV",Sportsnet East
http://mytvstream.net:8080/live/30550113/30550113/57298.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/57298.m3u8
#EXTINF:-1 tvg-chno="127" tvg-id="SNY.SportsNet.New.York.HD.us2" tvg-name="SportsNet New York" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50038_dark_360w_270h.png" group-title="TV",SportsNet New York
https://fl1.moveonjoy.com/SNY/index.m3u8
#EXTINF:-1 tvg-chno="128" tvg-id="Sportsnet.One.ca2" tvg-name="Sportsnet One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68859_dark_360w_270h.png" group-title="TV",Sportsnet One
http://mytvstream.net:8080/live/30550113/30550113/57297.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/57297.m3u8
#EXTINF:-1 tvg-chno="129" tvg-id="Sportsnet.Ontario.HD.ca2" tvg-name="Sportsnet Ontario" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62111_dark_360w_270h.png" group-title="TV",Sportsnet Ontario
https://stream.decentdoubts.net/801/index.m3u8?token=cTREYWhzaWIxOWlhZ3BpcWh0MkduTVdzcGNpdXk2eURxN21hbktxa200TERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm0wNStDbnJOOXJJM0puSytpbkE9PQ==
@ -410,7 +410,7 @@ https://turnerlive.warnermediacdn.com/hls/live/2023172/tbseast/slate/VIDEO_0_356
https://fl1.moveonjoy.com/TENNIS_CHANNEL/index.m3u8
#EXTINF:-1 tvg-chno="135" tvg-id="The.Weather.Channel.HD.us2" tvg-name="The Weather Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58812_dark_360w_270h.png" group-title="TV",The Weather Channel
http://mytvstream.net:8080/live/30550113/30550113/18926.m3u8
http://mytvstream.net:8080/live/bn80NG/909467/18926.m3u8
#EXTINF:-1 tvg-chno="136" tvg-id="TLC.HD.(US).us2" tvg-name="TLC" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11158_dark_360w_270h.png" group-title="TV",TLC
http://fl1.moveonjoy.com/TLC/index.m3u8

View file

@ -5,7 +5,7 @@ import re
from pathlib import Path
from xml.etree import ElementTree as ET
from scrapers.utils import get_logger, leagues, network
from scrapers.utils import get_logger, network
log = get_logger(__name__)
@ -13,6 +13,8 @@ BASE_M3U8 = Path(__file__).parent / "base.m3u8"
EPG_FILE = Path(__file__).parent / "TV.xml"
LIVE_IMG = "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png"
EPG_URLS = {
"https://epgshare01.online/epgshare01/epg_ripper_CA2.xml.gz",
"https://epgshare01.online/epgshare01/epg_ripper_DUMMY_CHANNELS.xml.gz",
@ -25,33 +27,23 @@ EPG_URLS = {
}
DUMMIES = {
"Basketball.Dummy.us": leagues.live_img,
"Golf.Dummy.us": leagues.live_img,
"Live.Event.us": leagues.live_img,
"Basketball.Dummy.us": LIVE_IMG,
"Golf.Dummy.us": LIVE_IMG,
"Live.Event.us": LIVE_IMG,
"MLB.Baseball.Dummy.us": None,
"NBA.Basketball.Dummy.us": None,
"NFL.Dummy.us": None,
"NHL.Hockey.Dummy.us": None,
"PPV.EVENTS.Dummy.us": leagues.live_img,
"Racing.Dummy.us": leagues.live_img,
"Soccer.Dummy.us": leagues.live_img,
"Tennis.Dummy.us": leagues.live_img,
"PPV.EVENTS.Dummy.us": LIVE_IMG,
"Racing.Dummy.us": LIVE_IMG,
"Soccer.Dummy.us": LIVE_IMG,
"Tennis.Dummy.us": LIVE_IMG,
"WNBA.dummy.us": None,
}
REPLACE_IDs = {
"Ice Hockey": {
"old": "Minor.League.Hockey.Dummy.us",
"new": "Ice.Hockey.Dummy.us",
},
"NCAA Sports": {
"old": "Sports.Dummy.us",
"new": "NCAA.Sports.Dummy.us",
},
"UFC": {
"old": "UFC.247.Dummy.us",
"new": "UFC.Dummy.us",
},
"NCAA Sports": {"old": "Sports.Dummy.us", "new": "NCAA.Sports.Dummy.us"},
"UFC": {"old": "UFC.247.Dummy.us", "new": "UFC.Dummy.us"},
}
@ -70,7 +62,7 @@ def get_tvg_ids() -> dict[str, str]:
tvg |= DUMMIES
tvg |= {v["old"]: leagues.live_img for v in REPLACE_IDs.values()}
tvg |= {v["old"]: LIVE_IMG for v in REPLACE_IDs.values()}
return tvg
@ -79,14 +71,14 @@ async def fetch_xml(url: str) -> ET.Element | None:
if not (xml_data := await network.request(url, log=log)):
return
log.info(f'Parsing XML from "{url}"')
try:
log.info(f'Parsing XML from "{url}"')
data = gzip.decompress(xml_data.content)
return ET.fromstring(data)
except Exception as e:
log.error(f'Failed to parse XML from "{url}": {e}')
log.error(f'Failed to parse from "{url}": {e}')
return
@ -184,7 +176,7 @@ async def main() -> None:
for title, ids in REPLACE_IDs.items():
hijack_id(root, **ids, text=title)
if missing_ids := tvg_ids.keys() - parsed_tvg_ids:
if missing_ids := set(tvg_ids) - parsed_tvg_ids:
log.warning(f"Missed {len(missing_ids)} TVG ID(s)")
for channel_id in missing_ids:
@ -204,6 +196,10 @@ async def main() -> None:
if __name__ == "__main__":
asyncio.run(main())
for hndlr in log.handlers:
hndlr.flush()
hndlr.stream.write("\n")
try:
asyncio.run(network.client.aclose())
except Exception:

File diff suppressed because it is too large Load diff

View file

@ -69,7 +69,7 @@ async def main() -> None:
asyncio.create_task(ppv.scrape(xtrnl_brwsr)),
asyncio.create_task(sport9.scrape(xtrnl_brwsr)),
asyncio.create_task(streamcenter.scrape(xtrnl_brwsr)),
asyncio.create_task(streamhub.scrape(xtrnl_brwsr)),
# asyncio.create_task(streamhub.scrape(xtrnl_brwsr)),
asyncio.create_task(streamsgate.scrape(xtrnl_brwsr)),
asyncio.create_task(totalsportek.scrape(hdl_brwsr)),
asyncio.create_task(webcast.scrape(hdl_brwsr)),
@ -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

@ -221,7 +221,7 @@ async def scrape(browser: Browser) -> None:
ev["sport"],
ev["league"],
ev["event"],
ev["event_ts"],
ev["timestamp"],
ev["link"],
)

View file

@ -200,14 +200,11 @@ class Leagues:
elif self.is_valid(event, "WNBA"):
return self.info("WNBA")
return self.info("Basketball")
else:
return self.info("Basketball")
case "Ice Hockey" | "Hockey":
return (
self.info("NHL")
if self.is_valid(event, "NHL")
else self.info("Hockey")
)
return self.info("NHL")
case _:
return self.info(sport)

View file

@ -28,14 +28,6 @@
}
}
],
"Ice.Hockey.Dummy.us": [
{
"HOCKEY": {
"logo": "https://images.emojiterra.com/google/noto-emoji/unicode-15/color/512px/1f3d2.png",
"names": []
}
}
],
"MLB.Baseball.Dummy.us": [
{
"MLB": {
@ -112,6 +104,7 @@
"NHL": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/nhl.png",
"names": [
"HOCKEY",
"NATIONAL HOCKEY LEAGUE",
"NHL HOCKEY",
"NHL PLAYOFFS",
@ -214,7 +207,7 @@
{
"BUNDESLIGA": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/10.png",
"names": ["BUNDESLIG", "GERMAN BUNDESLIGA", "GERMANY BUNDESLIGA"]
"names": ["BUNDESLIG", "GERMAN BUNDESLIGA"]
}
},
{
@ -324,12 +317,6 @@
"names": ["FRANCE CUP", "FRENCH CUP"]
}
},
{
"EERSTE DIVISIE": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/leaguelogos/soccer/500/105.png",
"names": ["KEUKEN KAMPIOEN DIVISIE"]
}
},
{
"EFL": {
"logo": "https://i.gyazo.com/c8842fbcb2eeb6a53bc69fa6055b8b5d.png",
@ -455,8 +442,6 @@
"LALIGA",
"PRIMERA DIVISION",
"PRIMERA DIVISIÓN",
"SPAIN LA LIGA",
"SPAIN LALIGA",
"SPANISH LA LIGA",
"SPANISH LALIGA"
]
@ -471,7 +456,6 @@
"LALIGA 2",
"SEGUNDA DIVISION",
"SEGUNDA DIVISIÓN",
"SEGUNDA LIGA",
"SPAIN SEGUNDA DIVISION",
"SPANISH LA LIGA 2",
"SPANISH LALIGA 2",
@ -989,71 +973,6 @@
"Washington Commanders",
"Washington Redskins"
],
"NHL": [
"Anaheim",
"Anaheim Ducks",
"Boston",
"Boston Bruins",
"Buffalo",
"Buffalo Sabres",
"Calgary",
"Calgary Flames",
"Carolina",
"Carolina Hurricanes",
"Chicago",
"Chicago Blackhawks",
"Colorado",
"Colorado Avalanche",
"Columbus",
"Columbus Blue Jackets",
"Dallas",
"Dallas Stars",
"Detroit",
"Detroit Red Wings",
"Edmonton",
"Edmonton Oilers",
"Florida",
"Florida Panthers",
"Los Angeles",
"Los Angeles Kings",
"Minnesota",
"Minnesota Wild",
"Montreal",
"Montreal Canadiens",
"Nashville",
"Nashville Predators",
"New Jersey",
"New Jersey Devils",
"New York",
"New York Islanders",
"New York Rangers",
"Ottawa",
"Ottawa Senators",
"Philadelphia",
"Philadelphia Flyers",
"Pittsburgh",
"Pittsburgh Penguins",
"San Jose",
"San Jose Sharks",
"Seattle",
"Seattle Kraken",
"St. Louis",
"St. Louis Blues",
"Tampa Bay",
"Tampa Bay Lightning",
"Toronto",
"Toronto Maple Leafs",
"Utah",
"Utah Mammoth",
"Vancouver",
"Vancouver Canucks",
"Vegas",
"Vegas Golden Knights",
"Washington",
"Washington Capitals",
"Winnipeg",
"Winnipeg Jets"
],
"WNBA": [
"Aces",
"Atlanta Dream",

View file

@ -1,15 +1,13 @@
## Base Log @ 2026-01-31 04:15 UTC
## Base Log @ 2026-01-30 04:20 UTC
### ✅ Working Streams: 140<br>❌ Dead Streams: 6
### ✅ Working Streams: 142<br>❌ Dead Streams: 4
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| FDSN Sun | HTTP Error (403) | `http://lucidhosting.xyz:82/sandriassoc@gmail.com/Sm8G4ddxoW/222132` |
| FXX | HTTP Error (404) | `https://fl1.moveonjoy.com/FXX/index.m3u8` |
| NBC Sports Bay Area | HTTP Error (502) | `http://hardcoremedia.xyz:80/NW3Vk7xXwW/8375773282/257216` |
| 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` |
| Vice TV | HTTP Error (404) | `https://fl1.moveonjoy.com/VICELAND/index.m3u8` |
| Sportsnet One | HTTP Error (403) | `http://mytvstream.net:8080/live/bn80NG/909467/57297.m3u8` |
---
#### Base Channels URL
```