Compare commits

..

No commits in common. "c5b8bcda06513a7273ede2b0c3947b89d4b79852" and "1fc683d5fc59609c3d98ae6d64d5b6d73815f5ca" have entirely different histories.

16 changed files with 117973 additions and 114951 deletions

File diff suppressed because it is too large Load diff

226755
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,7 @@
#EXTM3U url-tvg="https://raw.githubusercontent.com/doms9/iptv/refs/heads/default/M3U8/TV.xml"
#EXTINF:-1 tvg-chno="1" tvg-id="A.and.E.HD.East.us2" tvg-name="A&E TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s51529_dark_360w_270h.png" group-title="TV",A&E TV
http://23.239.31.26:8989/aande/index.m3u8
http://89.105.221.127/AandE/index.m3u8?token=test
#EXTINF:-1 tvg-chno="2" tvg-id="WFTS-DT.us_locals1" 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/1758/index.m3u8
@ -13,7 +13,7 @@ http://23.237.104.106:8080/USA_ACCN/mpegts
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
http://mytvstream.net:8080/live/5AGbfz/324331/79545.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/79545.m3u8
#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://23.239.31.26:8989/amc/index.m3u8
@ -22,10 +22,10 @@ http://23.239.31.26:8989/amc/index.m3u8
http://23.237.104.106:8080/USA_ANIMAL_PLANET/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
http://mytvstream.net:8080/live/5AGbfz/324331/20180.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/20180.m3u8
#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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/150605
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/150605.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
http://23.239.31.26:8989/axstv/index.m3u8
@ -58,7 +58,7 @@ http://41.205.93.154/BRAVO/index.m3u8
https://buzzrota-web.amagi.tv/playlist.m3u8
#EXTINF:-1 tvg-chno="20" tvg-id="CSPAN.us2" tvg-name="C-SPAN" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10161_dark_360w_270h.png" group-title="TV",C-SPAN
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/14804
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/14804.ts
#EXTINF:-1 tvg-chno="21" tvg-id="Cartoon.Network.HD.us2" tvg-name="Cartoon Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12131_dark_360w_270h.png" group-title="TV",Cartoon Network
http://23.237.104.106:8080/USA_CARTOON_NETWORK/index.m3u8
@ -73,7 +73,7 @@ https://cbsn-us.cbsnstream.cbsnews.com/out/v1/55a8648e8f134e82a470f83d562deeca/m
https://dai.google.com/linear/hls/event/GxrCGmwST0ixsrc_QgB6qw/master.m3u8
#EXTINF:-1 tvg-chno="25" tvg-id="CBS.Sports.Network.HD.us2" tvg-name="CBS Sports Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16365_dark_360w_270h.png" group-title="TV",CBS Sports Network
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/267357
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/267357.ts
#EXTINF:-1 tvg-chno="26" tvg-id="Cinemax.HD.us2" tvg-name="Cinemax" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s34933_dark_360w_270h.png" group-title="TV",Cinemax
http://23.237.104.106:8080/USA_CINEMAX/index.m3u8
@ -85,7 +85,7 @@ http://supersonictv.live:8080/317136/Kennzack1218/86101
http://23.237.104.106:8080/USA_CMT/index.m3u8
#EXTINF:-1 tvg-chno="29" tvg-id="CNBC.HD.us2" tvg-name="CNBC" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10139_dark_360w_270h.png" group-title="TV",CNBC
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2295
http://89.105.221.127/CNBC/index.m3u8?token=test
#EXTINF:-1 tvg-chno="30" tvg-id="CNN.HD.us2" tvg-name="CNN" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58646_dark_360w_270h.png" group-title="TV",CNN
https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_3564000.m3u8
@ -94,7 +94,7 @@ https://turnerlive.warnermediacdn.com/hls/live/586495/cnngo/cnn_slate/VIDEO_0_35
http://23.237.104.106:8080/USA_COMEDY_CENTRAL/index.m3u8
#EXTINF:-1 tvg-chno="32" tvg-id="Comedy.TV.HD.us2" tvg-name="Comedy TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82470_dark_360w_270h.png" group-title="TV",Comedy TV
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/199482
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/199482.ts
#EXTINF:-1 tvg-chno="33" tvg-id="Comet.us2" tvg-name="Comet TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s97051_dark_360w_270h.png" group-title="TV",Comet TV
https://fast-channels.sinclairstoryline.com/COMET/index.m3u8
@ -106,28 +106,28 @@ http://23.237.104.106:8080/USA_COOKING/index.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8392
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8392.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
http://23.237.104.106:8080/USA_CRIME_INVESTIGATION/mpegts
#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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/171820
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/171820.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
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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2300
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2300.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/201208
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/201208.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2301
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2301.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2303
http://89.105.221.127/Disney/index.m3u8?token=test
#EXTINF:-1 tvg-chno="44" tvg-id="Disney.XD.HD.us2" tvg-name="Disney XD" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18279_dark_360w_270h.png" group-title="TV",Disney XD
http://23.237.104.106:8080/USA_DISNEY_XD/index.m3u8
@ -136,55 +136,55 @@ http://23.237.104.106:8080/USA_DISNEY_XD/index.m3u8
http://23.237.104.106:8080/USA_E/index.m3u8
#EXTINF:-1 tvg-chno="46" tvg-id="ESPN.HD.us2" tvg-name="ESPN" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10179_dark_360w_270h.png" group-title="TV",ESPN
http://41.205.93.154/ESPN/index.m3u8
http://89.105.221.127/ESPN1/index.m3u8?token=test
#EXTINF:-1 tvg-chno="47" tvg-id="ESPNEWS.HD.us2" tvg-name="ESPN News" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16485_dark_360w_270h.png" group-title="TV",ESPN News
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2312
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2312.ts
#EXTINF:-1 tvg-chno="48" tvg-id="ESPNU.HD.us2" tvg-name="ESPN U" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s45654_dark_360w_270h.png" group-title="TV",ESPN U
http://23.237.104.106:8080/USA_ESPNU/index.m3u8
#EXTINF:-1 tvg-chno="49" tvg-id="ESPN2.HD.us2" tvg-name="ESPN2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12444_dark_360w_270h.png" group-title="TV",ESPN2
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/41918
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/41918.ts
#EXTINF:-1 tvg-chno="50" tvg-id="FanDuel.Sports.Network.Detroit.HD.us" tvg-name="FDSN Detroit" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s54286_dark_360w_270h.png" group-title="TV",FDSN Detroit
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/6463
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6463.ts
#EXTINF:-1 tvg-chno="51" tvg-id="FanDuel.Sports.Network.Florida.-.North.Florida.HD.us" tvg-name="FDSN Florida" tvg-logo="https://i.gyazo.com/fad701fbaaafe161b13b23ed9b50179b.png" group-title="TV",FDSN Florida
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296662
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296662.ts
#EXTINF:-1 tvg-chno="52" tvg-id="FanDuel.Sports.Network.Midwest.St..Louis.us" tvg-name="FDSN Midwest" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11058_dark_360w_270h.png" group-title="TV",FDSN Midwest
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/58557
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/58557.ts
#EXTINF:-1 tvg-chno="53" tvg-id="FanDuel.Sports.Network.North.us" tvg-name="FDSN North" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10977_dark_360w_270h.png" group-title="TV",FDSN North
http://mytvstream.net:8080/live/5AGbfz/324331/20928.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/20928.m3u8
#EXTINF:-1 tvg-chno="54" tvg-id="FanDuel.Sports.Network.Ohio.-.Cleveland.us" tvg-name="FDSN Ohio" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49691_dark_360w_270h.png" group-title="TV",FDSN Ohio
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296675
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296675.ts
#EXTINF:-1 tvg-chno="55" tvg-id="FanDuel.Sports.Network.Oklahoma.us" tvg-name="FDSN Oklahoma" tvg-logo="https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png" group-title="TV",FDSN Oklahoma
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/6452
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6452.ts
#EXTINF:-1 tvg-chno="56" tvg-id="FanDuel.Sports.Network.SoCal.us" tvg-name="FDSN SoCal" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16743_dark_360w_270h.png" group-title="TV",FDSN SoCal
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296681
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296681.ts
#EXTINF:-1 tvg-chno="57" tvg-id="FanDuel.Sports.Network.South.us" tvg-name="FDSN South" tvg-logo="https://i.gyazo.com/4d9dc12af42d7bca785878215367d5b2.png" group-title="TV",FDSN South
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/277374
http://23.239.31.26:8989/ballysportssouth/index.m3u8
#EXTINF:-1 tvg-chno="58" tvg-id="FanDuel.Sports.Network.Southeast.us" tvg-name="FDSN Southeast" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s20789_dark_360w_270h.png" group-title="TV",FDSN Southeast
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/82301
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/82301.ts
#EXTINF:-1 tvg-chno="59" tvg-id="FanDuel.Sports.Network.Southwest.us" tvg-name="FDSN Southwest" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59629_dark_360w_270h.png" group-title="TV",FDSN Southwest
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/296685
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296685.ts
#EXTINF:-1 tvg-chno="60" tvg-id="Fanduel.Sports.Sun.HD.us" tvg-name="FDSN Sun" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s61084_dark_360w_270h.png" group-title="TV",FDSN Sun
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2325
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2325.ts
#EXTINF:-1 tvg-chno="61" tvg-id="FanDuel.Sports.Network.West.us" tvg-name="FDSN West" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59627_dark_360w_270h.png" group-title="TV",FDSN West
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3367
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3367.ts
#EXTINF:-1 tvg-chno="62" tvg-id="FanDuel.Sports.Network.Wisconsin.us" tvg-name="FDSN Wisconsin" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16348_dark_360w_270h.png" group-title="TV",FDSN Wisconsin
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/295668
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/295668.ts
#EXTINF:-1 tvg-chno="63" tvg-id="plex.tv.FIFA+.plex" tvg-name="FIFA+ TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s136235_dark_360w_270h.png" group-title="TV",FIFA+ TV
https://jmp2.uk/stvp-IN270000230
@ -196,19 +196,19 @@ http://23.237.104.106:8080/USA_FOOD_NETWORK/index.m3u8
http://stream.cammonitorplus.net/1772/index.m3u8
#EXTINF:-1 tvg-chno="66" 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://41.205.93.154/FOXBUSINESS/index.m3u8
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2316.ts
#EXTINF:-1 tvg-chno="67" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/1611
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1611.ts
#EXTINF:-1 tvg-chno="68" 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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/756
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/756.ts
#EXTINF:-1 tvg-chno="69" tvg-id="FS2.Fox.Sports.2.HD.us2" tvg-name="Fox Sports 2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33178_dark_360w_270h.png" group-title="TV",Fox Sports 2
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/757
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/757.ts
#EXTINF:-1 tvg-chno="70" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2329
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2329.ts
#EXTINF:-1 tvg-chno="71" 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
@ -217,34 +217,34 @@ http://23.237.104.106:8080/USA_FUSE/index.m3u8
http://23.237.104.106:8080/USA_FX/index.m3u8
#EXTINF:-1 tvg-chno="73" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/39873
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/39873.ts
#EXTINF:-1 tvg-chno="74" 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
#EXTINF:-1 tvg-chno="75" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/9234
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/9234.ts
#EXTINF:-1 tvg-chno="76" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/466
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/466.ts
#EXTINF:-1 tvg-chno="77" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/194187
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/194187.ts
#EXTINF:-1 tvg-chno="78" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/5845
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5845.ts
#EXTINF:-1 tvg-chno="79" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/15086
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/15086.ts
#EXTINF:-1 tvg-chno="80" 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
#EXTINF:-1 tvg-chno="81" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/304609
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/304609.ts
#EXTINF:-1 tvg-chno="82" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3388
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3388.ts
#EXTINF:-1 tvg-chno="83" 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
@ -256,52 +256,52 @@ http://23.237.104.106:8080/USA_HBO2/index.m3u8
http://23.237.104.106:8080/USA_HBO_COMEDY/index.m3u8
#EXTINF:-1 tvg-chno="86" tvg-id="HBO.Drama.us2" tvg-name="HBO Family" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s34879_dark_360w_270h.png" group-title="TV",HBO Family
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/760
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/760.ts
#EXTINF:-1 tvg-chno="87" tvg-id="HBO.Zone.HD.us2" tvg-name="HBO Zone" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18431_dark_360w_270h.png" group-title="TV",HBO Zone
http://23.237.104.106:8080/USA_HBO_ZONE/index.m3u8
#EXTINF:-1 tvg-chno="88" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/761
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/761.ts
#EXTINF:-1 tvg-chno="89" 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
#EXTINF:-1 tvg-chno="90" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/30900
http://89.105.221.127/INSP/index.m3u8?token=test
#EXTINF:-1 tvg-chno="91" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8557
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8557.ts
#EXTINF:-1 tvg-chno="92" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/147661
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/147661.ts
#EXTINF:-1 tvg-chno="93" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/4667
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/4667.ts
#EXTINF:-1 tvg-chno="94" tvg-id="LMN.HD.us2" tvg-name="Lifetime Movie Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18480_dark_360w_270h.png" group-title="TV",Lifetime Movie Network
http://23.237.104.106:8080/USA_LMN/index.m3u8
#EXTINF:-1 tvg-chno="95" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/150609
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/150609.ts
#EXTINF:-1 tvg-chno="96" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2342
http://89.105.221.127/MLBNetwork/mpegts?token=test
#EXTINF:-1 tvg-chno="97" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/272264
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/272264.ts
#EXTINF:-1 tvg-chno="98" 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
#EXTINF:-1 tvg-chno="99" tvg-id="MSNBC.HD.us2" tvg-name="MSNBC" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16300_dark_360w_270h.png" group-title="TV",MSNBC
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/406
http://89.105.221.127/MSNBC/index.m3u8?token=test
#EXTINF:-1 tvg-chno="100" tvg-id="MTV.-.Music.Television.HD.us2" tvg-name="MTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10986_dark_360w_270h.png" group-title="TV",MTV
http://23.237.104.106:8080/USA_MTV/index.m3u8
#EXTINF:-1 tvg-chno="101" tvg-id="National.Geographic.HD.us2" tvg-name="National Geographic" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49438_dark_360w_270h.png" group-title="TV",National Geographic
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/749
http://89.105.221.127/NationalGeographic/index.m3u8?token=test
#EXTINF:-1 tvg-chno="102" tvg-id="NBA.TV.HD.us2" tvg-name="NBA TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png" group-title="TV",NBA TV
http://212.102.60.231/NBA_TV/index.m3u8
@ -310,37 +310,37 @@ http://212.102.60.231/NBA_TV/index.m3u8
http://stream.cammonitorplus.net/1812/index.m3u8
#EXTINF:-1 tvg-chno="104" tvg-id="NBC.Sports.Bay.Area.HD.us2" tvg-name="NBC Sports Bay Area" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s63138_dark_360w_270h.png" group-title="TV",NBC Sports Bay Area
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/45785
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/45785.ts
#EXTINF:-1 tvg-chno="105" tvg-id="NBC.Sports.Boston.HD.us2" tvg-name="NBC Sports Boston" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49198_dark_360w_270h.png" group-title="TV",NBC Sports Boston
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/35132
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/35132.ts
#EXTINF:-1 tvg-chno="106" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/16116
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/16116.ts
#EXTINF:-1 tvg-chno="107" 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://jmp2.uk/stvp-USBD420002446
#EXTINF:-1 tvg-chno="108" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/35472
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/35472.ts
#EXTINF:-1 tvg-chno="109" 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
#EXTINF:-1 tvg-chno="110" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/6296
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/6296.ts
#EXTINF:-1 tvg-chno="111" 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
http://23.237.104.106:8080/USA_NFL_NETWORK/index.m3u8
#EXTINF:-1 tvg-chno="112" tvg-id="NFL.RedZone.HD.us2" tvg-name="NFL RedZone" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/nfl-red-zone-hz-us.png" group-title="TV",NFL RedZone
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2369
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2369.ts
#EXTINF:-1 tvg-chno="113" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2348
http://89.105.221.127/nhl/index.m3u8?token=test
#EXTINF:-1 tvg-chno="114" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/14835
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/14835.ts
#EXTINF:-1 tvg-chno="115" 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
@ -352,10 +352,10 @@ http://212.102.60.231/NICKTOONS/index.m3u8
http://23.237.104.106:8080/USA_OUTDOOR/mpegts
#EXTINF:-1 tvg-chno="118" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/194336
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/194336.ts
#EXTINF:-1 tvg-chno="119" tvg-id="Oxygen.True.Crime.HD.us2" tvg-name="Oxygen" tvg-logo="https://i.gyazo.com/68db5ec4dba40181592406e7c3128fc7.png" group-title="TV",Oxygen
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/6378
http://89.105.221.127/Oxygen/index.m3u8?token=test
#EXTINF:-1 tvg-chno="120" 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
@ -364,13 +364,13 @@ http://23.237.104.106:8080/USA_PARAMOUNT_NETWORK/index.m3u8
https://2-fss-2.streamhoster.com/pl_140/amlst:200914-1298290/playlist.m3u8
#EXTINF:-1 tvg-chno="122" 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://aflaxtv.xyz:8080/mitrovic/19106b7cb4/305494
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/305494.ts
#EXTINF:-1 tvg-chno="123" 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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/1097
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1097.ts
#EXTINF:-1 tvg-chno="124" tvg-id="Premier.Sports.2.HD.uk" tvg-name="Premier Sports 2" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s109162_dark_360w_270h.png" group-title="TV",Premier Sports 2
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/4723
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/4723.ts
#EXTINF:-1 tvg-chno="125" tvg-id="QVC.HD.us2" tvg-name="QVC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11069_dark_360w_270h.png" group-title="TV",QVC
http://212.102.60.231/QVC/index.m3u8
@ -385,43 +385,43 @@ http://23.237.104.106:8080/USA_SEC_NETWORK/index.m3u8
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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/12036
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/12036.ts
#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/304775
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/304775.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/8585
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/8585.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/5831
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5831.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
http://mytvstream.net:8080/live/5AGbfz/324331/213668.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/213668.m3u8
#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/5AGbfz/324331/31636.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/31636.m3u8
#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/5AGbfz/324331/21842.m3u8
http://mytvstream.net:8080/live/A0t5Ax/625375/21842.m3u8
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/30847.ts
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3377.ts
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/1720.ts
#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://212.102.60.231/SNY/index.m3u8
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3378.ts
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/59945.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
http://23.237.104.106:8080/USA_STARZ/index.m3u8
@ -439,10 +439,10 @@ https://turnerlive.warnermediacdn.com/hls/live/2023172/tbseast/slate/VIDEO_0_356
https://cdn-uw2-prod.tsv2.amagi.tv/linear/amg01444-tennischannelth-tennischnlintl-lggb/playlist.m3u8
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2361.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2362
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2362.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
https://turnerlive.warnermediacdn.com/hls/live/2023168/tnteast/slate/VIDEO_0_3564000.m3u8
@ -451,22 +451,22 @@ https://turnerlive.warnermediacdn.com/hls/live/2023168/tnteast/slate/VIDEO_0_356
https://turnerlive.warnermediacdn.com/hls/live/2023176/trueast/slate/VIDEO_0_3564000.m3u8
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/770.ts
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/771.ts
#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
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2364.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/13010
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/13010.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
http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3390
http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/3390.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
http://23.237.104.106:8080/USA_VH1/index.m3u8
@ -478,7 +478,7 @@ http://23.237.104.106:8080/USA_VICETV/index.m3u8
http://23.237.104.106:8080/USA_WE_TV/index.m3u8
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296763.ts
#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://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/5519.ts

