From 00000d959f3ca0489e84775a99c70cf875c372b3 Mon Sep 17 00:00:00 2001 From: doms9 <96013514+doms9@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:44:02 -0400 Subject: [PATCH] e --- EPG/TVG-IDs.json | 517 +++++++------------------------ EPG/fetch.py | 28 +- M3U8/scrapers/utils/config.py | 102 +----- M3U8/scrapers/utils/leagues.json | 94 ++++++ 4 files changed, 235 insertions(+), 506 deletions(-) create mode 100644 M3U8/scrapers/utils/leagues.json diff --git a/EPG/TVG-IDs.json b/EPG/TVG-IDs.json index 7a6cb5d..ca077bc 100644 --- a/EPG/TVG-IDs.json +++ b/EPG/TVG-IDs.json @@ -1,414 +1,105 @@ { - "A&E TV": { - "tvg-id": "A.and.E.US.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s51529_dark_360w_270h.png" - }, - "ABC": { - "tvg-id": "ABC.(WABC).New.York,.NY.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10003_dark_360w_270h.png" - }, - "ACC Network": { - "tvg-id": "ACC.Network.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111871_dark_360w_270h.png" - }, - "AMC": { - "tvg-id": "AMC.-.Eastern.Feed.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10021_dark_360w_270h.png" - }, - "Animal Planet": { - "tvg-id": "Animal.Planet.US.-.East.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16331_dark_360w_270h.png" - }, - "Aspire": { - "tvg-id": "ASPiRE.TV.us", - "logo": "https://i.gyazo.com/0dec42cc5ef48c489cc10db906dc5b9b.png" - }, - "Astro Premier League": { - "tvg-id": "Astro.Premier.League.my", - "logo": "https://1000logos.net/wp-content/uploads/2020/08/Astro-Logo-500x281.png" - }, - "BBC World News": { - "tvg-id": "BBC.World.News.North.America.(BBCWN).us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89542_dark_360w_270h.png" - }, - "BET": { - "tvg-id": "BET.-.Eastern.Feed.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10051_dark_360w_270h.png" - }, - "Big Ten Network": { - "tvg-id": "Big.Ten.Network.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s56783_dark_360w_270h.png" - }, - "Bloomberg TV": { - "tvg-id": "Bloomberg.TV.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s71799_dark_360w_270h.png" - }, - "Boomerang": { - "tvg-id": "Boomerang.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s21883_dark_360w_270h.png" - }, - "Bounce TV": { - "tvg-id": "Bounce.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s73067_dark_360w_270h.png" - }, - "Bravo TV": { - "tvg-id": "Bravo.USA.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10057_dark_360w_270h.png" - }, - "Buzzr": { - "tvg-id": "Buzzr.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s93430_dark_360w_270h.png" - }, - "C-SPAN": { - "tvg-id": "C-SPAN.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10161_dark_360w_270h.png" - }, - "Cartoon Network": { - "tvg-id": "Cartoon.Network.USA.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12131_dark_360w_270h.png" - }, - "CBS": { - "tvg-id": "CBS.(WCBS).New.York,.NY.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10098_dark_360w_270h.png" - }, - "CBS Sports Golazo Network": { - "tvg-id": "plex.tv.CBS.Sports.Golazo.Network.plex", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s133691_dark_360w_270h.png" - }, - "CBS Sports Network": { - "tvg-id": "CBS.Sports.Network.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16365_dark_360w_270h.png" - }, - "CNBC": { - "tvg-id": "CNBC.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10139_dark_360w_270h.png" - }, - "CNN": { - "tvg-id": "CNN.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58646_dark_360w_270h.png" - }, - "Comedy Central": { - "tvg-id": "Comedy.Central.(US).-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10149_dark_360w_270h.png" - }, - "Comet TV": { - "tvg-id": "Comet.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s97051_dark_360w_270h.png" - }, - "Court TV": { - "tvg-id": "Court.TV.US.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s117160_dark_360w_270h.png" - }, - "Cozi TV": { - "tvg-id": "Cozi.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s78851_dark_360w_270h.png" - }, - "CW": { - "tvg-id": "WPIX.New.York.(SUPERSTATION).us", - "logo": "https://i.gyazo.com/afd5b481b327d204087dfde6a7741f9d.png" - }, - "DAZN 1": { - "tvg-id": "DAZN.1.pt", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s131810_dark_360w_270h.png" - }, - "DAZN 2": { - "tvg-id": "DAZN.2.pt", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111746_dark_360w_270h.png" - }, - "Discovery Channel": { - "tvg-id": "Discovery.Channel.(US).-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11150_dark_360w_270h.png" - }, - "Disney": { - "tvg-id": "Disney.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10171_dark_360w_270h.png" - }, - "Disney XD": { - "tvg-id": "Disney.XD.USA.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18279_dark_360w_270h.png" - }, - "E!": { - "tvg-id": "E!.Entertainment.USA.-.Eastern.Feed.us", - "logo": "https://i.gyazo.com/f73b80e3eb56cec06df6705d00e2f422.png" - }, - "ESPN": { - "tvg-id": "ESPN.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10179_dark_360w_270h.png" - }, - "ESPN News": { - "tvg-id": "ESPN.News.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16485_dark_360w_270h.png" - }, - "ESPN U": { - "tvg-id": "ESPN.U.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s45654_dark_360w_270h.png" - }, - "ESPN2": { - "tvg-id": "ESPN2.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12444_dark_360w_270h.png" - }, - "FDSN Detroit": { - "tvg-id": "FanDuel.Sports.Network.Detroit.24/7.HDTV.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s54286_dark_360w_270h.png" - }, - "FDSN North": { - "tvg-id": "FanDuel.Sports.Network.North.HDTV.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10977_dark_360w_270h.png" - }, - "FDSN Oklahoma": { - "tvg-id": "FanDuel.Sports.Network.Oklahoma.24/7.HDTV.(Tulsa).us", - "logo": "https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png" - }, - "FDSN Southwest": { - "tvg-id": "FanDuel.Sports.Network.Southwest.HDTV.24/7.(Main).us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59629_dark_360w_270h.png" - }, - "FDSN West": { - "tvg-id": "FanDuel.Sports.Network.West.HDTV.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59627_dark_360w_270h.png" - }, - "FIFA+ TV": { - "tvg-id": "plex.tv.FIFA+.plex", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s136235_dark_360w_270h.png" - }, - "Fox": { - "tvg-id": "FOX.(WNYW).New.York,.NY.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s28719_dark_360w_270h.png" - }, - "Fox Business": { - "tvg-id": "Fox.Business.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58649_dark_360w_270h.png" - }, - "Fox News": { - "tvg-id": "Fox.News.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png" - }, - "Fox Sports 1": { - "tvg-id": "Fox.Sports.1.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82541_dark_360w_270h.png" - }, - "Fox Sports 2": { - "tvg-id": "Fox.Sports.2.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33178_dark_360w_270h.png" - }, - "Freeform TV": { - "tvg-id": "Freeform.-.East.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10093_dark_360w_270h.png" - }, - "FUSE": { - "tvg-id": "FUSE.TV.-.Eastern.feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png" - }, - "FX": { - "tvg-id": "FX.Networks.East.Coast.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14321_dark_360w_270h.png" - }, - "FX Movie Channel": { - "tvg-id": "FX.Movie.Channel.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png" - }, - "FXX": { - "tvg-id": "FXX.USA.-.Eastern.us", - "logo": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/fxx-us.png" - }, - "FYI TV": { - "tvg-id": "FYI.USA.-.Eastern.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16834_dark_360w_270h.png" - }, - "Game Show Network": { - "tvg-id": "Game.Show.Network.-.East.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" - }, - "Grit TV": { - "tvg-id": "Grit.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89922_dark_360w_270h.png" - }, - "Hallmark Channel": { - "tvg-id": "Hallmark.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11221_dark_360w_270h.png" - }, - "HBO": { - "tvg-id": "HBO.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10240_dark_360w_270h.png" - }, - "HBO 2": { - "tvg-id": "HBO.2.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68140_dark_360w_270h.png" - }, - "HBO Comedy": { - "tvg-id": "HBO.Comedy.HD.-.East.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59839_dark_360w_270h.png" - }, - "HLN TV": { - "tvg-id": "HLN.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10145_dark_360w_270h.png" - }, - "ION TV": { - "tvg-id": "ION..-.Eastern.Feed.us", - "logo": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18633_dark_360w_270h.png" - }, - "LaLigaTV": { - "tvg-id": "DAZN.LALIGA.es", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s114091_dark_360w_270h.png" - }, - "Lifetime": { - "tvg-id": "Lifetime.Network.US.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10918_dark_360w_270h.png" - }, - "Marquee Sports Network": { - "tvg-id": "Marquee.Sports.Network.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s113768_dark_360w_270h.png" - }, - "MLB Network": { - "tvg-id": "MLB.Network.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62081_dark_360w_270h.png" - }, - "Motortrend TV": { - "tvg-id": "MotorTrend.FAST.TV.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s31046_dark_360w_270h.png" - }, - "MSG": { - "tvg-id": "MSG.(Madison.Square.Gardens).us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10979_dark_360w_270h.png" - }, - "MSNBC": { - "tvg-id": "MSNBC.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16300_dark_360w_270h.png" - }, - "MTV": { - "tvg-id": "MTV.USA.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10986_dark_360w_270h.png" - }, - "National Geographic": { - "tvg-id": "National.Geographic.US.-.Eastern.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49438_dark_360w_270h.png" - }, - "NBA TV": { - "tvg-id": "NBA.TV.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png" - }, - "NBC": { - "tvg-id": "NBC.(WNBC).New.York,.NY.us", - "logo": "https://i.gyazo.com/39d42952500205d04e448247b7889256.png" - }, - "NBC Sports Boston": { - "tvg-id": "NBC.Sports.Boston.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49198_dark_360w_270h.png" - }, - "NBC Sports Philadelphia": { - "tvg-id": "NBC.Sports.Philadelphia.HDTV.(NBCSPAHD).us", - "logo": "https://i.gyazo.com/c5204722cef60da756f1b994d6d71c28.png" - }, - "NewsNation": { - "tvg-id": "NewsNation.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s91096_dark_360w_270h.png" - }, - "NFL Network": { - "tvg-id": "The.NFL.Network.us", - "logo": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-network-hz-us.png" - }, - "NFL RedZone": { - "tvg-id": "NFL.RedZone.us", - "logo": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-red-zone-hz-us.png" - }, - "NHL Network": { - "tvg-id": "NHL.Network.USA.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58570_dark_360w_270h.png" - }, - "Nickelodeon": { - "tvg-id": "Nickelodeon.USA.-.East.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png" - }, - "Nicktoons": { - "tvg-id": "Nicktoons.-.East.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30420_dark_360w_270h.png" - }, - "Outdoor Channel": { - "tvg-id": "Outdoor.Channel.US.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14776_dark_360w_270h.png" - }, - "Premier Sports 1": { - "tvg-id": "Premier.Sports.1.HD.uk", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s79027_dark_360w_270h.png" - }, - "Premier Sports 2": { - "tvg-id": "Premier.Sports.2.HD.uk", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s109162_dark_360w_270h.png" - }, - "Reelz Channel": { - "tvg-id": "ReelzChannel.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68385_dark_360w_270h.png" - }, - "Root Sports": { - "tvg-id": "Root.Sports.Northwest.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11062_dark_360w_270h.png" - }, - "SEC Network": { - "tvg-id": "SEC.Network.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89535_dark_360w_270h.png" - }, - "Showtime": { - "tvg-id": "Paramount+.with.Showtime.-.Eastern.Feed.us", - "logo": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/showtime-us.png" - }, - "Smithsonian Channel": { - "tvg-id": "Smithsonian.Channel.USA.HD.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58532_dark_360w_270h.png" - }, - "SportsNet New York": { - "tvg-id": "SNY:.SportsNet.New.York.(Comcast).us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50038_dark_360w_270h.png" - }, - "Sportsnet One": { - "tvg-id": "Sportsnet.One.ca", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68859_dark_360w_270h.png" - }, - "SportsNet Pittsburgh": { - "tvg-id": "SportsNet.Pittsburgh.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s26028_dark_360w_270h.png" - }, - "Starz": { - "tvg-id": "Starz.-.Eastern.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12719_dark_360w_270h.png" - }, - "Syfy": { - "tvg-id": "Syfy.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11097_dark_360w_270h.png" - }, - "TBS": { - "tvg-id": "TBS.-.East.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11867_dark_360w_270h.png" - }, - "TLC": { - "tvg-id": "TLC.USA.-.Eastern.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11158_dark_360w_270h.png" - }, - "TNT": { - "tvg-id": "TNT.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11164_dark_360w_270h.png" - }, - "truTV": { - "tvg-id": "truTV.USA.-.Eastern.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10153_dark_360w_270h.png" - }, - "TSN1": { - "tvg-id": "TSN1.ca", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11182_dark_360w_270h.png" - }, - "TSN2": { - "tvg-id": "TSN2.ca", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61474_dark_360w_270h.png" - }, - "USA East": { - "tvg-id": "USA.Network.-.Eastern.Feed.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png" - }, - "Vice TV": { - "tvg-id": "VICE.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18822_dark_360w_270h.png" - }, - "YES Network": { - "tvg-id": "YES.Network.us", - "logo": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30017_dark_360w_270h.png" - } -} \ No newline at end of file + "A.and.E.US.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s51529_dark_360w_270h.png", + "ABC.(WABC).New.York,.NY.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10003_dark_360w_270h.png", + "ACC.Network.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111871_dark_360w_270h.png", + "AMC.-.Eastern.Feed.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10021_dark_360w_270h.png", + "ASPiRE.TV.us": "https://i.gyazo.com/0dec42cc5ef48c489cc10db906dc5b9b.png", + "Animal.Planet.US.-.East.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16331_dark_360w_270h.png", + "Astro.Premier.League.my": "https://1000logos.net/wp-content/uploads/2020/08/Astro-Logo-500x281.png", + "BBC.World.News.North.America.(BBCWN).us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89542_dark_360w_270h.png", + "BET.-.Eastern.Feed.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10051_dark_360w_270h.png", + "Big.Ten.Network.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s56783_dark_360w_270h.png", + "Bloomberg.TV.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s71799_dark_360w_270h.png", + "Boomerang.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s21883_dark_360w_270h.png", + "Bounce.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s73067_dark_360w_270h.png", + "Bravo.USA.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10057_dark_360w_270h.png", + "Buzzr.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s93430_dark_360w_270h.png", + "C-SPAN.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10161_dark_360w_270h.png", + "CBS.(WCBS).New.York,.NY.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10098_dark_360w_270h.png", + "CBS.Sports.Network.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16365_dark_360w_270h.png", + "CNBC.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10139_dark_360w_270h.png", + "CNN.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58646_dark_360w_270h.png", + "Cartoon.Network.USA.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12131_dark_360w_270h.png", + "Comedy.Central.(US).-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10149_dark_360w_270h.png", + "Comet.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s97051_dark_360w_270h.png", + "Court.TV.US.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s117160_dark_360w_270h.png", + "Cozi.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s78851_dark_360w_270h.png", + "DAZN.1.pt": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s131810_dark_360w_270h.png", + "DAZN.2.pt": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111746_dark_360w_270h.png", + "DAZN.LALIGA.es": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s114091_dark_360w_270h.png", + "Discovery.Channel.(US).-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11150_dark_360w_270h.png", + "Disney.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10171_dark_360w_270h.png", + "Disney.XD.USA.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18279_dark_360w_270h.png", + "E!.Entertainment.USA.-.Eastern.Feed.us": "https://i.gyazo.com/f73b80e3eb56cec06df6705d00e2f422.png", + "ESPN.News.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16485_dark_360w_270h.png", + "ESPN.U.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s45654_dark_360w_270h.png", + "ESPN.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10179_dark_360w_270h.png", + "ESPN2.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12444_dark_360w_270h.png", + "FOX.(WNYW).New.York,.NY.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s28719_dark_360w_270h.png", + "FUSE.TV.-.Eastern.feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png", + "FX.Movie.Channel.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png", + "FX.Networks.East.Coast.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14321_dark_360w_270h.png", + "FXX.USA.-.Eastern.us": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/fxx-us.png", + "FYI.USA.-.Eastern.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16834_dark_360w_270h.png", + "FanDuel.Sports.Network.Detroit.24/7.HDTV.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s54286_dark_360w_270h.png", + "FanDuel.Sports.Network.North.HDTV.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10977_dark_360w_270h.png", + "FanDuel.Sports.Network.Oklahoma.24/7.HDTV.(Tulsa).us": "https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png", + "FanDuel.Sports.Network.Southwest.HDTV.24/7.(Main).us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59629_dark_360w_270h.png", + "FanDuel.Sports.Network.West.HDTV.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59627_dark_360w_270h.png", + "Fox.Business.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58649_dark_360w_270h.png", + "Fox.News.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png", + "Fox.Sports.1.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82541_dark_360w_270h.png", + "Fox.Sports.2.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33178_dark_360w_270h.png", + "Freeform.-.East.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10093_dark_360w_270h.png", + "Game.Show.Network.-.East.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png", + "Grit.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89922_dark_360w_270h.png", + "HBO.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10240_dark_360w_270h.png", + "HBO.2.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68140_dark_360w_270h.png", + "HBO.Comedy.HD.-.East.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59839_dark_360w_270h.png", + "HLN.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10145_dark_360w_270h.png", + "Hallmark.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11221_dark_360w_270h.png", + "ION..-.Eastern.Feed.us": "https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18633_dark_360w_270h.png", + "Lifetime.Network.US.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10918_dark_360w_270h.png", + "MLB.Network.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62081_dark_360w_270h.png", + "MSG.(Madison.Square.Gardens).us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10979_dark_360w_270h.png", + "MSNBC.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16300_dark_360w_270h.png", + "MTV.USA.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10986_dark_360w_270h.png", + "Marquee.Sports.Network.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s113768_dark_360w_270h.png", + "MotorTrend.FAST.TV.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s31046_dark_360w_270h.png", + "NBA.TV.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png", + "NBC.(WNBC).New.York,.NY.us": "https://i.gyazo.com/39d42952500205d04e448247b7889256.png", + "NBC.Sports.Boston.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49198_dark_360w_270h.png", + "NBC.Sports.Philadelphia.HDTV.(NBCSPAHD).us": "https://i.gyazo.com/c5204722cef60da756f1b994d6d71c28.png", + "NFL.RedZone.us": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-red-zone-hz-us.png", + "NHL.Network.USA.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58570_dark_360w_270h.png", + "National.Geographic.US.-.Eastern.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49438_dark_360w_270h.png", + "NewsNation.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s91096_dark_360w_270h.png", + "Nickelodeon.USA.-.East.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png", + "Nicktoons.-.East.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30420_dark_360w_270h.png", + "Outdoor.Channel.US.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14776_dark_360w_270h.png", + "Paramount+.with.Showtime.-.Eastern.Feed.us": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/showtime-us.png", + "Premier.Sports.1.HD.uk": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s79027_dark_360w_270h.png", + "Premier.Sports.2.HD.uk": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s109162_dark_360w_270h.png", + "ReelzChannel.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68385_dark_360w_270h.png", + "Root.Sports.Northwest.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11062_dark_360w_270h.png", + "SEC.Network.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89535_dark_360w_270h.png", + "SNY:.SportsNet.New.York.(Comcast).us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50038_dark_360w_270h.png", + "Smithsonian.Channel.USA.HD.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58532_dark_360w_270h.png", + "SportsNet.Pittsburgh.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s26028_dark_360w_270h.png", + "Sportsnet.One.ca": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68859_dark_360w_270h.png", + "Starz.-.Eastern.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12719_dark_360w_270h.png", + "Syfy.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11097_dark_360w_270h.png", + "TBS.-.East.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11867_dark_360w_270h.png", + "TLC.USA.-.Eastern.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11158_dark_360w_270h.png", + "TNT.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11164_dark_360w_270h.png", + "TSN1.ca": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11182_dark_360w_270h.png", + "TSN2.ca": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61474_dark_360w_270h.png", + "The.NFL.Network.us": "https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-network-hz-us.png", + "USA.Network.-.Eastern.Feed.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png", + "VICE.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18822_dark_360w_270h.png", + "WPIX.New.York.(SUPERSTATION).us": "https://i.gyazo.com/afd5b481b327d204087dfde6a7741f9d.png", + "YES.Network.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30017_dark_360w_270h.png", + "plex.tv.CBS.Sports.Golazo.Network.plex": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s133691_dark_360w_270h.png", + "plex.tv.FIFA+.plex": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s136235_dark_360w_270h.png", + "truTV.USA.-.Eastern.us": "http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10153_dark_360w_270h.png" +} diff --git a/EPG/fetch.py b/EPG/fetch.py index 0d9f711..341d619 100644 --- a/EPG/fetch.py +++ b/EPG/fetch.py @@ -32,6 +32,27 @@ client = httpx.AsyncClient( }, ) +live_img = "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png" + +dummies = { + "Basketball.Dummy.us": live_img, + "Live.Event.us": live_img, + "MLB.Baseball.Dummy.us": None, + "MLS.Soccer.Dummy.us": None, + "NBA.Basketball.Dummy.us": None, + "NFL.Dummy.us": None, + "NHL.Hockey.Dummy.us": None, + "PPV.EVENTS.Dummy.us": live_img, + "Premier.League.Dummy.us": None, + "Racing.Dummy.us": None, + "Soccer.Dummy.us": live_img, + "Sports.Dummy.us": live_img, + "Tennis.Dummy.us": None, + "UEFA.Champions.League.Dummy.us": None, + "UFC.Fight.Pass.Dummy.us": live_img, + "WNBA.dummy.us": None, +} + async def fetch_xml(url: str) -> ET.Element: try: @@ -50,9 +71,9 @@ async def fetch_xml(url: str) -> ET.Element: async def main() -> None: - data = json.loads(tvg_ids_file.read_text(encoding="utf-8")) + tvg_ids: dict[str, str] = json.loads(tvg_ids_file.read_text(encoding="utf-8")) - tvg_ids = {v["tvg-id"]: v["logo"] for v in data.values()} + tvg_ids |= dummies root = ET.Element("tv") @@ -66,7 +87,8 @@ async def main() -> None: for channel in epg_data.findall("channel"): if (channel_id := channel.get("id")) in tvg_ids: for icon_tag in channel.findall("icon"): - icon_tag.set("src", tvg_ids[channel_id]) + if logo := tvg_ids.get(channel_id): + icon_tag.set("src", logo) if (url_tag := channel.find("url")) is not None: channel.remove(url_tag) diff --git a/M3U8/scrapers/utils/config.py b/M3U8/scrapers/utils/config.py index 175bd8a..7c3689b 100644 --- a/M3U8/scrapers/utils/config.py +++ b/M3U8/scrapers/utils/config.py @@ -1,4 +1,6 @@ +import json from datetime import datetime +from pathlib import Path import pytz @@ -12,97 +14,13 @@ UA = ( "Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0" ) -LEAGUES: dict[str, dict[str, str]] = { - "Basketball": { - "logo": "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png", - "id": "Basketball.Dummy.us", - }, - "Bundesliga": { - "logo": "https://1000logos.net/wp-content/uploads/2020/09/Bundesliga-Logo-500x313.png", - "id": "Soccer.Dummy.us", - }, - "F1": { - "logo": "https://1000logos.net/wp-content/uploads/2021/06/F1-logo-500x281.png", - "id": "Racing.Dummy.us", - }, - "La Liga": { - "logo": "https://1000logos.net/wp-content/uploads/2019/01/Spanish-La-Liga-Logo-500x281.png", - "id": "Soccer.Dummy.us", - }, - "Ligue 1": { - "logo": "https://1000logos.net/wp-content/uploads/2019/01/Ligue-1-Logo-500x281.png", - "id": "Soccer.Dummy.us", - }, - "MLB": { - "logo": "https://1000logos.net/wp-content/uploads/2017/04/MLB-Logo-500x281.png", - "id": "MLB.Baseball.Dummy.us", - }, - "MLS": { - "logo": "https://1000logos.net/wp-content/uploads/2017/10/MLS-logo-500x393.png", - "id": "MLS.Soccer.Dummy.us", - }, - "Moto GP": { - "logo": "https://1000logos.net/wp-content/uploads/2021/03/MotoGP-Logo-500x281.png", - "id": "Racing.Dummy.us", - }, - "NBA": { - "logo": "https://1000logos.net/wp-content/uploads/2025/08/Jerry-West-the-NBA-Logo-500x281.png", - "id": "NBA.Basketball.Dummy.us", - }, - "NCAA": { - "logo": "https://1000logos.net/wp-content/uploads/2021/12/NCAA-Logo-500x281.png", - "id": "Sports.Dummy.us", - }, - "NFL": { - "logo": "https://1000logos.net/wp-content/uploads/2017/05/NFL-logo-500x338.png", - "id": "NFL.Dummy.us", - }, - "NHL": { - "logo": "https://1000logos.net/wp-content/uploads/2017/05/NHL-Logo-500x333.png", - "id": "NHL.Hockey.Dummy.us", - }, - "Pay-Per-View": { - "logo": "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png", - "id": "PPV.EVENTS.Dummy.us", - }, - "Premier League": { - "logo": "https://1000logos.net/wp-content/uploads/2017/05/Premier-League-logo-500x210.png", - "id": "Premier.League.Dummy.us", - }, - "Primera A": { - "logo": "https://b.fssta.com/uploads/application/soccer/competition-logos/ColombianPrimeraA.png", - "id": "Soccer.Dummy.us", - }, - "Primeira Liga": { - "logo": "https://1000logos.net/wp-content/uploads/2022/01/Portuguese-Primeira-Liga-logo-500x281.png", - "id": "Soccer.Dummy.us", - }, - "Serie A": { - "logo": "https://1000logos.net/wp-content/uploads/2019/01/Italian-Serie-A-Logo-500x281.png", - "id": "Soccer.Dummy.us", - }, - "Soccer": { - "logo": "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png", - "id": "Soccer.Dummy.us", - }, - "UEFA Champions League": { - "logo": "https://1000logos.net/wp-content/uploads/2022/01/UEFA-Champions-League-logo-500x281.png", - "id": "UEFA.Champions.League.Dummy.us", - }, - "UFC": { - "logo": "https://1000logos.net/wp-content/uploads/2017/06/Logo-UFC-500x313.png", - "id": "UFC.Fight.Pass.Dummy.us", - }, - "WNBA": { - "logo": "https://1000logos.net/wp-content/uploads/2018/09/logo-wnba-500x287.png", - "id": "WNBA.dummy.us", - }, - "default": { - "logo": "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png", - "id": "Live.Event.us", - }, -} +live_img = "https://i.gyazo.com/978f2eb4a199ca5b56b447aded0cb9e3.png" +leagues_file = Path(__file__).parent / "leagues.json" + +LEAGUES: dict[str, dict[str, str]] = json.loads( + leagues_file.read_text(encoding="utf-8") +) alias_map = { "Bundesliga": ["German Bundesliga", "Bundeslig"], @@ -120,6 +38,10 @@ alias_map = { "WNBA": ["NBA W"], } +for k, v in LEAGUES.items(): + if not v["logo"]: + LEAGUES[k]["logo"] = live_img + for base, aliases in alias_map.items(): for alias in aliases: LEAGUES[alias] = LEAGUES[base] diff --git a/M3U8/scrapers/utils/leagues.json b/M3U8/scrapers/utils/leagues.json new file mode 100644 index 0000000..c575629 --- /dev/null +++ b/M3U8/scrapers/utils/leagues.json @@ -0,0 +1,94 @@ +{ + "Basketball": { + "id": "Basketball.Dummy.us", + "logo": null + }, + "Bundesliga": { + "id": "Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2020/09/Bundesliga-Logo-500x313.png" + }, + "F1": { + "id": "Racing.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2021/06/F1-logo-500x281.png" + }, + "La Liga": { + "id": "Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2019/01/Spanish-La-Liga-Logo-500x281.png" + }, + "Ligue 1": { + "id": "Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2019/01/Ligue-1-Logo-500x281.png" + }, + "MLB": { + "id": "MLB.Baseball.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/04/MLB-Logo-500x281.png" + }, + "MLS": { + "id": "MLS.Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/10/MLS-logo-500x393.png" + }, + "Moto GP": { + "id": "Racing.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2021/03/MotoGP-Logo-500x281.png" + }, + "NBA": { + "id": "NBA.Basketball.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2025/08/Jerry-West-the-NBA-Logo-500x281.png" + }, + "NCAA": { + "id": "Sports.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2021/12/NCAA-Logo-500x281.png" + }, + "NFL": { + "id": "NFL.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/05/NFL-logo-500x338.png" + }, + "NHL": { + "id": "NHL.Hockey.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/05/NHL-Logo-500x333.png" + }, + "Pay-Per-View": { + "id": "PPV.EVENTS.Dummy.us", + "logo": null + }, + "Premier League": { + "id": "Premier.League.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/05/Premier-League-logo-500x210.png" + }, + "Primeira Liga": { + "id": "Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2022/01/Portuguese-Primeira-Liga-logo-500x281.png" + }, + "Primera A": { + "id": "Soccer.Dummy.us", + "logo": "https://b.fssta.com/uploads/application/soccer/competition-logos/ColombianPrimeraA.png" + }, + "Serie A": { + "id": "Soccer.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2019/01/Italian-Serie-A-Logo-500x281.png" + }, + "Soccer": { + "id": "Soccer.Dummy.us", + "logo": null + }, + "Tennis": { + "id": "Tennis.Dummy.us", + "logo": null + }, + "UEFA Champions League": { + "id": "UEFA.Champions.League.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2022/01/UEFA-Champions-League-logo-500x281.png" + }, + "UFC": { + "id": "UFC.Fight.Pass.Dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2017/06/Logo-UFC-500x313.png" + }, + "WNBA": { + "id": "WNBA.dummy.us", + "logo": "https://1000logos.net/wp-content/uploads/2018/09/logo-wnba-500x287.png" + }, + "default": { + "id": "Live.Event.us", + "logo": null + } +}