mirror of
https://github.com/doms9/iptv.git
synced 2026-06-15 12:46:27 +02:00
Compare commits
No commits in common. "fb9b5016ac6dcc6bf563957a2a48b14d04e1a71d" and "01c12438aac8fd9f0597207b49cc3a970399e114" have entirely different histories.
fb9b5016ac
...
01c12438aa
14 changed files with 128395 additions and 133722 deletions
4755
M3U8/TV.m3u8
4755
M3U8/TV.m3u8
File diff suppressed because it is too large
Load diff
250795
M3U8/TV.xml
250795
M3U8/TV.xml
File diff suppressed because one or more lines are too long
|
|
@ -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
|
||||||
|
|
|
||||||
4688
M3U8/events.m3u8
4688
M3U8/events.m3u8
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
193
M3U8/scrapers/livetvsx.py
Normal 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)
|
||||||
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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"
|
||||||
|
|
|
||||||
10
readme.md
10
readme.md
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue