Compare commits

..

No commits in common. "12918042b7bbaa7831aa17ada867a0deb01b2515" and "b6abb9371fc0549416eb0c00f6fcfa323aa6e307" have entirely different histories.

16 changed files with 178843 additions and 182497 deletions

File diff suppressed because it is too large Load diff

355295
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -4,7 +4,7 @@
http://41.205.93.154/AandE/index.m3u8 http://41.205.93.154/AandE/index.m3u8
#EXTINF:-1 tvg-chno="2" tvg-id="ABC.National.Feed.us2" tvg-name="ABC" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10003_dark_360w_270h.png" group-title="TV",ABC #EXTINF:-1 tvg-chno="2" tvg-id="ABC.National.Feed.us2" tvg-name="ABC" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10003_dark_360w_270h.png" group-title="TV",ABC
http://stream.cammonitorplus.net/1740/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ== http://stream.cammonitorplus.net/1762/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==
#EXTINF:-1 tvg-chno="3" tvg-id="ACC.Network.us2" tvg-name="ACC Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111871_dark_360w_270h.png" group-title="TV",ACC Network #EXTINF:-1 tvg-chno="3" tvg-id="ACC.Network.us2" tvg-name="ACC Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111871_dark_360w_270h.png" group-title="TV",ACC Network
http://23.239.31.26:8989/accnetwork/index.m3u8 http://23.239.31.26:8989/accnetwork/index.m3u8
@ -13,7 +13,7 @@ http://23.239.31.26:8989/accnetwork/index.m3u8
https://turnerlive.warnermediacdn.com/hls/live/2023183/aseast/noslate/VIDEO_1_5128000.m3u8 https://turnerlive.warnermediacdn.com/hls/live/2023183/aseast/noslate/VIDEO_1_5128000.m3u8
#EXTINF:-1 tvg-chno="5" tvg-id="Altitude.Sports.us2" tvg-name="Altitude Sports" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s44263_dark_360w_270h.png" group-title="TV",Altitude Sports #EXTINF:-1 tvg-chno="5" tvg-id="Altitude.Sports.us2" tvg-name="Altitude Sports" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s44263_dark_360w_270h.png" group-title="TV",Altitude Sports
http://mytvstream.net:8080/live/30550113/30550113/79545.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141447.ts
#EXTINF:-1 tvg-chno="6" tvg-id="AMC.HD.us2" tvg-name="AMC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10021_dark_360w_270h.png" group-title="TV",AMC #EXTINF:-1 tvg-chno="6" tvg-id="AMC.HD.us2" tvg-name="AMC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10021_dark_360w_270h.png" group-title="TV",AMC
http://41.205.93.154/AMC/index.m3u8 http://41.205.93.154/AMC/index.m3u8
@ -22,13 +22,13 @@ http://41.205.93.154/AMC/index.m3u8
http://23.239.31.26:8989/animalplanet/index.m3u8 http://23.239.31.26:8989/animalplanet/index.m3u8
#EXTINF:-1 tvg-chno="8" tvg-id="Antenna.TV.us2" tvg-name="Antenna TV" tvg-logo="https://cdn.tvpassport.com/image/station/240x135/v3/70248-224D0.png" group-title="TV",Antenna TV #EXTINF:-1 tvg-chno="8" tvg-id="Antenna.TV.us2" tvg-name="Antenna TV" tvg-logo="https://cdn.tvpassport.com/image/station/240x135/v3/70248-224D0.png" group-title="TV",Antenna TV
http://mytvstream.net:8080/live/30550113/30550113/20180.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129826.ts
#EXTINF:-1 tvg-chno="9" tvg-id="ASPiRE.HD.us2" tvg-name="Aspire" tvg-logo="https://i.gyazo.com/0dec42cc5ef48c489cc10db906dc5b9b.png" group-title="TV",Aspire #EXTINF:-1 tvg-chno="9" tvg-id="ASPiRE.HD.us2" tvg-name="Aspire" tvg-logo="https://i.gyazo.com/0dec42cc5ef48c489cc10db906dc5b9b.png" group-title="TV",Aspire
http://mytvstream.net:8080/live/30550113/30550113/21927.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129827.ts
#EXTINF:-1 tvg-chno="10" tvg-id="AXS.TV.us2" tvg-name="AXS TV" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s28506_dark_360w_270h.png" group-title="TV",AXS TV #EXTINF:-1 tvg-chno="10" tvg-id="AXS.TV.us2" tvg-name="AXS TV" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s28506_dark_360w_270h.png" group-title="TV",AXS TV
http://23.239.31.26:8989/axstv/index.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129830.ts
#EXTINF:-1 tvg-chno="11" tvg-id="BBC.America.HD.us2" tvg-name="BBC America" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s64492_dark_360w_270h.png" group-title="TV",BBC America #EXTINF:-1 tvg-chno="11" tvg-id="BBC.America.HD.us2" tvg-name="BBC America" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s64492_dark_360w_270h.png" group-title="TV",BBC America
https://bcovlive-a.akamaihd.net/7f5ec16d102f4b5d92e8e27bc95ff424/us-east-1/6240731308001/playlist.m3u8 https://bcovlive-a.akamaihd.net/7f5ec16d102f4b5d92e8e27bc95ff424/us-east-1/6240731308001/playlist.m3u8
@ -106,25 +106,25 @@ http://23.237.104.106:8080/USA_COOKING/index.m3u8
https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01438-ewscrippscompan-courttv-tablo/playlist.m3u8 https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01438-ewscrippscompan-courttv-tablo/playlist.m3u8
#EXTINF:-1 tvg-chno="36" tvg-id="COZI.TV.us2" tvg-name="Cozi TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s78851_dark_360w_270h.png" group-title="TV",Cozi TV #EXTINF:-1 tvg-chno="36" tvg-id="COZI.TV.us2" tvg-name="Cozi TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s78851_dark_360w_270h.png" group-title="TV",Cozi TV
http://mytvstream.net:8080/live/30550113/30550113/11868.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129858.ts
#EXTINF:-1 tvg-chno="37" tvg-id="Crime.and.Investigation.Network.HD.us2" tvg-name="Crime & Investigation Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61469_dark_360w_270h.png" group-title="TV",Crime & Investigation Network #EXTINF:-1 tvg-chno="37" tvg-id="Crime.and.Investigation.Network.HD.us2" tvg-name="Crime & Investigation Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61469_dark_360w_270h.png" group-title="TV",Crime & Investigation Network
http://23.237.104.106:8080/USA_CRIME_INVESTIGATION/mpegts http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129860.ts
#EXTINF:-1 tvg-chno="38" tvg-id="KTLA-DT.us_locals1" tvg-name="CW" tvg-logo="https://i.gyazo.com/afd5b481b327d204087dfde6a7741f9d.png" group-title="TV",CW #EXTINF:-1 tvg-chno="38" tvg-id="KTLA-DT.us_locals1" tvg-name="CW" tvg-logo="https://i.gyazo.com/afd5b481b327d204087dfde6a7741f9d.png" group-title="TV",CW
http://mytvstream.net:8080/live/30550113/30550113/120889.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/117093.ts
#EXTINF:-1 tvg-chno="39" tvg-id="Discovery.Channel.HD.us2" tvg-name="Discovery Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11150_dark_360w_270h.png" group-title="TV",Discovery Channel #EXTINF:-1 tvg-chno="39" tvg-id="Discovery.Channel.HD.us2" tvg-name="Discovery Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11150_dark_360w_270h.png" group-title="TV",Discovery Channel
http://23.237.104.106:8080/USA_DISCOVERY/index.m3u8 http://23.237.104.106:8080/USA_DISCOVERY/index.m3u8
#EXTINF:-1 tvg-chno="40" tvg-id="Discovery.Family.Channel.HD.us2" tvg-name="Discovery Family Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16618_dark_360w_270h.png" group-title="TV",Discovery Family Channel #EXTINF:-1 tvg-chno="40" tvg-id="Discovery.Family.Channel.HD.us2" tvg-name="Discovery Family Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16618_dark_360w_270h.png" group-title="TV",Discovery Family Channel
http://mytvstream.net:8080/live/30550113/30550113/57347.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129865.ts
#EXTINF:-1 tvg-chno="41" tvg-id="Discovery.Life.Channel.us2" tvg-name="Discovery Life" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16125_dark_360w_270h.png" group-title="TV",Discovery Life #EXTINF:-1 tvg-chno="41" tvg-id="Discovery.Life.Channel.us2" tvg-name="Discovery Life" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16125_dark_360w_270h.png" group-title="TV",Discovery Life
http://mytvstream.net:8080/live/30550113/30550113/9861.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129866.ts
#EXTINF:-1 tvg-chno="42" tvg-id="Science.Channel.HD.us2" tvg-name="Discovery Science" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s24282_dark_360w_270h.png" group-title="TV",Discovery Science #EXTINF:-1 tvg-chno="42" tvg-id="Science.Channel.HD.us2" tvg-name="Discovery Science" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s24282_dark_360w_270h.png" group-title="TV",Discovery Science
http://mytvstream.net:8080/live/30550113/30550113/20866.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129867.ts
#EXTINF:-1 tvg-chno="43" tvg-id="Disney.Channel.HD.us2" tvg-name="Disney" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10171_dark_360w_270h.png" group-title="TV",Disney Channel #EXTINF:-1 tvg-chno="43" tvg-id="Disney.Channel.HD.us2" tvg-name="Disney" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10171_dark_360w_270h.png" group-title="TV",Disney Channel
http://89.105.221.127/Disney/index.m3u8?token=test http://89.105.221.127/Disney/index.m3u8?token=test
@ -193,10 +193,10 @@ http://23.237.104.106:8080/USA_FOOD_NETWORK/index.m3u8
http://stream.cammonitorplus.net/1772/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ== http://stream.cammonitorplus.net/1772/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==
#EXTINF:-1 tvg-chno="65" tvg-id="Fox.Business.HD.us2" tvg-name="Fox Business" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58649_dark_360w_270h.png" group-title="TV",Fox Business #EXTINF:-1 tvg-chno="65" tvg-id="Fox.Business.HD.us2" tvg-name="Fox Business" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58649_dark_360w_270h.png" group-title="TV",Fox Business
http://mytvstream.net:8080/live/30550113/30550113/17639.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/8258.ts
#EXTINF:-1 tvg-chno="66" tvg-id="Fox.News.Channel.HD.us2" tvg-name="Fox News" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png" group-title="TV",Fox News #EXTINF:-1 tvg-chno="66" tvg-id="Fox.News.Channel.HD.us2" tvg-name="Fox News" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png" group-title="TV",Fox News
http://104.255.88.155/foxnews/index.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/136761.ts
#EXTINF:-1 tvg-chno="67" tvg-id="FS1.Fox.Sports.1.HD.us2" tvg-name="Fox Sports 1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82541_dark_360w_270h.png" group-title="TV",Fox Sports 1 #EXTINF:-1 tvg-chno="67" tvg-id="FS1.Fox.Sports.1.HD.us2" tvg-name="Fox Sports 1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82541_dark_360w_270h.png" group-title="TV",Fox Sports 1
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/3420.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/3420.ts
@ -205,7 +205,7 @@ https://starshare.st/live/P4B9TB9xR8/humongous2tonight/3420.ts
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/55.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/55.ts
#EXTINF:-1 tvg-chno="69" tvg-id="Freeform.HD.us2" tvg-name="Freeform TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10093_dark_360w_270h.png" group-title="TV",Freeform TV #EXTINF:-1 tvg-chno="69" tvg-id="Freeform.HD.us2" tvg-name="Freeform TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10093_dark_360w_270h.png" group-title="TV",Freeform TV
http://mytvstream.net:8080/live/30550113/30550113/13370.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/11205.ts
#EXTINF:-1 tvg-chno="70" tvg-id="Fuse.HD.us2" tvg-name="FUSE" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png" group-title="TV",FUSE #EXTINF:-1 tvg-chno="70" tvg-id="Fuse.HD.us2" tvg-name="FUSE" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png" group-title="TV",FUSE
http://23.237.104.106:8080/USA_FUSE/index.m3u8 http://23.237.104.106:8080/USA_FUSE/index.m3u8
@ -214,34 +214,34 @@ http://23.237.104.106:8080/USA_FUSE/index.m3u8
http://23.237.104.106:8080/USA_FX/index.m3u8 http://23.237.104.106:8080/USA_FX/index.m3u8
#EXTINF:-1 tvg-chno="72" tvg-id="FX.Movie.Channel.HD.us2" tvg-name="FX Movie Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png" group-title="TV",FX Movie Channel #EXTINF:-1 tvg-chno="72" tvg-id="FX.Movie.Channel.HD.us2" tvg-name="FX Movie Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png" group-title="TV",FX Movie Channel
http://mytvstream.net:8080/live/30550113/30550113/10260.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129878.ts
#EXTINF:-1 tvg-chno="73" tvg-id="FXX.HD.us2" tvg-name="FXX" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/fxx-us.png" group-title="TV",FXX #EXTINF:-1 tvg-chno="73" tvg-id="FXX.HD.us2" tvg-name="FXX" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/fxx-us.png" group-title="TV",FXX
http://23.237.104.106:8080/USA_FXX/index.m3u8 http://23.237.104.106:8080/USA_FXX/index.m3u8
#EXTINF:-1 tvg-chno="74" tvg-id="FYI.Channel.HD.us2" tvg-name="FYI TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16834_dark_360w_270h.png" group-title="TV",FYI TV #EXTINF:-1 tvg-chno="74" tvg-id="FYI.Channel.HD.us2" tvg-name="FYI TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16834_dark_360w_270h.png" group-title="TV",FYI TV
http://mytvstream.net:8080/live/30550113/30550113/9240.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130105.ts
#EXTINF:-1 tvg-chno="75" tvg-id="Game.Show.Network.HD.us2" tvg-name="Game Show Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" group-title="TV",Game Show Network #EXTINF:-1 tvg-chno="75" tvg-id="Game.Show.Network.HD.us2" tvg-name="Game Show Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" group-title="TV",Game Show Network
http://mytvstream.net:8080/live/30550113/30550113/120633.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130111.ts
#EXTINF:-1 tvg-chno="76" tvg-id="get.us2" tvg-name="getTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82563_dark_360w_270h.png" group-title="TV",getTV #EXTINF:-1 tvg-chno="76" tvg-id="get.us2" tvg-name="getTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82563_dark_360w_270h.png" group-title="TV",getTV
http://mytvstream.net:8080/live/30550113/30550113/18366.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129884.ts
#EXTINF:-1 tvg-chno="77" tvg-id="Golf.Channel.HD.us2" tvg-name="Golf Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14899_dark_360w_270h.png" group-title="TV",Golf Channel #EXTINF:-1 tvg-chno="77" tvg-id="Golf.Channel.HD.us2" tvg-name="Golf Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14899_dark_360w_270h.png" group-title="TV",Golf Channel
http://mytvstream.net:8080/live/30550113/30550113/9806.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/258721.ts
#EXTINF:-1 tvg-chno="78" tvg-id="Grit.us2" tvg-name="Grit TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89922_dark_360w_270h.png" group-title="TV",Grit TV #EXTINF:-1 tvg-chno="78" tvg-id="Grit.us2" tvg-name="Grit TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89922_dark_360w_270h.png" group-title="TV",Grit TV
http://mytvstream.net:8080/live/30550113/30550113/20861.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129885.ts
#EXTINF:-1 tvg-chno="79" tvg-id="Hallmark.Channel.HD.us2" tvg-name="Hallmark Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11221_dark_360w_270h.png" group-title="TV",Hallmark Channel #EXTINF:-1 tvg-chno="79" tvg-id="Hallmark.Channel.HD.us2" tvg-name="Hallmark Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11221_dark_360w_270h.png" group-title="TV",Hallmark Channel
http://23.237.104.106:8080/USA_HALLMARK/index.m3u8 http://23.237.104.106:8080/USA_HALLMARK/index.m3u8
#EXTINF:-1 tvg-chno="80" tvg-id="Hallmark.Family.us2" tvg-name="Hallmark Family" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s105723_dark_360w_270h.png" group-title="TV",Hallmark Family #EXTINF:-1 tvg-chno="80" tvg-id="Hallmark.Family.us2" tvg-name="Hallmark Family" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s105723_dark_360w_270h.png" group-title="TV",Hallmark Family
http://mytvstream.net:8080/live/30550113/30550113/9307.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130118.ts
#EXTINF:-1 tvg-chno="81" tvg-id="Hallmark.Mystery.HD.us2" tvg-name="Hallmark Mystery" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61522_dark_360w_270h.png" group-title="TV",Hallmark Mystery #EXTINF:-1 tvg-chno="81" tvg-id="Hallmark.Mystery.HD.us2" tvg-name="Hallmark Mystery" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61522_dark_360w_270h.png" group-title="TV",Hallmark Mystery
http://mytvstream.net:8080/live/30550113/30550113/10289.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129888.ts
#EXTINF:-1 tvg-chno="82" tvg-id="HBO.East.us2" tvg-name="HBO" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10240_dark_360w_270h.png" group-title="TV",HBO #EXTINF:-1 tvg-chno="82" tvg-id="HBO.East.us2" tvg-name="HBO" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10240_dark_360w_270h.png" group-title="TV",HBO
http://23.237.104.106:8080/USA_HBO/index.m3u8 http://23.237.104.106:8080/USA_HBO/index.m3u8
@ -259,19 +259,19 @@ http://mytvstream.net:8080/live/30550113/30550113/17772.m3u8
http://23.237.104.106:8080/USA_HBO_ZONE/index.m3u8 http://23.237.104.106:8080/USA_HBO_ZONE/index.m3u8
#EXTINF:-1 tvg-chno="87" tvg-id="History.HD.us2" tvg-name="History Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s87679_dark_360w_270h.png" group-title="TV",History Channel #EXTINF:-1 tvg-chno="87" tvg-id="History.HD.us2" tvg-name="History Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s87679_dark_360w_270h.png" group-title="TV",History Channel
http://mytvstream.net:8080/live/30550113/30550113/15017.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129892.ts
#EXTINF:-1 tvg-chno="88" tvg-id="HLN.HD.us2" tvg-name="HLN TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10145_dark_360w_270h.png" group-title="TV",HLN TV #EXTINF:-1 tvg-chno="88" tvg-id="HLN.HD.us2" tvg-name="HLN TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10145_dark_360w_270h.png" group-title="TV",HLN TV
http://23.237.104.106:8080/USA_HLN/index.m3u8 http://23.237.104.106:8080/USA_HLN/index.m3u8
#EXTINF:-1 tvg-chno="89" tvg-id="INSP.HD.us2" tvg-name="INSP" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11066_dark_360w_270h.png" group-title="TV",INSP #EXTINF:-1 tvg-chno="89" tvg-id="INSP.HD.us2" tvg-name="INSP" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11066_dark_360w_270h.png" group-title="TV",INSP
http://mytvstream.net:8080/live/30550113/30550113/16262.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130121.ts
#EXTINF:-1 tvg-chno="90" tvg-id="Investigation.Discovery.HD.us2" tvg-name="Investigation Discovery" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16615_dark_360w_270h.png" group-title="TV",Investigation Discovery #EXTINF:-1 tvg-chno="90" tvg-id="Investigation.Discovery.HD.us2" tvg-name="Investigation Discovery" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16615_dark_360w_270h.png" group-title="TV",Investigation Discovery
http://mytvstream.net:8080/live/30550113/30550113/46810.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129899.ts
#EXTINF:-1 tvg-chno="91" tvg-id="ION.Television.HD.us2" tvg-name="ION TV" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18633_dark_360w_270h.png" group-title="TV",ION TV #EXTINF:-1 tvg-chno="91" tvg-id="ION.Television.HD.us2" tvg-name="ION TV" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18633_dark_360w_270h.png" group-title="TV",ION TV
http://mytvstream.net:8080/live/30550113/30550113/9297.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129903.ts
#EXTINF:-1 tvg-chno="92" tvg-id="Lifetime.HD.us2" tvg-name="Lifetime" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10918_dark_360w_270h.png" group-title="TV",Lifetime #EXTINF:-1 tvg-chno="92" tvg-id="Lifetime.HD.us2" tvg-name="Lifetime" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10918_dark_360w_270h.png" group-title="TV",Lifetime
http://41.205.93.154/LIFETIME/index.m3u8 http://41.205.93.154/LIFETIME/index.m3u8
@ -280,13 +280,13 @@ http://41.205.93.154/LIFETIME/index.m3u8
http://23.237.104.106:8080/USA_LMN/index.m3u8 http://23.237.104.106:8080/USA_LMN/index.m3u8
#EXTINF:-1 tvg-chno="94" tvg-id="Marquee.Sports.Network.HD.us2" tvg-name="Marquee Sports Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s113768_dark_360w_270h.png" group-title="TV",Marquee Sports Network #EXTINF:-1 tvg-chno="94" tvg-id="Marquee.Sports.Network.HD.us2" tvg-name="Marquee Sports Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s113768_dark_360w_270h.png" group-title="TV",Marquee Sports Network
http://mytvstream.net:8080/live/30550113/30550113/13379.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141475.ts
#EXTINF:-1 tvg-chno="95" tvg-id="MLB.Network.HD.us2" tvg-name="MLB Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62081_dark_360w_270h.png" group-title="TV",MLB Network #EXTINF:-1 tvg-chno="95" tvg-id="MLB.Network.HD.us2" tvg-name="MLB Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62081_dark_360w_270h.png" group-title="TV",MLB Network
http://stream.cammonitorplus.net/337626/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ== http://stream.cammonitorplus.net/337626/index.m3u8?token=MnE3ZWg1YkgxdFdWZlo2c2hLMkltWnJhcFo1OHhxcXVyb2pKazZXaWxZRERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==
#EXTINF:-1 tvg-chno="96" tvg-id="MOTORTREND.HD.us2" tvg-name="MotorTrend TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s31046_dark_360w_270h.png" group-title="TV",MotorTrend TV #EXTINF:-1 tvg-chno="96" tvg-id="MOTORTREND.HD.us2" tvg-name="MotorTrend TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s31046_dark_360w_270h.png" group-title="TV",MotorTrend TV
http://mytvstream.net:8080/live/30550113/30550113/10399.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129917.ts
#EXTINF:-1 tvg-chno="97" tvg-id="MSG.National.us2" tvg-name="MSG" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10979_dark_360w_270h.png" group-title="TV",MSG #EXTINF:-1 tvg-chno="97" tvg-id="MSG.National.us2" tvg-name="MSG" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10979_dark_360w_270h.png" group-title="TV",MSG
http://23.237.104.106:8080/USA_MSG/index.m3u8 http://23.237.104.106:8080/USA_MSG/index.m3u8
@ -313,19 +313,19 @@ http://mytvstream.net:8080/live/30550113/30550113/9900.m3u8
http://mytvstream.net:8080/live/30550113/30550113/20939.m3u8 http://mytvstream.net:8080/live/30550113/30550113/20939.m3u8
#EXTINF:-1 tvg-chno="105" 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 #EXTINF:-1 tvg-chno="105" 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://hardcoremedia.xyz/live/rabdsbmz/3731346838/136474.ts
#EXTINF:-1 tvg-chno="106" 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 #EXTINF:-1 tvg-chno="106" 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://starshare.st/live/P4B9TB9xR8/humongous2tonight/1001.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/1001.ts
#EXTINF:-1 tvg-chno="107" tvg-id="NBC.Sports.Philadelphia.HD.us2" tvg-name="NBC Sports Philadelphia" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32571_dark_360w_270h.png" group-title="TV",NBC Sports Philadelphia #EXTINF:-1 tvg-chno="107" tvg-id="NBC.Sports.Philadelphia.HD.us2" tvg-name="NBC Sports Philadelphia" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32571_dark_360w_270h.png" group-title="TV",NBC Sports Philadelphia
http://mytvstream.net:8080/live/30550113/30550113/20943.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/136477.ts
#EXTINF:-1 tvg-chno="108" 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 #EXTINF:-1 tvg-chno="108" 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://23.237.104.106:8080/USA_NESN/index.m3u8 http://23.237.104.106:8080/USA_NESN/index.m3u8
#EXTINF:-1 tvg-chno="109" 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 #EXTINF:-1 tvg-chno="109" 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://mytvstream.net:8080/live/30550113/30550113/161450.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129931.ts
#EXTINF:-1 tvg-chno="110" tvg-id="NFL.Network.HD.us2" tvg-name="NFL Network" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-network-hz-us.png" group-title="TV",NFL Network #EXTINF:-1 tvg-chno="110" tvg-id="NFL.Network.HD.us2" tvg-name="NFL Network" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-network-hz-us.png" group-title="TV",NFL Network
https://stream.decentdoubts.net/6128524/index.m3u8?token=Mm9QYnQ1ZkpyYWllaEoydWhheUVsOGl1cGNpQW1xcUczNGVZeHRuWHlYL0RxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ== https://stream.decentdoubts.net/6128524/index.m3u8?token=Mm9QYnQ1ZkpyYWllaEoydWhheUVsOGl1cGNpQW1xcUczNGVZeHRuWHlYL0RxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==
@ -334,10 +334,10 @@ https://stream.decentdoubts.net/6128524/index.m3u8?token=Mm9QYnQ1ZkpyYWllaEoydWh
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/23550.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/23550.ts
#EXTINF:-1 tvg-chno="112" tvg-id="NHL.Network.HD.us2" tvg-name="NHL Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58570_dark_360w_270h.png" group-title="TV",NHL Network #EXTINF:-1 tvg-chno="112" tvg-id="NHL.Network.HD.us2" tvg-name="NHL Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58570_dark_360w_270h.png" group-title="TV",NHL Network
http://mytvstream.net:8080/live/30550113/30550113/20179.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/167982.ts
#EXTINF:-1 tvg-chno="113" tvg-id="Nick.Jr.HD.us2" tvg-name="Nick Jr" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s19211_dark_360w_270h.png" group-title="TV",Nick Jr #EXTINF:-1 tvg-chno="113" tvg-id="Nick.Jr.HD.us2" tvg-name="Nick Jr" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s19211_dark_360w_270h.png" group-title="TV",Nick Jr
http://mytvstream.net:8080/live/30550113/30550113/46710.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/137683.ts
#EXTINF:-1 tvg-chno="114" tvg-id="Nickelodeon.HD.us2" tvg-name="Nickelodeon" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png" group-title="TV",Nickelodeon #EXTINF:-1 tvg-chno="114" tvg-id="Nickelodeon.HD.us2" tvg-name="Nickelodeon" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png" group-title="TV",Nickelodeon
http://23.237.104.106:8080/USA_NICKELODEON/index.m3u8 http://23.237.104.106:8080/USA_NICKELODEON/index.m3u8
@ -346,13 +346,13 @@ http://23.237.104.106:8080/USA_NICKELODEON/index.m3u8
http://212.102.60.231/NICKTOONS/index.m3u8 http://212.102.60.231/NICKTOONS/index.m3u8
#EXTINF:-1 tvg-chno="116" tvg-id="Outdoor.Channel.HD.us2" tvg-name="Outdoor Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14776_dark_360w_270h.png" group-title="TV",Outdoor Channel #EXTINF:-1 tvg-chno="116" tvg-id="Outdoor.Channel.HD.us2" tvg-name="Outdoor Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14776_dark_360w_270h.png" group-title="TV",Outdoor Channel
http://23.237.104.106:8080/USA_OUTDOOR/mpegts http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129933.ts
#EXTINF:-1 tvg-chno="117" tvg-id="Ovation.HD.us2" tvg-name="Ovation" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s15807_dark_360w_270h.png" group-title="TV",Ovation #EXTINF:-1 tvg-chno="117" tvg-id="Ovation.HD.us2" tvg-name="Ovation" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s15807_dark_360w_270h.png" group-title="TV",Ovation
http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129935.ts http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129935.ts
#EXTINF:-1 tvg-chno="118" tvg-id="Oxygen.True.Crime.HD.us2" tvg-name="Oxygen" tvg-logo="https://i.gyazo.com/68db5ec4dba40181592406e7c3128fc7.png" group-title="TV",Oxygen #EXTINF:-1 tvg-chno="118" tvg-id="Oxygen.True.Crime.HD.us2" tvg-name="Oxygen" tvg-logo="https://i.gyazo.com/68db5ec4dba40181592406e7c3128fc7.png" group-title="TV",Oxygen
http://89.105.221.127/Oxygen/index.m3u8?token=test http://hardcoremedia.xyz/live/rabdsbmz/3731346838/15912.ts
#EXTINF:-1 tvg-chno="119" tvg-id="Paramount.Network.HD.us2" tvg-name="Paramount Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11163_dark_360w_270h.png" group-title="TV",Paramount Network #EXTINF:-1 tvg-chno="119" tvg-id="Paramount.Network.HD.us2" tvg-name="Paramount Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11163_dark_360w_270h.png" group-title="TV",Paramount Network
http://23.237.104.106:8080/USA_PARAMOUNT_NETWORK/index.m3u8 http://23.237.104.106:8080/USA_PARAMOUNT_NETWORK/index.m3u8
@ -361,7 +361,7 @@ http://23.237.104.106:8080/USA_PARAMOUNT_NETWORK/index.m3u8
https://2-fss-2.streamhoster.com/pl_140/amlst:200914-1298290/playlist.m3u8 https://2-fss-2.streamhoster.com/pl_140/amlst:200914-1298290/playlist.m3u8
#EXTINF:-1 tvg-chno="121" tvg-id="POP.HD.us2" tvg-name="Pop TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16715_dark_360w_270h.png" group-title="TV",Pop TV #EXTINF:-1 tvg-chno="121" tvg-id="POP.HD.us2" tvg-name="Pop TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16715_dark_360w_270h.png" group-title="TV",Pop TV
http://mytvstream.net:8080/live/30550113/30550113/20976.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129943.ts
#EXTINF:-1 tvg-chno="122" tvg-id="Premier.Sports.1.HD.uk" tvg-name="Premier Sports 1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s79027_dark_360w_270h.png" group-title="TV",Premier Sports 1 #EXTINF:-1 tvg-chno="122" tvg-id="Premier.Sports.1.HD.uk" tvg-name="Premier Sports 1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s79027_dark_360w_270h.png" group-title="TV",Premier Sports 1
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/5029.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/5029.ts
@ -391,19 +391,19 @@ https://starshare.st/live/P4B9TB9xR8/humongous2tonight/274.ts
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/23.ts https://starshare.st/live/P4B9TB9xR8/humongous2tonight/23.ts
#EXTINF:-1 tvg-chno="131" tvg-id="Smithsonian.HD.Network.us2" tvg-name="Smithsonian Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58532_dark_360w_270h.png" group-title="TV",Smithsonian Channel #EXTINF:-1 tvg-chno="131" tvg-id="Smithsonian.HD.Network.us2" tvg-name="Smithsonian Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58532_dark_360w_270h.png" group-title="TV",Smithsonian Channel
http://mytvstream.net:8080/live/30550113/30550113/31150.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129953.ts
#EXTINF:-1 tvg-chno="132" tvg-id="Sony.Movie.Channel.HD.us2" tvg-name="Sony Movie Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s69130_dark_360w_270h.png" group-title="TV",Sony Movie Channel #EXTINF:-1 tvg-chno="132" tvg-id="Sony.Movie.Channel.HD.us2" tvg-name="Sony Movie Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s69130_dark_360w_270h.png" group-title="TV",Sony Movie Channel
http://mytvstream.net:8080/live/30550113/30550113/2214.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130020.ts
#EXTINF:-1 tvg-chno="133" 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 #EXTINF:-1 tvg-chno="133" 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://hardcoremedia.xyz/live/rabdsbmz/3731346838/229934.ts
#EXTINF:-1 tvg-chno="134" 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 #EXTINF:-1 tvg-chno="134" 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://mytvstream.net:8080/live/30550113/30550113/31636.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141497.ts
#EXTINF:-1 tvg-chno="135" tvg-id="Spectrum.SportsNet.Lakers.HD.us2" tvg-name="Spectrum SportsNet Lakers" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s77422_dark_360w_270h.png" group-title="TV",Spectrum SportsNet Lakers #EXTINF:-1 tvg-chno="135" tvg-id="Spectrum.SportsNet.Lakers.HD.us2" tvg-name="Spectrum SportsNet Lakers" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s77422_dark_360w_270h.png" group-title="TV",Spectrum SportsNet Lakers
http://mytvstream.net:8080/live/30550113/30550113/21842.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141498.ts
#EXTINF:-1 tvg-chno="136" tvg-id="Sportsman.Channel.us2" tvg-name="Sportsman Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33930_dark_360w_270h.png" group-title="TV",Sportsman Channel #EXTINF:-1 tvg-chno="136" tvg-id="Sportsman.Channel.us2" tvg-name="Sportsman Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33930_dark_360w_270h.png" group-title="TV",Sportsman Channel
http://212.102.60.231/SPORTSMAN_CHANNEL/index.m3u8 http://212.102.60.231/SPORTSMAN_CHANNEL/index.m3u8
@ -421,7 +421,7 @@ http://212.102.60.231/SNY/index.m3u8
https://stream.decentdoubts.net/808/index.m3u8?token=MnJPcXQ1NlRydE9iZ3BqYXNxMjJ5SlNucTV5dG02K0QyNHZJeDZlbmxZVERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm0wNStDbnJOOXJJM0puSytpbkE9PQ== https://stream.decentdoubts.net/808/index.m3u8?token=MnJPcXQ1NlRydE9iZ3BqYXNxMjJ5SlNucTV5dG02K0QyNHZJeDZlbmxZVERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm0wNStDbnJOOXJJM0puSytpbkE9PQ==
#EXTINF:-1 tvg-chno="141" tvg-id="SportsNet.Pittsburgh.HD.us2" tvg-name="SportsNet Pittsburgh" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s26028_dark_360w_270h.png" group-title="TV",SportsNet Pittsburgh #EXTINF:-1 tvg-chno="141" tvg-id="SportsNet.Pittsburgh.HD.us2" tvg-name="SportsNet Pittsburgh" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s26028_dark_360w_270h.png" group-title="TV",SportsNet Pittsburgh
http://mytvstream.net:8080/live/30550113/30550113/108178.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141448.ts
#EXTINF:-1 tvg-chno="142" tvg-id="Starz.HD.us2" tvg-name="Starz" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12719_dark_360w_270h.png" group-title="TV",Starz #EXTINF:-1 tvg-chno="142" tvg-id="Starz.HD.us2" tvg-name="Starz" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12719_dark_360w_270h.png" group-title="TV",Starz
http://23.237.104.106:8080/USA_STARZ/index.m3u8 http://23.237.104.106:8080/USA_STARZ/index.m3u8
@ -436,13 +436,13 @@ http://41.205.93.154/SYFY/index.m3u8
https://turnerlive.warnermediacdn.com/hls/live/2023172/tbseast/slate/VIDEO_0_3564000.m3u8 https://turnerlive.warnermediacdn.com/hls/live/2023172/tbseast/slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-chno="146" tvg-id="Tennis.Channel.HD.us2" tvg-name="Tennis Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s60316_dark_360w_270h.png" group-title="TV",Tennis Channel #EXTINF:-1 tvg-chno="146" tvg-id="Tennis.Channel.HD.us2" tvg-name="Tennis Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s60316_dark_360w_270h.png" group-title="TV",Tennis Channel
http://mytvstream.net:8080/live/30550113/30550113/20184.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/136481.ts
#EXTINF:-1 tvg-chno="147" 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 #EXTINF:-1 tvg-chno="147" 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://hardcoremedia.xyz/live/rabdsbmz/3731346838/8359.ts
#EXTINF:-1 tvg-chno="148" 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 #EXTINF:-1 tvg-chno="148" 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://89.105.221.127/tlc/mpegts?token=test http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129765.ts
#EXTINF:-1 tvg-chno="149" tvg-id="TNT.HD.us2" tvg-name="TNT" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11164_dark_360w_270h.png" group-title="TV",TNT #EXTINF:-1 tvg-chno="149" tvg-id="TNT.HD.us2" tvg-name="TNT" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11164_dark_360w_270h.png" group-title="TV",TNT
https://turnerlive.warnermediacdn.com/hls/live/2023168/tnteast/slate/VIDEO_0_3564000.m3u8 https://turnerlive.warnermediacdn.com/hls/live/2023168/tnteast/slate/VIDEO_0_3564000.m3u8
@ -460,13 +460,13 @@ https://stream.decentdoubts.net/806/index.m3u8?token=MnJPcXQ1NlRydE9iZ3BqYXNxMjJ
https://turnerlive.warnermediacdn.com/hls/live/2023186/tcmeast/noslate/VIDEO_1_5128000.m3u8 https://turnerlive.warnermediacdn.com/hls/live/2023186/tcmeast/noslate/VIDEO_1_5128000.m3u8
#EXTINF:-1 tvg-chno="154" tvg-id="TV.Land.HD.us2" tvg-name="TV Land" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16123_dark_360w_270h.png" group-title="TV",TV Land #EXTINF:-1 tvg-chno="154" tvg-id="TV.Land.HD.us2" tvg-name="TV Land" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16123_dark_360w_270h.png" group-title="TV",TV Land
http://mytvstream.net:8080/live/30550113/30550113/46696.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/130158.ts
#EXTINF:-1 tvg-chno="155" tvg-id="TV.ONE.HD.us2" tvg-name="TV One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s35513_dark_360w_270h.png" group-title="TV",TV One #EXTINF:-1 tvg-chno="155" tvg-id="TV.ONE.HD.us2" tvg-name="TV One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s35513_dark_360w_270h.png" group-title="TV",TV One
http://mytvstream.net:8080/live/30550113/30550113/20868.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129971.ts
#EXTINF:-1 tvg-chno="156" tvg-id="USA.Network.HD.us2" tvg-name="USA East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png" group-title="TV",USA East #EXTINF:-1 tvg-chno="156" tvg-id="USA.Network.HD.us2" tvg-name="USA East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png" group-title="TV",USA East
http://mytvstream.net:8080/live/30550113/30550113/10252.m3u8 http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129973.ts
#EXTINF:-1 tvg-chno="157" tvg-id="VH1.HD.us2" tvg-name="VH1" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11218_dark_360w_270h.png" group-title="TV",VH1 #EXTINF:-1 tvg-chno="157" tvg-id="VH1.HD.us2" tvg-name="VH1" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11218_dark_360w_270h.png" group-title="TV",VH1
http://23.237.104.106:8080/USA_VH1/index.m3u8 http://23.237.104.106:8080/USA_VH1/index.m3u8

