This commit is contained in:
doms9 2025-08-28 12:18:30 -04:00
parent 22d53cf707
commit 00000d9b50
3 changed files with 73 additions and 36 deletions

View file

@ -5,10 +5,10 @@ from pathlib import Path
import httpx
from scrape import fstv, tvpass
m3u8_file = Path(__file__).parent / "TV.m3u8"
base_url = "https://s.id/ePwXT"
m3u8_file = Path(__file__).parent / "TV.m3u8"
client = httpx.AsyncClient(
timeout=5,
follow_redirects=True,

View file

@ -1,22 +1,61 @@
{
"_timestamp": 1756394172.403869,
"_timestamp": 1756397743.720503,
"urls": {
"[MLB] Washington Nationals @ New York Yankees": "https://tvpass.org/live/mlb-15/sd",
"[MLB] Atlanta Braves @ Miami Marlins": "https://tvpass.org/live/mlb-07/sd",
"[MLB] Tampa Bay Rays @ Cleveland Guardians": "https://tvpass.org/live/mlb-30/sd",
"[MLB] San Diego Padres @ Seattle Mariners": "https://tvpass.org/live/mlb-10/sd",
"[MLB] Boston Red Sox @ Baltimore Orioles": "https://tvpass.org/live/mlb-17/sd",
"[MLB] Minnesota Twins @ Toronto Blue Jays": "https://tvpass.org/live/mlb-12/sd",
"[MLB] Philadelphia Phillies @ New York Mets": "https://tvpass.org/live/mlb-24/sd",
"[NBATV] Las Vegas Aces @ Atlanta Dream": "https://tvpass.org/live/NBATV/sd",
"[MLB] Kansas City Royals @ Chicago White Sox": "https://tvpass.org/live/mlb-03/sd",
"[MLB] Arizona Diamondbacks @ Milwaukee Brewers": "https://tvpass.org/live/mlb-16/sd",
"[MLB] Pittsburgh Pirates @ St. Louis Cardinals": "https://tvpass.org/live/mlb-08/sd",
"[WNBA] Connecticut Sun @ Dallas Wings": "https://tvpass.org/live/WNBA02/sd",
"[MLB] Los Angeles Angels @ Texas Rangers": "https://tvpass.org/live/mlb-13/sd",
"[MLB] Colorado Rockies @ Houston Astros": "https://tvpass.org/live/mlb-06/sd",
"[MLB] Cincinnati Reds @ Los Angeles Dodgers": "https://tvpass.org/live/mlb-14/sd",
"[MLB] Chicago Cubs @ San Francisco Giants": "https://tvpass.org/live/mlb-27/sd",
"[MLB] Detroit Tigers @ Oakland Athletics": "https://tvpass.org/live/mlb-19/sd"
"[MLB] Boston Red Sox @ Baltimore Orioles (SD)": "https://tvpass.org/live/mlb-17/sd",
"[MLB] Boston Red Sox @ Baltimore Orioles (HD)": "https://tvpass.org/live/mlb-17/hd",
"[MLB] Arizona Diamondbacks @ Milwaukee Brewers (SD)": "https://tvpass.org/live/mlb-16/sd",
"[MLB] Arizona Diamondbacks @ Milwaukee Brewers (HD)": "https://tvpass.org/live/mlb-16/hd",
"[MLB] Colorado Rockies @ Houston Astros (SD)": "https://tvpass.org/live/mlb-06/sd",
"[MLB] Colorado Rockies @ Houston Astros (HD)": "https://tvpass.org/live/mlb-06/hd",
"[MLB] Pittsburgh Pirates @ St. Louis Cardinals (SD)": "https://tvpass.org/live/mlb-08/sd",
"[MLB] Pittsburgh Pirates @ St. Louis Cardinals (HD)": "https://tvpass.org/live/mlb-08/hd",
"[MLB] Chicago Cubs @ San Francisco Giants (SD)": "https://tvpass.org/live/mlb-27/sd",
"[MLB] Chicago Cubs @ San Francisco Giants (HD)": "https://tvpass.org/live/mlb-27/hd",
"[NCAAF] Boise State Broncos @ South Florida Bulls (SD)": "https://tvpass.org/live/ESPN/sd",
"[NCAAF] Boise State Broncos @ South Florida Bulls (HD)": "https://tvpass.org/live/ESPN/hd",
"[NCAAF] Ohio Bobcats @ Rutgers Scarlet Knights (SD)": "https://tvpass.org/live/BTN/sd",
"[NCAAF] Ohio Bobcats @ Rutgers Scarlet Knights (HD)": "https://tvpass.org/live/BTN/hd",
"[NCAAF] Lafayette Leopards @ Bowling Green Falcons (SD)": "https://tvpass.org/live/NCAAF03/sd",
"[NCAAF] Lafayette Leopards @ Bowling Green Falcons (HD)": "https://tvpass.org/live/NCAAF03/hd",
"[MLB] Atlanta Braves @ Philadelphia Phillies (SD)": "https://tvpass.org/live/mlb-18/sd",
"[MLB] Atlanta Braves @ Philadelphia Phillies (HD)": "https://tvpass.org/live/mlb-18/hd",
"[WNBA] Washington Mystics @ New York Liberty (SD)": "https://tvpass.org/live/WNBA01/sd",
"[WNBA] Washington Mystics @ New York Liberty (HD)": "https://tvpass.org/live/WNBA01/hd",
"[NCAAF] Wyoming Cowboys @ Akron Zips (SD)": "https://tvpass.org/live/NCAAF06/sd",
"[NCAAF] Wyoming Cowboys @ Akron Zips (HD)": "https://tvpass.org/live/NCAAF06/hd",
"[NCAAF] East Carolina Pirates @ NC State Wolfpack (SD)": "https://tvpass.org/live/ACCNetwork/sd",
"[NCAAF] East Carolina Pirates @ NC State Wolfpack (HD)": "https://tvpass.org/live/ACCNetwork/hd",
"[NCAAF] St. Francis (PA) Red Flash @ UL Monroe Warhawks (SD)": "https://tvpass.org/live/NCAAF07/sd",
"[NCAAF] St. Francis (PA) Red Flash @ UL Monroe Warhawks (HD)": "https://tvpass.org/live/NCAAF07/hd",
"[NCAAF] Delaware State Hornets @ Delaware Blue Hens (SD)": "https://tvpass.org/live/NCAAF10/sd",
"[NCAAF] Delaware State Hornets @ Delaware Blue Hens (HD)": "https://tvpass.org/live/NCAAF10/hd",
"[NCAAF] Jacksonville State Gamecocks @ UCF Knights (SD)": "https://tvpass.org/live/NCAAF08/sd",
"[NCAAF] Jacksonville State Gamecocks @ UCF Knights (HD)": "https://tvpass.org/live/NCAAF08/hd",
"[MLB] Miami Marlins @ New York Mets (SD)": "https://tvpass.org/live/mlb-24/sd",
"[MLB] Miami Marlins @ New York Mets (HD)": "https://tvpass.org/live/mlb-24/hd",
"[NCAAF] Central Arkansas Bears @ Missouri Tigers (SD)": "https://tvpass.org/live/SECN/sd",
"[NCAAF] Central Arkansas Bears @ Missouri Tigers (HD)": "https://tvpass.org/live/SECN/hd",
"[NCAAF] Elon Phoenix @ Duke Blue Devils (SD)": "https://tvpass.org/live/NCAAF12/sd",
"[NCAAF] Elon Phoenix @ Duke Blue Devils (HD)": "https://tvpass.org/live/NCAAF12/hd",
"[NCAAF] UT Martin Skyhawks @ Oklahoma State Cowboys (SD)": "https://tvpass.org/live/NCAAF14/sd",
"[NCAAF] UT Martin Skyhawks @ Oklahoma State Cowboys (HD)": "https://tvpass.org/live/NCAAF14/hd",
"[MLB] New York Yankees @ Chicago White Sox (SD)": "https://tvpass.org/live/mlb-03/sd",
"[MLB] New York Yankees @ Chicago White Sox (HD)": "https://tvpass.org/live/mlb-03/hd",
"[NCAAF] Buffalo Bulls @ Minnesota Golden Gophers (SD)": "https://tvpass.org/live/FoxSports1/sd",
"[NCAAF] Buffalo Bulls @ Minnesota Golden Gophers (HD)": "https://tvpass.org/live/FoxSports1/hd",
"[NCAAF] Stephen F. Austin Lumberjacks @ Houston Cougars (SD)": "https://tvpass.org/live/NCAAF15/sd",
"[NCAAF] Stephen F. Austin Lumberjacks @ Houston Cougars (HD)": "https://tvpass.org/live/NCAAF15/hd",
"[WNBA] Seattle Storm @ Minnesota Lynx (SD)": "https://tvpass.org/live/WNBA02/sd",
"[WNBA] Seattle Storm @ Minnesota Lynx (HD)": "https://tvpass.org/live/WNBA02/hd",
"[NCAAF] Alabama State Hornets @ UAB Blazers (SD)": "https://tvpass.org/live/NCAAF18/sd",
"[NCAAF] Alabama State Hornets @ UAB Blazers (HD)": "https://tvpass.org/live/NCAAF18/hd",
"[NCAAF] Nebraska Cornhuskers @ Cincinnati Bearcats (SD)": "https://tvpass.org/live/ESPN/sd",
"[NCAAF] Nebraska Cornhuskers @ Cincinnati Bearcats (HD)": "https://tvpass.org/live/ESPN/hd",
"[NCAAF] Miami (OH) RedHawks @ Wisconsin Badgers (SD)": "https://tvpass.org/live/BTN/sd",
"[NCAAF] Miami (OH) RedHawks @ Wisconsin Badgers (HD)": "https://tvpass.org/live/BTN/hd",
"[NCAAF] Stony Brook Seawolves @ San Diego State Aztecs (SD)": "https://tvpass.org/live/NCAAF21/sd",
"[NCAAF] Stony Brook Seawolves @ San Diego State Aztecs (HD)": "https://tvpass.org/live/NCAAF21/hd",
"[WNBA] Chicago Sky @ Phoenix Mercury (SD)": "https://tvpass.org/live/WNBA03/sd",
"[WNBA] Chicago Sky @ Phoenix Mercury (HD)": "https://tvpass.org/live/WNBA03/hd"
}
}

View file

@ -2,18 +2,18 @@ import json
import re
from datetime import datetime, timedelta
from pathlib import Path
from urllib.parse import urlparse
import httpx
import pytz
base_url = "https://tvpass.org/playlist/m3u"
base_file = Path(__file__).parent / "tvpass.json"
urls: dict[str, str] = {}
TZ = pytz.timezone("America/New_York")
urls: dict[str, str] = {}
def cache_expired(t: float) -> bool:
now = datetime.now(TZ)
@ -64,29 +64,27 @@ async def main(client: httpx.AsyncClient) -> None:
if not (data := await fetch_m3u8(client)):
return
for i, line in enumerate(data[:-1]):
for i, line in enumerate(data):
if line.startswith("#EXTINF"):
tvg_id_match = re.search(r'tvg-id="([^"]*)"', line)
tvg_name_match = re.search(r'tvg-name="([^"]*)"', line)
group_title_match = re.search(r'group-title="([^"]*)"', line)
tvg_id = tvg_id_match[1] if tvg_id_match else None
tvg_name = tvg_name_match[1] if tvg_name_match else None
sport = group_title_match[1] if group_title_match else None
if tvg_id == "":
url = data[i + 1]
if tvg_name:
tvg_name = tvg_name.split("(")[0].strip()
tvg_name = "(".join(tvg_name.split("(")[:-1]).strip()
if url.endswith("/sd"):
path_parts = urlparse(url).path.strip("/").split("/")
urls[f"[{sport}] {tvg_name} (SD)"] = url
if len(path_parts) >= 2 and path_parts[-1] == "sd":
sport = "".join(x for x in path_parts[1] if x.isalpha()).upper()
else:
sport = "UNKNWN"
urls[f"[{sport}] {tvg_name}"] = url
elif url.endswith("/hd"):
urls[f"[{sport}] {tvg_name} (HD)"] = url
if urls:
save_cache(urls)