Compare commits

...

35 commits

Author SHA1 Message Date
GitHub Actions Bot
ac4abe75d1 health log 2026-03-10 09:07:02 +00:00
GitHub Actions Bot
0f6e1cf10e update EPG 2026-03-10 04:23:44 +00:00
GitHub Actions Bot
e5e6de8c98 health log 2026-03-10 04:20:32 +00:00
GitHub Actions Bot
8239a7fdcd update M3U8 2026-03-09 23:30:28 -04:00
GitHub Actions Bot
4232bf0d8f update M3U8 2026-03-09 23:01:04 -04:00
GitHub Actions Bot
4f900bbf53 update M3U8 2026-03-09 22:30:36 -04:00
GitHub Actions Bot
4f18f835c9 update M3U8 2026-03-09 22:01:09 -04:00
GitHub Actions Bot
6a523ede97 update M3U8 2026-03-09 21:30:50 -04:00
GitHub Actions Bot
6715662d81 update M3U8 2026-03-09 21:01:56 -04:00
GitHub Actions Bot
d607eff443 update M3U8 2026-03-09 20:32:31 -04:00
GitHub Actions Bot
61884cef9d update M3U8 2026-03-09 20:02:34 -04:00
GitHub Actions Bot
3d2bf00732 update M3U8 2026-03-09 19:31:18 -04:00
doms9
00000d9906 e
- fix scraping for timstreams.py
2026-03-09 19:14:18 -04:00
GitHub Actions Bot
ea27241796 update M3U8 2026-03-09 19:02:18 -04:00
GitHub Actions Bot
5cb2d5fe31 update M3U8 2026-03-09 18:31:23 -04:00
GitHub Actions Bot
55d8e94a7b update M3U8 2026-03-09 18:01:06 -04:00
GitHub Actions Bot
bad1ebe82f update M3U8 2026-03-09 17:31:12 -04:00
GitHub Actions Bot
ba1ce56d14 update M3U8 2026-03-09 17:01:29 -04:00
GitHub Actions Bot
5ae8f557ac health log 2026-03-09 20:58:25 +00:00
GitHub Actions Bot
fe22946e3d update M3U8 2026-03-09 16:31:21 -04:00
GitHub Actions Bot
935f16981e update M3U8 2026-03-09 16:02:52 -04:00
GitHub Actions Bot
b6d91ed9e3 update M3U8 2026-03-09 15:32:32 -04:00
GitHub Actions Bot
db3f9704c6 update EPG 2026-03-09 19:27:16 +00:00
GitHub Actions Bot
18c15ede97 update M3U8 2026-03-09 15:02:54 -04:00
GitHub Actions Bot
2a7ab8a8e8 update M3U8 2026-03-09 14:31:36 -04:00
GitHub Actions Bot
b407e9c23d update M3U8 2026-03-09 14:03:23 -04:00
GitHub Actions Bot
4309f9ba80 update M3U8 2026-03-09 13:31:40 -04:00
GitHub Actions Bot
7a16a84da6 update M3U8 2026-03-09 13:03:29 -04:00
GitHub Actions Bot
1abdc5da47 update M3U8 2026-03-09 12:02:11 -04:00
GitHub Actions Bot
cae27c94e5 health log 2026-03-09 15:29:23 +00:00
GitHub Actions Bot
8ec55cf858 update M3U8 2026-03-09 11:02:00 -04:00
GitHub Actions Bot
af2b04e8ab update M3U8 2026-03-09 10:01:32 -04:00
GitHub Actions Bot
a936fee947 update M3U8 2026-03-09 09:01:47 -04:00
GitHub Actions Bot
77a6dbac16 update M3U8 2026-03-09 08:02:02 -04:00
GitHub Actions Bot
fa650825c1 update EPG 2026-03-09 11:23:22 +00:00
7 changed files with 130697 additions and 123376 deletions

File diff suppressed because it is too large Load diff

248282
M3U8/TV.xml

File diff suppressed because one or more lines are too long

View file

@ -13,7 +13,7 @@ http://23.239.31.26:8989/accnetwork/index.m3u8
https://turnerlive.warnermediacdn.com/hls/live/2023183/aseast/noslate/VIDEO_1_5128000.m3u8
#EXTINF:-1 tvg-chno="5" tvg-id="Altitude.Sports.us2" tvg-name="Altitude Sports" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s44263_dark_360w_270h.png" group-title="TV",Altitude Sports
http://mytvstream.net:8080/live/30550113/30550113/79545.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/332892
#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
@ -52,7 +52,7 @@ http://23.237.104.106:8080/USA_BOOMERANG/index.m3u8
http://212.102.60.231/BOUNCE_TV/index.m3u8
#EXTINF:-1 tvg-chno="18" tvg-id="Bravo.HD.us2" tvg-name="Bravo TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10057_dark_360w_270h.png" group-title="TV",Bravo TV
http://104.255.88.155/bravo/index.m3u8
http://41.205.93.154/BRAVO/index.m3u8
#EXTINF:-1 tvg-chno="19" tvg-id="BUZZR.Stream.us2" tvg-name="Buzzr" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s93430_dark_360w_270h.png" group-title="TV",Buzzr
https://buzzrota-web.amagi.tv/playlist.m3u8
@ -85,7 +85,7 @@ http://hardcoremedia.xyz/live/rabdsbmz/3731346838/129849.ts
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://mytvstream.net:8080/live/30550113/30550113/9815.m3u8
http://41.205.93.154/CNBC/index.m3u8
#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
@ -106,7 +106,7 @@ 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://mytvstream.net:8080/live/30550113/30550113/11868.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/2604
#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
@ -147,40 +147,40 @@ 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://snowbank.houseinventer.com/6501/index.m3u8?token=M1lDdWljYkdyZGFhZzVxeGc2Mkt5OGJicWNxd2xheDkzWWVieEt5b3lZVERxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==
#EXTINF:-1 tvg-chno="50" tvg-id="FanDuel.Sports.Network.Detroit.24/7.HDTV.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
#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://mytvstream.net:8080/live/30550113/30550113/20930.m3u8
#EXTINF:-1 tvg-chno="51" tvg-id="FanDuel.Sports.Network.Florida.HDTV.(Out.of.Market).us" tvg-name="FDSN Florida" tvg-logo="https://i.gyazo.com/fad701fbaaafe161b13b23ed9b50179b.png" group-title="TV",FDSN Florida
#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://mytvstream.net:8080/live/30550113/30550113/46794.m3u8
#EXTINF:-1 tvg-chno="52" tvg-id="FanDuel.Sports.Network.Midwest.24/7.HDTV.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
#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://mytvstream.net:8080/live/30550113/30550113/66795.m3u8
#EXTINF:-1 tvg-chno="53" tvg-id="FanDuel.Sports.Network.North.HDTV.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
#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/30550113/30550113/58827.m3u8
#EXTINF:-1 tvg-chno="54" tvg-id="FanDuel.Sports.Network.Ohio.(Cleveland).HDTV.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
#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://mytvstream.net:8080/live/30550113/30550113/17752.m3u8
#EXTINF:-1 tvg-chno="55" tvg-id="FanDuel.Sports.Network.Oklahoma.24/7.HDTV.(Tulsa).us" tvg-name="FDSN Oklahoma" tvg-logo="https://i.gyazo.com/80ad6fd142cd67f06eef58d9ce5aa72b.png" group-title="TV",FDSN Oklahoma
#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://mytvstream.net:8080/live/30550113/30550113/20934.m3u8
#EXTINF:-1 tvg-chno="56" tvg-id="FanDuel.Sports.Network.SoCal.HDTV.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
#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://mytvstream.net:8080/live/30550113/30550113/221151.m3u8
#EXTINF:-1 tvg-chno="57" tvg-id="FanDuel.Sports.Network.Southeast.HDTV.(Mont./Birm./Dothan/Mobile.AL).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
#EXTINF:-1 tvg-chno="57" 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://mytvstream.net:8080/live/30550113/30550113/2213.m3u8
#EXTINF:-1 tvg-chno="58" tvg-id="FanDuel.Sports.Network.Southwest.HDTV.24/7.(Main).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
#EXTINF:-1 tvg-chno="58" 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://mytvstream.net:8080/live/30550113/30550113/21843.m3u8
#EXTINF:-1 tvg-chno="59" tvg-id="FanDuel.Sports.Network.Sun.South.24/7.HDTV.(South.Marlins,.Rays,.Heat).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
#EXTINF:-1 tvg-chno="59" 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://mytvstream.net:8080/live/30550113/30550113/104917.m3u8
#EXTINF:-1 tvg-chno="60" tvg-id="FanDuel.Sports.Network.West.HDTV.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
#EXTINF:-1 tvg-chno="60" 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://mytvstream.net:8080/live/30550113/30550113/20932.m3u8
#EXTINF:-1 tvg-chno="61" tvg-id="FanDuel.Sports.Network.Wisconsin.24/7.HDTV.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
#EXTINF:-1 tvg-chno="61" 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://mytvstream.net:8080/live/30550113/30550113/78599.m3u8
#EXTINF:-1 tvg-chno="62" 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
@ -193,7 +193,7 @@ http://23.237.104.106:8080/USA_FOOD_NETWORK/index.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/2544
#EXTINF:-1 tvg-chno="65" tvg-id="Fox.Business.HD.us2" tvg-name="Fox Business" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s58649_dark_360w_270h.png" group-title="TV",Fox Business
http://mytvstream.net:8080/live/30550113/30550113/17639.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/3730
#EXTINF:-1 tvg-chno="66" tvg-id="Fox.News.Channel.HD.us2" tvg-name="Fox News" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png" group-title="TV",Fox News
http://104.255.88.155/foxnews/index.m3u8
@ -205,7 +205,7 @@ https://starshare.st/live/P4B9TB9xR8/humongous2tonight/3420.ts
https://starshare.st/live/P4B9TB9xR8/humongous2tonight/55.ts
#EXTINF:-1 tvg-chno="69" tvg-id="Freeform.HD.us2" tvg-name="Freeform TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10093_dark_360w_270h.png" group-title="TV",Freeform TV
http://mytvstream.net:8080/live/30550113/30550113/13370.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/2502
#EXTINF:-1 tvg-chno="70" tvg-id="Fuse.HD.us2" tvg-name="FUSE" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png" group-title="TV",FUSE
http://23.237.104.106:8080/USA_FUSE/index.m3u8
@ -214,16 +214,16 @@ http://23.237.104.106:8080/USA_FUSE/index.m3u8
http://23.237.104.106:8080/USA_FX/index.m3u8
#EXTINF:-1 tvg-chno="72" tvg-id="FX.Movie.Channel.HD.us2" tvg-name="FX Movie Channel" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png" group-title="TV",FX Movie Channel
http://mytvstream.net:8080/live/30550113/30550113/10260.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/3736
#EXTINF:-1 tvg-chno="73" tvg-id="FXX.HD.us2" tvg-name="FXX" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/fxx-us.png" group-title="TV",FXX
http://23.237.104.106:8080/USA_FXX/index.m3u8
#EXTINF:-1 tvg-chno="74" tvg-id="FYI.Channel.HD.us2" tvg-name="FYI TV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16834_dark_360w_270h.png" group-title="TV",FYI TV
http://mytvstream.net:8080/live/30550113/30550113/9240.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/30924
#EXTINF:-1 tvg-chno="75" tvg-id="Game.Show.Network.HD.us2" tvg-name="Game Show Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" group-title="TV",Game Show Network
http://mytvstream.net:8080/live/30550113/30550113/120633.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/648975
#EXTINF:-1 tvg-chno="76" tvg-id="get.us2" tvg-name="getTV" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82563_dark_360w_270h.png" group-title="TV",getTV
http://mytvstream.net:8080/live/30550113/30550113/18366.m3u8
@ -250,7 +250,7 @@ http://23.237.104.106:8080/USA_HBO/index.m3u8
http://23.237.104.106:8080/USA_HBO2/index.m3u8
#EXTINF:-1 tvg-chno="84" tvg-id="HBO.Comedy.HD.us2" tvg-name="HBO Comedy" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s59839_dark_360w_270h.png" group-title="TV",HBO Comedy
http://mytvstream.net:8080/live/30550113/30550113/17773.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/648977
#EXTINF:-1 tvg-chno="85" 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://mytvstream.net:8080/live/30550113/30550113/17772.m3u8
@ -265,7 +265,7 @@ http://mytvstream.net:8080/live/30550113/30550113/15017.m3u8
http://23.237.104.106:8080/USA_HLN/index.m3u8
#EXTINF:-1 tvg-chno="89" tvg-id="INSP.HD.us2" tvg-name="INSP" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11066_dark_360w_270h.png" group-title="TV",INSP
http://mytvstream.net:8080/live/30550113/30550113/16262.m3u8
http://89.105.221.127/INSP/index.m3u8?token=test
#EXTINF:-1 tvg-chno="90" tvg-id="Investigation.Discovery.HD.us2" tvg-name="Investigation Discovery" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16615_dark_360w_270h.png" group-title="TV",Investigation Discovery
http://mytvstream.net:8080/live/30550113/30550113/46810.m3u8
@ -307,7 +307,7 @@ http://212.102.60.231/NBA_TV/index.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/89714
#EXTINF:-1 tvg-chno="103" 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://mytvstream.net:8080/live/30550113/30550113/9900.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/2436
#EXTINF:-1 tvg-chno="104" 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://mytvstream.net:8080/live/30550113/30550113/20939.m3u8
@ -337,7 +337,7 @@ https://starshare.st/live/P4B9TB9xR8/humongous2tonight/23550.ts
https://restream-live.realiptv.to/Lucas123/Lucas123/3672
#EXTINF:-1 tvg-chno="113" tvg-id="Nick.Jr.HD.us2" tvg-name="Nick Jr" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s19211_dark_360w_270h.png" group-title="TV",Nick Jr
http://mytvstream.net:8080/live/30550113/30550113/46710.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/74691
#EXTINF:-1 tvg-chno="114" tvg-id="Nickelodeon.HD.us2" tvg-name="Nickelodeon" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png" group-title="TV",Nickelodeon
http://23.237.104.106:8080/USA_NICKELODEON/index.m3u8
@ -403,7 +403,7 @@ http://mytvstream.net:8080/live/30550113/30550113/213668.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/74683
#EXTINF:-1 tvg-chno="135" tvg-id="Spectrum.SportsNet.Lakers.HD.us2" tvg-name="Spectrum SportsNet Lakers" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s77422_dark_360w_270h.png" group-title="TV",Spectrum SportsNet Lakers
http://mytvstream.net:8080/live/30550113/30550113/21842.m3u8
https://restream-live.realiptv.to/Lucas123/Lucas123/512561
#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
@ -465,8 +465,8 @@ http://mytvstream.net:8080/live/30550113/30550113/46696.m3u8
#EXTINF:-1 tvg-chno="155" tvg-id="TV.ONE.HD.us2" tvg-name="TV One" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s35513_dark_360w_270h.png" group-title="TV",TV One
http://mytvstream.net:8080/live/30550113/30550113/20868.m3u8
#EXTINF:-1 tvg-chno="156" tvg-id="USA.Network.HD.us2" tvg-name="USA East" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png" group-title="TV",USA East
http://mytvstream.net:8080/live/30550113/30550113/10252.m3u8
#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 Network
https://restream-live.realiptv.to/Lucas123/Lucas123/3767
#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