File diff suppressed because it is too large Load diff

View file

@ -22,8 +22,7 @@ from scrapers import (
streamhub, streamhub,
streamsgate, streamsgate,
timstreams, timstreams,
totalsportek1, totalsportek,
totalsportek3,
tvapp, tvapp,
volokit, volokit,
watchfooty, watchfooty,
@ -81,11 +80,10 @@ async def main() -> None:
asyncio.create_task(fawa.scrape()), asyncio.create_task(fawa.scrape()),
asyncio.create_task(istreameast.scrape()), asyncio.create_task(istreameast.scrape()),
asyncio.create_task(ovogoal.scrape()), asyncio.create_task(ovogoal.scrape()),
asyncio.create_task(pawa.scrape()), # asyncio.create_task(pawa.scrape()),
asyncio.create_task(shark.scrape()), asyncio.create_task(shark.scrape()),
asyncio.create_task(streambtw.scrape()), asyncio.create_task(streambtw.scrape()),
asyncio.create_task(totalsportek1.scrape()), asyncio.create_task(totalsportek.scrape()),
asyncio.create_task(totalsportek3.scrape()),
asyncio.create_task(tvapp.scrape()), asyncio.create_task(tvapp.scrape()),
asyncio.create_task(volokit.scrape()), asyncio.create_task(volokit.scrape()),
# asyncio.create_task(xstreameast.scrape()), # asyncio.create_task(xstreameast.scrape()),
@ -123,8 +121,7 @@ async def main() -> None:
| streamhub.urls | streamhub.urls
| streamsgate.urls | streamsgate.urls
| timstreams.urls | timstreams.urls
| totalsportek1.urls | totalsportek.urls
| totalsportek3.urls
| tvapp.urls | tvapp.urls
| volokit.urls | volokit.urls
| watchfooty.urls | watchfooty.urls

View file

@ -50,9 +50,7 @@ async def process_event(url: str, url_num: int) -> str | None:
log.info(f"URL {url_num}) Captured M3U8") log.info(f"URL {url_num}) Captured M3U8")
m3u = base64.b64decode(match[1]).decode("utf-8") return base64.b64decode(match[1]).decode("utf-8")
return m3u.split("&remote")[0]
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]: async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:

View file

@ -19,18 +19,14 @@ HTML_CACHE = Cache(f"{TAG}-html", exp=19_800)
BASE_URL = "https://roxiestreams.info" BASE_URL = "https://roxiestreams.info"
SPORT_URLS = { SPORT_ENDPOINTS = {
"Racing": urljoin(BASE_URL, "motorsports"), "fighting": "Fighting",
# "American Football": urljoin(BASE_URL, "nfl"), "mlb": "MLB",
} | { "motorsports": "Racing",
sport: urljoin(BASE_URL, sport.lower()) "nba": "NBA",
for sport in [ # "nfl": "American Football",
"Fighting", "nhl": "NHL",
"MLB", "soccer": "Soccer",
"NBA",
"NHL",
"Soccer",
]
} }
@ -63,7 +59,7 @@ async def refresh_html_cache(
event_dt = Time.from_str(data_start, timezone="PST") event_dt = Time.from_str(data_start, timezone="PST")
event_sport = next((k for k, v in SPORT_URLS.items() if v == url), "Live Event") event_sport = SPORT_ENDPOINTS[sport]
key = f"[{event_sport}] {event} ({TAG})" key = f"[{event_sport}] {event} ({TAG})"
@ -163,13 +159,15 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
if not (events := HTML_CACHE.load()): if not (events := HTML_CACHE.load()):
log.info("Refreshing HTML cache") log.info("Refreshing HTML cache")
sport_urls = {sport: urljoin(BASE_URL, sport) for sport in SPORT_ENDPOINTS}
tasks = [ tasks = [
refresh_html_cache( refresh_html_cache(
url, url,
sport, sport,
now.timestamp(), now.timestamp(),
) )
for sport, url in SPORT_URLS.items() for sport, url in sport_urls.items()
] ]
results = await asyncio.gather(*tasks) results = await asyncio.gather(*tasks)

View file

@ -19,19 +19,16 @@ HTML_CACHE = Cache(f"{TAG}-html", exp=19_800)
BASE_URL = "https://livesports4u.net" BASE_URL = "https://livesports4u.net"
SPORT_ENDPOINTS = [ CATEGORIES = {
f"sport_{sport_id}" # "American Football": "sport_68c02a4465113",
for sport_id in [ "Baseball": "sport_68c02a446582f",
# "68c02a4465113", # American Football "Basketball": "sport_68c02a4466011",
"68c02a446582f", # Baseball "Hockey": "sport_68c02a4466f56",
"68c02a4466011", # Basketball "MMA": "sport_68c02a44674e9",
"68c02a4466f56", # Hockey "Racing": "sport_68c02a4467a48",
"68c02a44674e9", # MMA "Soccer": "sport_68c02a4464a38",
"68c02a4467a48", # Racing "Tennis": "sport_68c02a4468cf7",
"68c02a4464a38", # Soccer }
"68c02a4468cf7", # Tennis
]
]
async def refresh_html_cache( async def refresh_html_cache(
@ -107,7 +104,7 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
now.timestamp(), now.timestamp(),
) )
for date in [now.date(), now.delta(days=1).date()] for date in [now.date(), now.delta(days=1).date()]
for sport_id in SPORT_ENDPOINTS.values() for sport_id in CATEGORIES.values()
] ]
results = await asyncio.gather(*tasks) results = await asyncio.gather(*tasks)