File diff suppressed because it is too large Load diff

View file

@ -75,13 +75,13 @@ async def main() -> None:
asyncio.create_task(pawa.scrape()),
asyncio.create_task(shark.scrape()),
asyncio.create_task(streamcenter.scrape()),
asyncio.create_task(streamhub.scrape()),
# asyncio.create_task(streamhub.scrape()),
asyncio.create_task(streamsgate.scrape()),
asyncio.create_task(streamtpnew.scrape()),
asyncio.create_task(totalsportek.scrape()),
asyncio.create_task(tvapp.scrape()),
asyncio.create_task(webcast.scrape()),
# asyncio.create_task(xstreameast.scrape()),
asyncio.create_task(xstreameast.scrape()),
]
await asyncio.gather(*(pw_tasks + httpx_tasks))

View file

@ -30,11 +30,8 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
if r := await network.request(
urljoin(API_URL, "api/v1/events/sports"),
params={
"user": "cdnlivetv",
"plan": "free",
},
log=log,
params={"user": "cdnlivetv", "plan": "free"},
):
api_data = r.json().get("cdn-live-tv")
@ -71,11 +68,22 @@ async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
event_links: list[str] = [channel["url"] for channel in channels]
# if not (
# link := (
# event_links[0]
# if len(event_links) == 1
# else await network.get_base(event_links)
# )
# ):
# continue
link = event_links[0]
events.append(
{
"sport": league,
"event": name,
"link": event_links[0],
"link": link,
"timestamp": event_dt.timestamp(),
}
)