File diff suppressed because it is too large Load diff

View file

@ -66,14 +66,14 @@ async def main() -> None:
pw_tasks = [
asyncio.create_task(cdnlivetv.scrape(hdl_brwsr)),
asyncio.create_task(embedhd.scrape(hdl_brwsr)),
asyncio.create_task(pixel.scrape(hdl_brwsr)),
# asyncio.create_task(pixel.scrape(hdl_brwsr)),
asyncio.create_task(ppv.scrape(xtrnl_brwsr)),
# asyncio.create_task(roxie.scrape(hdl_brwsr)),
asyncio.create_task(roxie.scrape(hdl_brwsr)),
asyncio.create_task(sportzone.scrape(xtrnl_brwsr)),
asyncio.create_task(streamcenter.scrape(hdl_brwsr)),
asyncio.create_task(streamhub.scrape(xtrnl_brwsr)),
# asyncio.create_task(streamhub.scrape(xtrnl_brwsr)),
asyncio.create_task(streamsgate.scrape(xtrnl_brwsr)),
# asyncio.create_task(timstreams.scrape(xtrnl_brwsr)),
asyncio.create_task(timstreams.scrape(xtrnl_brwsr)),
]
httpx_tasks = [

View file

@ -1,8 +1,9 @@
import asyncio
from functools import partial
from typing import Any
from urllib.parse import urljoin
from playwright.async_api import Browser
from playwright.async_api import Browser, Page, Response
from selectolax.parser import HTMLParser
from .utils import Cache, Time, get_logger, leagues, network
@ -14,10 +15,6 @@ TAG = "TIMSTRMS"
CACHE_FILE = Cache(TAG, exp=10_800)
API_FILE = Cache(f"{TAG}-api", exp=19_800)
API_URL = "https://stra.viaplus.site/main"
BASE_URL = "https://timstreams.fit"
SPORT_GENRES = {
@ -41,65 +38,139 @@ SPORT_GENRES = {
}
def sift_xhr(resp: Response) -> bool:
resp_url = resp.url
return "hmembeds.one/embed" in resp_url and resp.status == 200
async def process_event(
url: str,
url_num: int,
page: Page,
) -> tuple[str | None, str | None]:
nones = None, None
captured: list[str] = []
got_one = asyncio.Event()
handler = partial(
network.capture_req,
captured=captured,
got_one=got_one,
)
page.on("request", handler)
try:
try:
async with page.expect_response(sift_xhr, timeout=3_000) as strm_resp:
resp = await page.goto(
url,
wait_until="domcontentloaded",
timeout=6_000,
)
if not resp or resp.status != 200:
log.warning(
f"URL {url_num}) Status Code: {resp.status if resp else 'None'}"
)
return nones
response = await strm_resp.value
embed_url = response.url
except TimeoutError:
log.warning(f"URL {url_num}) No available stream links.")
return nones
wait_task = asyncio.create_task(got_one.wait())
try:
await asyncio.wait_for(wait_task, timeout=6)
except asyncio.TimeoutError:
log.warning(f"URL {url_num}) Timed out waiting for M3U8.")
return nones
finally:
if not wait_task.done():
wait_task.cancel()
try:
await wait_task
except asyncio.CancelledError:
pass
if captured:
log.info(f"URL {url_num}) Captured M3U8")
return captured[0], embed_url
log.warning(f"URL {url_num}) No M3U8 captured after waiting.")
return nones
except Exception as e:
log.warning(f"URL {url_num}) {e}")
return nones
finally:
page.remove_listener("request", handler)
async def get_events(cached_keys: list[str]) -> list[dict[str, str]]:
now = Time.clean(Time.now())
if not (api_data := API_FILE.load(per_entry=False, index=-1)):
log.info("Refreshing API cache")
api_data = [{"timestamp": now.timestamp()}]
if r := await network.request(API_URL, log=log):
api_data: list[dict] = r.json()
api_data[-1]["timestamp"] = now.timestamp()
API_FILE.write(api_data)
events = []
start_dt = now.delta(minutes=-30)
end_dt = now.delta(minutes=30)
if not (html_data := await network.request(BASE_URL, log=log)):
return events
for info in api_data:
if not (category := info.get("category")) or category != "Events":
soup = HTMLParser(html_data.content)
for card in soup.css("#eventsSection .card"):
card_attrs = card.attributes
if not (sport_id := card_attrs.get("data-genre")):
continue
stream_events: list[dict[str, Any]] = info["events"]
elif not (sport := SPORT_GENRES.get(int(sport_id))):
continue
for ev in stream_events:
if (genre := ev["genre"]) not in SPORT_GENRES:
continue
if not (event_name := card_attrs.get("data-search")):
continue
event_dt = Time.from_str(ev["time"], timezone="EST")
if f"[{sport}] {event_name} ({TAG})" in cached_keys:
continue
if not start_dt <= event_dt <= end_dt:
continue
if not (badge_elem := card.css_first(".badge")):
continue
name: str = ev["name"]
if "data-countdown" in badge_elem.attributes:
continue
url_id: str = ev["URL"]
if (not (watch_btn := card.css_first("a.btn-watch"))) or (
not (href := watch_btn.attributes.get("href"))
):
continue
logo: str | None = ev.get("logo")
logo = None
sport = SPORT_GENRES[genre]
if card_thumb := card.css_first(".card-thumb img"):
logo = card_thumb.attributes.get("src")
if f"[{sport}] {name} ({TAG})" in cached_keys:
continue
if not (streams := ev["streams"]) or not (url := streams[0].get("url")):
continue
events.append(
{
"sport": sport,
"event": name,
"link": urljoin(BASE_URL, f"watch?id={url_id}"),
"ref": url,
"logo": logo,
"timestamp": event_dt.timestamp(),
}
)
events.append(
{
"sport": sport,
"event": event_name,
"link": urljoin(BASE_URL, href),
"logo": logo,
}
)
return events
@ -120,30 +191,29 @@ async def scrape(browser: Browser) -> None:
if events := await get_events(cached_urls.keys()):
log.info(f"Processing {len(events)} new URL(s)")
now = Time.clean(Time.now())
async with network.event_context(browser, stealth=False) as context:
for i, ev in enumerate(events, start=1):
async with network.event_page(context) as page:
handler = partial(
network.process_event,
process_event,
url=(link := ev["link"]),
url_num=i,
page=page,
log=log,
)
url = await network.safe_process(
url, iframe = await network.safe_process(
handler,
url_num=i,
semaphore=network.PW_S,
log=log,
)
sport, event, logo, ref, ts = (
sport, event, logo = (
ev["sport"],
ev["event"],
ev["logo"],
ev["ref"],
ev["timestamp"],
)
key = f"[{sport}] {event} ({TAG})"
@ -153,8 +223,8 @@ async def scrape(browser: Browser) -> None:
entry = {
"url": url,
"logo": logo or pic,
"base": ref,
"timestamp": ts,
"base": iframe,
"timestamp": now.timestamp(),
"id": tvg_id or "Live.Event.us",
"link": link,
}

View file

@ -1,13 +1,12 @@
## Base Log @ 2026-03-09 09:06 UTC
## Base Log @ 2026-03-10 09:07 UTC
### ✅ Working Streams: 157<br>❌ Dead Streams: 4
### ✅ Working Streams: 158<br>❌ Dead Streams: 3
| Channel | Error (Code) | Link |
| ------- | ------------ | ---- |
| Altitude Sports | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/79545.m3u8` |
| HBO Family | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/17772.m3u8` |
| Hallmark Family | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/9307.m3u8` |
| NFL Network | HTTP Error (404) | `https://stream.decentdoubts.net/6128524/index.m3u8?token=Mm9QYnQ1ZkpyYWllaEoydWhheUVsOGl1cGNpQW1xcUczNGVZeHRuWHlYL0RxNEduaVp1UnBxU2VlWmF0ZnRlRGxaMm1zNStDbnJOOXFZMlhtcStybmc9PQ==` |
| Hallmark Family | HTTP Error (000) | `http://mytvstream.net:8080/live/30550113/30550113/9307.m3u8` |
| Nickelodeon | HTTP Error (000) | `http://23.237.104.106:8080/USA_NICKELODEON/index.m3u8` |
| Pop TV | HTTP Error (403) | `http://mytvstream.net:8080/live/30550113/30550113/20976.m3u8` |
---
#### Base Channels URL
```