View file

@ -20,19 +20,16 @@ API_FILE = Cache(f"{TAG}-api", exp=19_800)
BASE_URL = "https://streamingon.org" BASE_URL = "https://streamingon.org"
SPORT_URLS = [ SPORT_ENDPOINTS = [
urljoin(BASE_URL, f"data/{sport}.json") "boxing",
for sport in [ # "cfb",
"boxing", "f1",
# "cfb", "mlb",
"f1", "nba",
"mlb", # "nfl",
"nba", "nhl",
# "nfl", "soccer",
"nhl", "ufc",
"soccer",
"ufc",
]
] ]
@ -49,7 +46,13 @@ def get_event(t1: str, t2: str) -> str:
async def refresh_api_cache(now_ts: float) -> list[dict[str, Any]]: async def refresh_api_cache(now_ts: float) -> list[dict[str, Any]]:
tasks = [network.request(url, log=log) for url in SPORT_URLS] tasks = [
network.request(
urljoin(BASE_URL, f"data/{sport}.json"),
log=log,
)
for sport in SPORT_ENDPOINTS
]
results = await asyncio.gather(*tasks) results = await asyncio.gather(*tasks)

View file

@ -11,7 +11,7 @@ log = get_logger(__name__)
urls: dict[str, dict[str, str | float]] = {} urls: dict[str, dict[str, str | float]] = {}
TAG = "TOTALSPRTK3" TAG = "TOTALSPRTK"
CACHE_FILE = Cache(TAG, exp=28_800) CACHE_FILE = Cache(TAG, exp=28_800)
@ -33,29 +33,29 @@ async def process_event(url: str, url_num: int) -> str | None:
soup_1 = HTMLParser(event_data.content) soup_1 = HTMLParser(event_data.content)
if not (iframe_1 := soup_1.css_first("iframe")): if not (iframe_1 := soup_1.css_first("iframe")):
log.warning(f"URL {url_num}) No iframe element found. (IFR1)") log.warning(f"URL {url_num}) No iframe element found.")
return return
if not (iframe_1_src := iframe_1.attributes.get("src")): if not (iframe_1_src := iframe_1.attributes.get("src")):
log.warning(f"URL {url_num}) No iframe source found. (IFR1)") log.warning(f"URL {url_num}) No iframe source found.")
return return
if not (iframe_1_src_data := await network.request(iframe_1_src, log=log)): if not (iframe_1_src_data := await network.request(iframe_1_src, log=log)):
log.warning(f"URL {url_num}) Failed to load iframe source. (IFR1)") log.warning(f"URL {url_num}) Failed to load iframe source.")
return return
soup_2 = HTMLParser(iframe_1_src_data.content) soup_2 = HTMLParser(iframe_1_src_data.content)
if not (iframe_2 := soup_2.css_first("iframe")): if not (iframe_2 := soup_2.css_first("iframe")):
log.warning(f"URL {url_num}) No iframe element found. (IFR2)") log.warning(f"URL {url_num}) No iframe element found.")
return return
if not (iframe_2_src := iframe_2.attributes.get("src")): if not (iframe_2_src := iframe_2.attributes.get("src")):
log.warning(f"URL {url_num}) No iframe source found. (IFR2)") log.warning(f"URL {url_num}) No iframe source found.")
return return
@ -66,14 +66,14 @@ async def process_event(url: str, url_num: int) -> str | None:
headers={"Referer": iframe_1_src}, headers={"Referer": iframe_1_src},
) )
): ):
log.warning(f"URL {url_num}) Failed to load iframe source. (IFR2)") log.warning(f"URL {url_num}) Failed to load iframe source.")
return return
valid_m3u8 = re.compile(r'currentStreamUrl\s+=\s+"([^"]*)"', re.I) valid_m3u8 = re.compile(r'currentStreamUrl\s+=\s+"([^"]*)"', re.I)
if not (match := valid_m3u8.search(iframe_2_src_data.text)): if not (match := valid_m3u8.search(iframe_2_src_data.text)):
log.warning(f"URL {url_num}) No Clappr source found. (IFR2)") log.warning(f"URL {url_num}) No Clappr source found.")
return return

