Compare commits

..

No commits in common. "fb9b5016ac6dcc6bf563957a2a48b14d04e1a71d" and "01c12438aac8fd9f0597207b49cc3a970399e114" have entirely different histories.

14 changed files with 128395 additions and 133722 deletions

File diff suppressed because it is too large Load diff

250795
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -387,101 +387,98 @@ http://23.237.104.106:8080/USA_SHOWTIME/index.m3u8
#EXTINF:-1 tvg-chno="129" tvg-id="Showtime.Extreme.HD.us2" tvg-name="Showtime Extreme" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18086_dark_360w_270h.png" group-title="TV",Showtime Extreme #EXTINF:-1 tvg-chno="129" tvg-id="Showtime.Extreme.HD.us2" tvg-name="Showtime Extreme" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18086_dark_360w_270h.png" group-title="TV",Showtime Extreme
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/12036 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/12036
#EXTINF:-1 tvg-chno="130" tvg-id="Sky.Sports.Football.HD.uk" tvg-name="Sky Sports Football" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s104327_dark_360w_270h.png" group-title="TV",Sky Sports Football #EXTINF:-1 tvg-chno="130" tvg-id="SkySp.News.HD.uk" tvg-name="Sky Sports News" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/GNLZZGG0027JYG2.png_dark_360w_270h.png" group-title="TV",Sky Sports News
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/304771
#EXTINF:-1 tvg-chno="131" tvg-id="SkySp.News.HD.uk" tvg-name="Sky Sports News" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/GNLZZGG0027JYG2.png_dark_360w_270h.png" group-title="TV",Sky Sports News
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/304775 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/304775
#EXTINF:-1 tvg-chno="132" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8585 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8585
#EXTINF:-1 tvg-chno="133" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/5831 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/5831
#EXTINF:-1 tvg-chno="134" 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/88623297/04243674/213668.m3u8 http://mytvstream.net:8080/live/88623297/04243674/213668.m3u8
#EXTINF:-1 tvg-chno="135" 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/88623297/04243674/31636.m3u8 http://mytvstream.net:8080/live/88623297/04243674/31636.m3u8
#EXTINF:-1 tvg-chno="136" 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/88623297/04243674/21842.m3u8 http://mytvstream.net:8080/live/88623297/04243674/21842.m3u8
#EXTINF:-1 tvg-chno="137" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/30847 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/30847
#EXTINF:-1 tvg-chno="138" tvg-id="Sportsnet.360.HD.ca2" tvg-name="Sportsnet 360" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49952_dark_360w_270h.png" group-title="TV",Sportsnet 360 #EXTINF:-1 tvg-chno="137" tvg-id="Sportsnet.360.HD.ca2" tvg-name="Sportsnet 360" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49952_dark_360w_270h.png" group-title="TV",Sportsnet 360
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3377 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3377
#EXTINF:-1 tvg-chno="139" tvg-id="Sportsnet.East.ca2" tvg-name="Sportsnet East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62109_dark_360w_270h.png" group-title="TV",Sportsnet East #EXTINF:-1 tvg-chno="138" tvg-id="Sportsnet.East.ca2" tvg-name="Sportsnet East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s62109_dark_360w_270h.png" group-title="TV",Sportsnet East
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/1720 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/1720
#EXTINF:-1 tvg-chno="140" tvg-id="SNY.SportsNet.New.York.HD.us2" tvg-name="SportsNet New York" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50038_dark_360w_270h.png" group-title="TV",SportsNet New York #EXTINF:-1 tvg-chno="139" tvg-id="SNY.SportsNet.New.York.HD.us2" tvg-name="SportsNet New York" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s50038_dark_360w_270h.png" group-title="TV",SportsNet New York
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/267219 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/267219
#EXTINF:-1 tvg-chno="141" tvg-id="Sportsnet.One.ca2" tvg-name="Sportsnet One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68859_dark_360w_270h.png" group-title="TV",Sportsnet One #EXTINF:-1 tvg-chno="140" tvg-id="Sportsnet.One.ca2" tvg-name="Sportsnet One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68859_dark_360w_270h.png" group-title="TV",Sportsnet One
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3378 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3378
#EXTINF:-1 tvg-chno="142" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/59945 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/59945
#EXTINF:-1 tvg-chno="143" 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
#EXTINF:-1 tvg-chno="144" tvg-id="Starz.Encore.Classic.us2" tvg-name="Starz Encore Classic" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14764_dark_360w_270h.png" group-title="TV",Starz Encore Classic #EXTINF:-1 tvg-chno="143" tvg-id="Starz.Encore.Classic.us2" tvg-name="Starz Encore Classic" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14764_dark_360w_270h.png" group-title="TV",Starz Encore Classic
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/25816 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/25816
#EXTINF:-1 tvg-chno="145" tvg-id="Syfy.HD.us2" tvg-name="Syfy" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11097_dark_360w_270h.png" group-title="TV",Syfy #EXTINF:-1 tvg-chno="144" tvg-id="Syfy.HD.us2" tvg-name="Syfy" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11097_dark_360w_270h.png" group-title="TV",Syfy
http://23.237.104.106:8080/USA_SYFY/index.m3u8 http://23.237.104.106:8080/USA_SYFY/index.m3u8
#EXTINF:-1 tvg-chno="146" tvg-id="TBS.HD.us2" tvg-name="TBS" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11867_dark_360w_270h.png" group-title="TV",TBS #EXTINF:-1 tvg-chno="145" tvg-id="TBS.HD.us2" tvg-name="TBS" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11867_dark_360w_270h.png" group-title="TV",TBS
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="147" 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
https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01444-tennischannelth-tennischnlintl-lggb/playlist.m3u8 https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01444-tennischannelth-tennischnlintl-lggb/playlist.m3u8
#EXTINF:-1 tvg-chno="148" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2361 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2361
#EXTINF:-1 tvg-chno="149" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2362 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2362
#EXTINF:-1 tvg-chno="150" 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
#EXTINF:-1 tvg-chno="151" tvg-id="truTV.HD.us2" tvg-name="truTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10153_dark_360w_270h.png" group-title="TV",truTV #EXTINF:-1 tvg-chno="150" tvg-id="truTV.HD.us2" tvg-name="truTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10153_dark_360w_270h.png" group-title="TV",truTV
https://turnerlive.warnermediacdn.com/hls/live/2023176/trueast/slate/VIDEO_0_3564000.m3u8 https://turnerlive.warnermediacdn.com/hls/live/2023176/trueast/slate/VIDEO_0_3564000.m3u8
#EXTINF:-1 tvg-chno="152" tvg-id="TSN.1.ca2" tvg-name="TSN1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11182_dark_360w_270h.png" group-title="TV",TSN1 #EXTINF:-1 tvg-chno="151" tvg-id="TSN.1.ca2" tvg-name="TSN1" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11182_dark_360w_270h.png" group-title="TV",TSN1
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/770 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/770
#EXTINF:-1 tvg-chno="153" tvg-id="TSN.2.ca2" tvg-name="TSN2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61474_dark_360w_270h.png" group-title="TV",TSN2 #EXTINF:-1 tvg-chno="152" tvg-id="TSN.2.ca2" tvg-name="TSN2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61474_dark_360w_270h.png" group-title="TV",TSN2
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/771 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/771
#EXTINF:-1 tvg-chno="154" tvg-id="Turner.Classic.Movies.HD.us2" tvg-name="Turner Classic Movies" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12852_dark_360w_270h.png" group-title="TV",Turner Classic Movies #EXTINF:-1 tvg-chno="153" tvg-id="Turner.Classic.Movies.HD.us2" tvg-name="Turner Classic Movies" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12852_dark_360w_270h.png" group-title="TV",Turner Classic Movies
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="155" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2364 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2364
#EXTINF:-1 tvg-chno="156" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/13010 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/13010
#EXTINF:-1 tvg-chno="157" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3390 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3390
#EXTINF:-1 tvg-chno="158" 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
#EXTINF:-1 tvg-chno="159" tvg-id="Vice.HD.us2" tvg-name="Vice TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18822_dark_360w_270h.png" group-title="TV",Vice TV #EXTINF:-1 tvg-chno="158" tvg-id="Vice.HD.us2" tvg-name="Vice TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18822_dark_360w_270h.png" group-title="TV",Vice TV
http://23.237.104.106:8080/USA_VICETV/index.m3u8 http://23.237.104.106:8080/USA_VICETV/index.m3u8
#EXTINF:-1 tvg-chno="160" tvg-id="WE.tv.HD.us2" tvg-name="We Tv" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16409_dark_360w_270h.png" group-title="TV",We Tv #EXTINF:-1 tvg-chno="159" tvg-id="WE.tv.HD.us2" tvg-name="We Tv" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16409_dark_360w_270h.png" group-title="TV",We Tv
http://23.237.104.106:8080/USA_WE_TV/index.m3u8 http://23.237.104.106:8080/USA_WE_TV/index.m3u8
#EXTINF:-1 tvg-chno="161" tvg-id="Willow.Cricket.HD.us2" tvg-name="Willow Cricket" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68605_dark_360w_270h.png" group-title="TV",Willow Cricket #EXTINF:-1 tvg-chno="160" tvg-id="Willow.Cricket.HD.us2" tvg-name="Willow Cricket" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s68605_dark_360w_270h.png" group-title="TV",Willow Cricket
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296763 http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296763
#EXTINF:-1 tvg-chno="162" tvg-id="Yes.Network.us2" tvg-name="YES Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30017_dark_360w_270h.png" group-title="TV",YES Network #EXTINF:-1 tvg-chno="161" tvg-id="Yes.Network.us2" tvg-name="YES Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30017_dark_360w_270h.png" group-title="TV",YES Network
http://23.237.104.106:8080/USA_YES_NETWORK/index.m3u8 http://23.237.104.106:8080/USA_YES_NETWORK/index.m3u8