View file

@ -53,7 +53,7 @@ async def process_event(url: str, url_num: int) -> tuple[str | None, str | None]
return match[3], iframe_src
async def get_events() -> list[dict[str, str]]:
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
events = []
if not (html_data := await network.request(BASE_URL, log=log)):
@ -76,6 +76,9 @@ async def get_events() -> list[dict[str, str]]:
event_name = event_name_elem.text(strip=True)
if f"[{sport}] {event_name} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
@ -88,17 +91,20 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -134,11 +140,13 @@ async def scrape() -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -55,7 +55,7 @@ async def process_event(url: str, url_num: int) -> str | None:
return m3u.split("&remote")[0]
async def get_events() -> list[dict[str, str]]:
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
events = []
if not (html_data := await network.request(BASE_URL, log=log)):
@ -74,6 +74,9 @@ async def get_events() -> list[dict[str, str]]:
title = title.replace(" v ", " vs ")
if f"[{sport}] {title} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
@ -86,17 +89,20 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -132,11 +138,13 @@ async def scrape() -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -78,7 +78,7 @@ async def process_event(
return
async def get_events() -> 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()]
results = await asyncio.gather(*tasks)
@ -102,6 +102,9 @@ async def get_events() -> list[dict[str, str]]:
if not (href := a_tag.attributes.get("href")):
continue
if f"[{sport}] {event} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
@ -114,17 +117,20 @@ async def get_events() -> list[dict[str, str]]:
async def scrape(browser: Browser) -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -163,11 +169,13 @@ async def scrape(browser: Browser) -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -11,7 +11,9 @@ urls: dict[str, dict[str, str | float]] = {}
TAG = "SHARK"
CACHE_FILE = Cache(TAG, exp=19_800)
CACHE_FILE = Cache(TAG, exp=10_800)
HTML_FILE = Cache(f"{TAG}-html", exp=19_800)
BASE_URL = "https://sharkstreams.net"
@ -36,10 +38,8 @@ async def process_event(url: str, url_num: int) -> str | None:
return pattern.sub(r"chunks.m3u8", urls[0])
async def get_events() -> dict[str, dict[str, str | float]]:
now = Time.clean(Time.now())
events = []
async def refresh_html_cache(now_ts: float) -> dict[str, dict[str, str | float]]:
events = {}
if not (html_data := await network.request(BASE_URL, log=log)):
return events
@ -59,9 +59,6 @@ async def get_events() -> dict[str, dict[str, str | float]]:
event_dt = Time.from_str(date_node.text(strip=True), timezone="EST")
if event_dt.date() != now.date():
continue
sport = sport_node.text(strip=True)
event_name = name_node.text(strip=True)
@ -76,30 +73,59 @@ async def get_events() -> dict[str, dict[str, str | float]]:
link = match[1].replace("player.php", "get-stream.php")
events.append(
{
"sport": sport,
"event": event_name,
"link": link,
"timestamp": now.timestamp(),
}
)
key = f"[{sport}] {event_name} ({TAG})"
events[key] = {
"sport": sport,
"event": event_name,
"link": link,
"event_ts": event_dt.timestamp(),
"timestamp": now_ts,
}
return events
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
now = Time.clean(Time.now())
if not (events := HTML_FILE.load()):
log.info("Refreshing HTML cache")
events = await refresh_html_cache(now.timestamp())
HTML_FILE.write(events)
live = []
start_ts = now.delta(hours=-1).timestamp()
end_ts = now.delta(minutes=10).timestamp()
for k, v in events.items():
if k in cached_keys:
continue
if not start_ts <= v["event_ts"] <= end_ts:
continue
live.append(v)
return live
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
cached_count = len(cached_urls)
return
urls.update(cached_urls)
log.info(f"Loaded {cached_count} event(s) from cache")
log.info(f'Scraping from "{BASE_URL}"')
if events := await get_events():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
for i, ev in enumerate(events, start=1):
handler = partial(
@ -115,33 +141,31 @@ async def scrape() -> None:
log=log,
)
sport, event, ts = (
ev["sport"],
ev["event"],
ev["timestamp"],
)
tvg_id, logo = leagues.get_tvg_info(sport, event)
key = f"[{sport}] {event} ({TAG})"
entry = {
"url": url,
"logo": logo,
"base": BASE_URL,
"timestamp": ts,
"id": tvg_id or "Live.Event.us",
"link": link,
}
cached_urls[key] = entry
if url:
urls[key] = entry
sport, event, ts = (
ev["sport"],
ev["event"],
ev["event_ts"],
)
log.info(f"Collected and cached {len(urls)} event(s)")
tvg_id, logo = leagues.get_tvg_info(sport, event)
key = f"[{sport}] {event} ({TAG})"
entry = {
"url": url,
"logo": logo,
"base": BASE_URL,
"timestamp": ts,
"id": tvg_id or "Live.Event.us",
"link": link,
}
urls[key] = cached_urls[key] = entry
log.info(f"Collected and cached {len(cached_urls) - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -46,7 +46,7 @@ async def process_event(url: str, url_num: int) -> str | None:
return f"https://mainstreams.pro/hls/{iframe_src.rsplit("=", 1)[-1]}.m3u8"
async def get_events() -> list[dict[str, str]]:
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
now = Time.clean(Time.now())
events = []
@ -82,12 +82,14 @@ async def get_events() -> list[dict[str, str]]:
if not (sport := CATEGORIES.get(category_id)):
continue
if f"[{sport}] {name} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
"event": name,
"link": iframe.split("<")[0],
"timestamp": now.timestamp(),
}
)
@ -95,17 +97,22 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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://streamcenter.xyz"')
if events := await get_events():
log.info(f"Processing {len(events)} URL(s)")
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(
@ -121,11 +128,7 @@ async def scrape() -> None:
log=log,
)
sport, event, ts = (
ev["sport"],
ev["event"],
ev["timestamp"],
)
sport, event = ev["sport"], ev["event"]
key = f"[{sport}] {event} ({TAG})"
@ -135,7 +138,7 @@ async def scrape() -> None:
"url": url,
"logo": logo,
"base": "https://streamcenter.xyz",
"timestamp": ts,
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
"link": link,
}
@ -143,11 +146,13 @@ async def scrape() -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -50,7 +50,7 @@ async def process_event(url: str, url_num: int) -> str | None:
return m3u8.split("ip=")[0]
async def get_events() -> list[dict[str, str]]:
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
events = []
if not (api_req := await network.request(API_URL, log=log)):
@ -70,6 +70,9 @@ async def get_events() -> list[dict[str, str]]:
if (sport := event.get("category")) and sport == "Other":
sport = "Live Event"
if f"[{sport}] {name} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
@ -82,17 +85,20 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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://streamtpnew.com"')
if events := await get_events():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -128,11 +134,13 @@ async def scrape() -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -74,8 +74,8 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
if cached := CACHE_FILE.load():
urls.update(cached)
log.info(f"Loaded {len(urls)} event(s) from cache")
@ -84,7 +84,7 @@ async def scrape() -> None:
log.info(f'Scraping from "{BASE_URL}"')
if events := await get_events():
log.info(f"Processing {len(events)} URL(s)")
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -102,29 +102,24 @@ async def scrape() -> None:
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": BASE_URL,
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
"link": link,
}
cached_urls[key] = entry
if url:
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": BASE_URL,
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
"link": link,
}
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {len(urls)} new event(s)")
else:
log.info("No events found")
CACHE_FILE.write(cached_urls)
CACHE_FILE.write(urls)