View file

@ -1,170 +0,0 @@
import re
from functools import partial
from urllib.parse import urljoin, urlparse
from selectolax.parser import HTMLParser
from .utils import Cache, Time, get_logger, leagues, network
log = get_logger(__name__)
urls: dict[str, dict[str, str | float]] = {}
TAG = "TOTALSPRTK1"
CACHE_FILE = Cache(TAG, exp=28_800)
BASE_URL = "https://live.totalsportekarmy.com"
def fix_txt(s: str) -> str:
s = " ".join(s.split())
return s.upper() if s.islower() else s
async def process_event(url: str, url_num: int) -> str | None:
if not (event_data := await network.request(url, log=log)):
log.warning(f"URL {url_num}) Failed to load url.")
return
soup_1 = HTMLParser(event_data.content)
if not (iframe := soup_1.css_first("iframe")):
log.warning(f"URL {url_num}) No iframe element found.")
return
if not (iframe_url := iframe.attributes.get("src")):
log.warning(f"URL {url_num}) No iframe source found.")
return
if not (iframe_src := await network.request(iframe_url, log=log)):
log.warning(f"URL {url_num}) Failed to load iframe source.")
return
valid_m3u8 = re.compile(r'const\s+hexEncoded\s+=\s+"([^"]*)"', re.I)
if not (match := valid_m3u8.search(iframe_src.text)):
log.warning(f"URL {url_num}) No Clappr source found.")
return
log.info(f"URL {url_num}) Captured M3U8")
return bytes.fromhex(match[1]).decode("utf-8")
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
events = []
if not (html_data := await network.request(BASE_URL, log=log)):
return events
soup = HTMLParser(html_data.content)
sport = "Live Event"
for node in soup.css("a"):
if not node.attributes.get("class"):
continue
if (parent := node.parent) and "my-1" in parent.attributes.get("class", ""):
if span := node.css_first("span"):
sport = span.text(strip=True)
sport = fix_txt(sport)
if not (teams := [t.text(strip=True) for t in node.css(".col-7 .col-12")]):
continue
if not (href := node.attributes.get("href")):
continue
href = urlparse(href).path if href.startswith("http") else href
if not (time_node := node.css_first(".col-3 span")):
continue
if time_node.text(strip=True).lower() != "matchstarted":
continue
event_name = fix_txt(" vs ".join(teams))
if f"[{sport}] {event_name} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
"event": event_name,
"link": urljoin(BASE_URL, href),
}
)
return events
async def scrape() -> None:
cached_urls = CACHE_FILE.load()
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
valid_count = cached_count = len(valid_urls)
urls.update(valid_urls)
log.info(f"Loaded {cached_count} event(s) from cache")
log.info(f'Scraping from "{BASE_URL}"')
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
for i, ev in enumerate(events, start=1):
handler = partial(
process_event,
url=(link := ev["link"]),
url_num=i,
)
url = await network.safe_process(
handler,
url_num=i,
semaphore=network.HTTP_S,
log=log,
)
sport, event = ev["sport"], ev["event"]
key = f"[{sport}] {event} ({TAG})"
tvg_id, logo = leagues.get_tvg_info(sport, event)
entry = {
"url": url,
"logo": logo,
"base": link,
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
"link": link,
}
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -194,13 +194,6 @@ class Leagues:
else self.info("Hockey") else self.info("Hockey")
) )
case "Baseball" | "MLB":
return (
self.info("MLB")
if self.is_valid(event, "MLB")
else self.info("Baseball")
)
case _: case _:
return self.info(sport) return self.info(sport)