File diff suppressed because it is too large Load diff

View file

@ -10,6 +10,7 @@ from scrapers import (
fawa, fawa,
fsports, fsports,
istreameast, istreameast,
livetvsx,
mainportal, mainportal,
ovogoal, ovogoal,
pawa, pawa,
@ -69,6 +70,7 @@ async def main() -> None:
httpx_tasks = [ httpx_tasks = [
asyncio.create_task(fawa.scrape()), asyncio.create_task(fawa.scrape()),
asyncio.create_task(istreameast.scrape()), asyncio.create_task(istreameast.scrape()),
# asyncio.create_task(livetvsx.scrape()),
asyncio.create_task(mainportal.scrape()), asyncio.create_task(mainportal.scrape()),
asyncio.create_task(ovogoal.scrape()), asyncio.create_task(ovogoal.scrape()),
asyncio.create_task(pawa.scrape()), asyncio.create_task(pawa.scrape()),
@ -101,6 +103,7 @@ async def main() -> None:
| fawa.urls | fawa.urls
| fsports.urls | fsports.urls
| istreameast.urls | istreameast.urls
| livetvsx.urls
| mainportal.urls | mainportal.urls
| ovogoal.urls | ovogoal.urls
| pawa.urls | pawa.urls

View file

@ -124,7 +124,7 @@ async def scrape(browser: Browser) -> None:
entry = { entry = {
"url": url, "url": url,
"logo": logo, "logo": logo,
"base": "https://hoca6.com/", "base": "https://exposestrat.com/",
"timestamp": ts, "timestamp": ts,
"id": tvg_id or "Live.Event.us", "id": tvg_id or "Live.Event.us",
"link": link, "link": link,

View file

@ -104,7 +104,7 @@ async def scrape(browser: Browser) -> None:
entry = { entry = {
"url": url, "url": url,
"logo": logo, "logo": logo,
"base": "https://hoca6.com/", "base": "https://exposestrat.com/",
"timestamp": now.timestamp(), "timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us", "id": tvg_id or "Live.Event.us",
"link": link, "link": link,

193
M3U8/scrapers/livetvsx.py Normal file
View file

@ -0,0 +1,193 @@
import re
from functools import partial
from urllib.parse import urljoin
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 = "LTVSX"
CACHE_FILE = Cache(TAG, exp=3_600)
BASE_URL = "https://livetv.sx"
async def process_event(url: str, url_num: int) -> tuple[str | None, str | None]:
nones = None, None
r = await network.unvd_client.get(url)
if r.status_code != 200:
log.warning(f"{url_num}) Failed to get event data.")
return nones
soup_1 = HTMLParser(r.content)
for a_elem in soup_1.css("a"):
if not (src_title := a_elem.attributes.get("title")) or (
"aliez" not in src_title.lower()
):
continue
href = a_elem.attributes["href"]
event_url = href if href.startswith("http") else f"https:{href}"
break
else:
log.warning(f"URL {url_num}) No valid sources found.")
return nones
if not (ev_data := await network.request(event_url, log=log)):
log.warning(f"URL {url_num}) Failed to load url. (EVD2)")
return nones
soup_2 = HTMLParser(ev_data.content)
ifr_1 = soup_2.css_first("tr > td > iframe")
if not ifr_1 or not (ifr_1_src := ifr_1.attributes.get("src")):
log.warning(f"URL {url_num}) No iframe element found.")
return nones
ifr_1_src = "".join(
(ifr_1_src if ifr_1_src.startswith("http") else f"https:{ifr_1_src}").split()
)
if not (ev_data_3 := await network.request(ifr_1_src, log=log)):
log.warning(f"URL {url_num}) Failed to load url. (EVD3)")
return nones
pattern = re.compile(r'pl\.init\((\'|\")([^"]*)(\'|\")\)', re.I)
if not (match := pattern.search(ev_data_3.text)):
log.warning(f"URL {url_num}) No M3U8 source found.")
return nones
log.info(f"URL {url_num}) Captured M3U8")
m3u: str = match[2] if match[2].startswith("http") else f"https:{match[2]}"
return m3u, ifr_1_src
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
events = []
r = await network.unvd_client.get(
urljoin(BASE_URL, "export/webmasters.php"),
params={"lang": "en"},
)
if r.status_code != 200:
log.warning("Failed to get php data.")
return events
soup = HTMLParser(r.content)
if not (table := soup.css_first("table.tbl")):
return events
for row in table.css("tr > td"):
if not (event_tbl := row.css_first("table")):
continue
sport_elem = event_tbl.css_first(".spr")
league_elem = event_tbl.css_first(".cmp")
link_elem = event_tbl.css_first("a.title")
event_id_elem = row.css_first("div[id^='el']")
if not (league_elem and sport_elem and link_elem and event_id_elem):
continue
elif not (event_id := event_id_elem.attributes.get("id")):
continue
sport = sport_elem.text(strip=True)
league = league_elem.text(strip=True)
event_name = link_elem.text(strip=True)
if f"[{sport} - {league}] {event_name} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
"league": league,
"event": event_name,
"link": urljoin(BASE_URL, f"cache/links/en.{event_id[2:]}.html"),
}
)
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('Scraping from "https://livetv.sx/enx/"')
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, iframe = await network.safe_process(
handler,
url_num=i,
semaphore=network.HTTP_S,
log=log,
)
sport, league, event = (
ev["sport"],
ev["league"],
ev["event"],
)
key = f"[{sport} - {league}] {event} ({TAG})"
tvg_id, logo = leagues.get_tvg_info(sport, event)
entry = {
"url": url,
"logo": logo,
"base": iframe,
"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

@ -10,7 +10,7 @@ urls: dict[str, dict[str, str | float]] = {}
TAG = "STRMCNTR" TAG = "STRMCNTR"
CACHE_FILE = Cache(TAG, exp=86_400) CACHE_FILE = Cache(TAG, exp=28_800)
API_URL = "https://backend.streamcenter.live/api/Parties" API_URL = "https://backend.streamcenter.live/api/Parties"

View file

@ -97,14 +97,9 @@ async def process_event(
pass pass
if captured: if captured:
if "smarthard.click" not in (m3u8 := captured[0]).lower():
log.warning(f"URL {url_num}) Invalid M3U8 found.")
return
log.info(f"URL {url_num}) Captured M3U8") log.info(f"URL {url_num}) Captured M3U8")
return m3u8 return captured[0]
log.warning(f"URL {url_num}) No M3U8 captured after waiting.") log.warning(f"URL {url_num}) No M3U8 captured after waiting.")

View file

@ -14,7 +14,7 @@ urls: dict[str, dict[str, str | float]] = {}
TAG = "STRMSGATE" TAG = "STRMSGATE"
CACHE_FILE = Cache(TAG, exp=19_800) CACHE_FILE = Cache(TAG, exp=28_800)
BASE_URL = "https://streamsgates.io" BASE_URL = "https://streamsgates.io"

File diff suppressed because it is too large Load diff

View file

@ -3,9 +3,6 @@ UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Ge
MAX_JOBS=10 MAX_JOBS=10
BASE_FILE="./M3U8/base.m3u8" BASE_FILE="./M3U8/base.m3u8"
README="./readme.md" README="./readme.md"
[[ ! -f "$BASE_FILE" ]] && exit 1
STATUSLOG=$(mktemp) STATUSLOG=$(mktemp)
get_status() { get_status() {
@ -140,6 +137,8 @@ write_readme() {
} >"$README" } >"$README"
} }
[[ ! -f "$BASE_FILE" ]] && exit 1
check_links check_links
write_readme write_readme
rm "$STATUSLOG" rm "$STATUSLOG"

View file

@ -1,16 +1,10 @@
## Base Log @ 2026-05-03 15:10 UTC ## Base Log @ 2026-05-02 15:31 UTC
### ✅ Working Streams: 155<br>❌ Dead Streams: 7 ### ✅ Working Streams: 160<br>❌ Dead Streams: 1
| Channel | Error (Code) | Link | | Channel | Error (Code) | Link |
| ------- | ------------ | ---- | | ------- | ------------ | ---- |
| ESPN | HTTP Error (404) | `http://41.205.93.154/ESPN/index.m3u8` |
| FDSN SoCal | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296681` | | FDSN SoCal | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296681` |
| NBC Sports Boston | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/35132` |
| NewsNation | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/6296` |
| Nick Jr | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/14835` |
| Smithsonian Channel | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8585` |
| SportsNet New York | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/267219` |
--- ---
#### Base Channels URL #### Base Channels URL
``` ```