File diff suppressed because it is too large Load diff

View file

@ -91,7 +91,7 @@ async def process_event(
return data.get("url")
async def get_events() -> 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 BASE_URLS.values()]
results = await asyncio.gather(*tasks)
@ -120,10 +120,15 @@ async def get_events() -> list[dict[str, str]]:
if not (href := vs_node.attributes.get("href")):
continue
event = fix_event(event_name)
if f"[{sport}] {event} ({TAG})" in cached_keys:
continue
events.append(
{
"sport": sport,
"event": fix_event(event_name),
"event": event,
"link": href,
}
)
@ -132,17 +137,20 @@ async def get_events() -> list[dict[str, str]]:
async def scrape() -> None:
if cached_urls := CACHE_FILE.load():
urls.update({k: v for k, v in cached_urls.items() if v["url"]})
cached_urls = CACHE_FILE.load()
log.info(f"Loaded {len(urls)} event(s) from cache")
valid_urls = {k: v for k, v in cached_urls.items() if v["url"]}
return
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 "{' & '.join(BASE_URLS.values())}"')
if events := await get_events():
log.info(f"Processing {len(events)} URL(s)")
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
@ -179,11 +187,13 @@ async def scrape() -> None:
cached_urls[key] = entry
if url:
valid_count += 1
urls[key] = entry
log.info(f"Collected and cached {len(urls)} event(s)")
log.info(f"Collected and cached {valid_count - cached_count} new event(s)")
else:
log.info("No events found")
log.info("No new events found")
CACHE_FILE.write(cached_urls)

View file

@ -1,19 +1,14 @@
## Base Log @ 2026-04-17 16:09 UTC
## Base Log @ 2026-04-16 09:55 UTC
### ✅ Working Streams: 151<br>❌ Dead Streams: 10
### ✅ Working Streams: 156<br>❌ Dead Streams: 5
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| Discovery Life | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/201208` |
| FX Movie Channel | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/39873` |
| getTV | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/194187` |
| Grit TV | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/15086` |
| Hallmark Family | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/304609` |
| Hallmark Mystery | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/3388` |
| HBO Family | HTTP Error (404) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/760` |
| INSP | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/30900` |
| TLC | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2362` |
| TV Land | HTTP Error (502) | `http://aflaxtv.xyz:8080/mitrovic/19106b7cb4/2364` |
| FDSN Ohio | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/296675.ts` |
| FX Movie Channel | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/39873.ts` |
| Hallmark Family | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/304609.ts` |
| NBC Sports Bay Area | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/45785.ts` |
| TLC | HTTP Error (404) | `http://iptvtree.net:8080/live/7e4b0dbd/1dd755dc3f/2362.ts` |
---
#### Base Channels URL
```