View file

@ -1,13 +1,5 @@
{ {
"leagues": { "leagues": {
"Baseball.Dummy.us": [
{
"BASEBALL": {
"logo": "https://i.gyazo.com/3e1119df65dee3290afdad55b84ac332.webp",
"names": ["WBC", "WORLD BASEBALL CLASSIC"]
}
}
],
"Basketball.Dummy.us": [ "Basketball.Dummy.us": [
{ {
"BASKETBALL": { "BASKETBALL": {
@ -48,7 +40,7 @@
{ {
"MLB": { "MLB": {
"logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/mlb.png", "logo": "https://a.espncdn.com/combiner/i?img=/i/teamlogos/leagues/500/mlb.png",
"names": ["MAJOR LEAGUE BASEBALL", "MLB PLAYOFFS"] "names": ["BASEBALL", "MAJOR LEAGUE BASEBALL", "MLB PLAYOFFS"]
} }
} }
], ],
@ -835,102 +827,6 @@
] ]
}, },
"teams": { "teams": {
"MLB": [
"Angels",
"Arizona",
"Arizona Diamondbacks",
"Astros",
"Athletics",
"Atlanta",
"Atlanta Braves",
"Baltimore",
"Baltimore Orioles",
"Blue Jays",
"Boston",
"Boston Red Sox",
"Braves",
"Cardinals",
"Chicago",
"Chicago Cubs",
"Chicago White Sox",
"Cincinnati",
"Cincinnati Reds",
"Cleveland Guardians",
"Colorado",
"Colorado Rockies",
"Cubs",
"D-Backs",
"DBacks",
"Detroit",
"Detroit Tigers",
"Diamondbacks",
"Dodgers",
"Giants",
"Guardians",
"Houston",
"Houston Astros",
"Jays",
"KC Royals",
"Kansas City",
"Kansas City Royals",
"LA Angels",
"LA Dodgers",
"Los Angeles Angels",
"Los Angeles Dodgers",
"Mariners",
"Marlins",
"Mets",
"Miami",
"Miami Marlins",
"Minnesota",
"Minnesota Twins",
"NY Mets",
"NY Yankees",
"NYM",
"NYY",
"Nationals",
"New York",
"New York Mets",
"New York Yankees",
"Oakland",
"Oakland Athletics",
"Orioles",
"Padres",
"Philadelphia",
"Philadelphia Phillies",
"Phillies",
"Pirates",
"Pittsburgh",
"Pittsburgh Pirates",
"Rangers",
"Rays",
"Red Sons",
"Reds",
"Rockies",
"Royals",
"San Diego",
"San Diego Padres",
"San Francisco",
"San Francisco Giants",
"Seattle",
"Seattle Mariners",
"St Louis",
"St Louis Cardinals",
"St. Louis",
"St. Louis Cardinals",
"Tampa Bay",
"Tampa Bay Rays",
"Texas",
"Texas Rangers",
"Tigers",
"Toronto",
"Toronto Blue Jays",
"Twins",
"Washington",
"Washington Nationals",
"White Sox",
"Yankees"
],
"NBA": [ "NBA": [
"76ers", "76ers",
"Atlanta", "Atlanta",

View file

@ -17,14 +17,10 @@ CACHE_FILE = Cache(TAG, exp=19_800)
BASE_URL = "http://volokit.xyz" BASE_URL = "http://volokit.xyz"
SPORT_URLS = { SPORT_ENDPOINTS = {
sport: urljoin(BASE_URL, f"sport/{sport.lower()}/") "mlb": "MLB",
for sport in [ # "nfl": "NFL",
"MLB", "nhl": "NHL",
"NHL",
# "NFL",
"WBC",
]
} }
@ -74,7 +70,11 @@ async def process_event(url: str, url_num: int) -> str | None:
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]: async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
tasks = [network.request(url, log=log) for url in SPORT_URLS.values()] sport_urls = {
sport.upper(): urljoin(BASE_URL, f"sport/{sport}/") for sport in SPORT_ENDPOINTS
}
tasks = [network.request(url, log=log) for url in sport_urls.values()]
results = await asyncio.gather(*tasks) results = await asyncio.gather(*tasks)
@ -95,7 +95,7 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
name = fix_event(name_node.text(strip=True)) name = fix_event(name_node.text(strip=True))
sport = next((k for k, v in SPORT_URLS.items() if v == url), "Live Event") sport = next((k for k, v in sport_urls.items() if v == url), "Live Event")
if f"[{sport}] {name} ({TAG})" in cached_keys: if f"[{sport}] {name} ({TAG})" in cached_keys:
continue continue

View file

@ -17,17 +17,14 @@ CACHE_FILE = Cache(TAG, exp=10_800)
BASE_URL = "https://xstreameast.com" BASE_URL = "https://xstreameast.com"
SPORT_URLS = [ SPORT_ENDPOINTS = [
urljoin(BASE_URL, f"categories/{sport}/") # "mlb",
for sport in [ "mma",
# "mlb", "nba",
"mma", # "nfl",
"nba", # "nhl",
# "nfl", "soccer",
# "nhl", "wwe",
"soccer",
"wwe",
]
] ]
@ -69,7 +66,13 @@ async def process_event(url: str, url_num: int) -> tuple[str | None, str | None]
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]: async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
tasks = [network.request(url, log=log) for url in SPORT_URLS] tasks = [
network.request(
urljoin(BASE_URL, f"categories/{sport}/"),
log=log,
)
for sport in SPORT_ENDPOINTS
]
results = await asyncio.gather(*tasks) results = await asyncio.gather(*tasks)

View file

@ -1,21 +1,11 @@
## Base Log @ 2026-03-05 09:05 UTC ## Base Log @ 2026-03-04 09:02 UTC
### ✅ Working Streams: 149<br>❌ Dead Streams: 12 ### ✅ Working Streams: 159<br>❌ Dead Streams: 2
| Channel | Error (Code) | Link | | Channel | Error (Code) | Link |
| ------- | ------------ | ---- | | ------- | ------------ | ---- |
| Altitude Sports | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/79545.m3u8` | | Altitude Sports | HTTP Error (403) | `http://hardcoremedia.xyz/live/rabdsbmz/3731346838/141447.ts` |
| CNBC | HTTP Error (404) | `http://41.205.93.154/CNBC/index.m3u8` | | Space City Home Network | HTTP Error (403) | `http://hardcoremedia.xyz/live/rabdsbmz/3731346838/229934.ts` |
| Cozi TV | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/11868.m3u8` |
| Discovery Family Channel | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/57347.m3u8` |
| FDSN Florida | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/46794.m3u8` |
| FDSN Oklahoma | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/20934.m3u8` |
| FDSN SoCal | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/221151.m3u8` |
| FDSN Wisconsin | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/78599.m3u8` |
| NHL Network | HTTP Error (000) | `http://mytvstream.net:8080/live/30550113/30550113/20179.m3u8` |
| Smithsonian Channel | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/31150.m3u8` |
| Space City Home Network | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/213668.m3u8` |
| SportsNet Pittsburgh | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/108178.m3u8` |
--- ---
#### Base Channels URL #### Base Channels URL
``` ```