This commit is contained in:
doms9 2025-09-17 23:52:37 -04:00
parent eb51119f78
commit 00000d9cc3
5 changed files with 220 additions and 36 deletions

199
M3U8/Base.m3u8 Normal file
View file

@ -0,0 +1,199 @@
#EXTM3U url-tvg="https://raw.githubusercontent.com/doms9/iptv/refs/heads/default/EPG/TV.xml"
#EXTINF:-1 tvg-chno="1" tvg-id="ABC.(WABC).New.York,.NY.us" 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://tv14s.xyz:8080/A1Jay5/362586/121139
#EXTINF:-1 tvg-chno="2" tvg-id="ACC.Network.us" tvg-name="ACC Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s111871_dark_360w_270h.png" group-title="TV",ACC Network
http://tv14s.xyz:8080/A1Jay5/362586/9273
#EXTINF:-1 tvg-chno="3" tvg-id="AMC.-.Eastern.Feed.us" 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://tv14s.xyz:8080/A1Jay5/362586/18925
#EXTINF:-1 tvg-chno="4" tvg-id="BET.-.Eastern.Feed.us" tvg-name="BET" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10051_dark_360w_270h.png" group-title="TV",BET
http://origin.thetvapp.to/hls/BETEast/mono.m3u8
#EXTINF:-1 tvg-chno="5" tvg-id="Big.Ten.Network.us" tvg-name="Big Ten Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s56783_dark_360w_270h.png" group-title="TV",Big Ten Network
http://tv14s.xyz:8080/A1Jay5/362586/9828
#EXTINF:-1 tvg-chno="6" tvg-id="Boomerang.us" tvg-name="Boomerang" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s21883_dark_360w_270h.png" group-title="TV",Boomerang
http://origin.thetvapp.to/hls/Boomerang/mono.m3u8
#EXTINF:-1 tvg-chno="7" tvg-id="Cartoon.Network.USA.-.Eastern.Feed.us" tvg-name="Cartoon Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12131_dark_360w_270h.png" group-title="TV",Cartoon Network
http://tv14s.xyz:8080/A1Jay5/362586/46708
#EXTINF:-1 tvg-chno="8" tvg-id="CBS.(WCBS).New.York,.NY.us" tvg-name="CBS" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10098_dark_360w_270h.png" group-title="TV",CBS
http://tv14s.xyz:8080/A1Jay5/362586/120749
#EXTINF:-1 tvg-chno="9" tvg-id="CBS.Sports.Network.USA.us" tvg-name="CBS Sports Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16365_dark_360w_270h.png" group-title="TV",CBS Sports Network
http://tv14s.xyz:8080/A1Jay5/362586/10454
#EXTINF:-1 tvg-chno="10" tvg-id="CNBC.USA.us" tvg-name="CNBC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10139_dark_360w_270h.png" group-title="TV",CNBC
http://origin.thetvapp.to/hls/CNBC/mono.m3u8
#EXTINF:-1 tvg-chno="11" tvg-id="CNN.us" tvg-name="CNN" tvg-logo="https://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
#EXTINF:-1 tvg-chno="12" tvg-id="Comedy.Central.(US).-.Eastern.Feed.us" tvg-name="Comedy Central" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10149_dark_360w_270h.png" group-title="TV",Comedy Central
http://origin.thetvapp.to/hls/ComedyCentralEast/mono.m3u8
#EXTINF:-1 tvg-chno="13" tvg-id="WPIX.New.York.(SUPERSTATION).us" tvg-name="CW" tvg-logo="https://i.gyazo.com/afd5b481b327d204087dfde6a7741f9d.png" group-title="TV",CW
http://user.scalecdn.co:8080/live/26725074/92867131/93093.m3u8
#EXTINF:-1 tvg-chno="14" tvg-id="Discovery.Channel.(US).-.Eastern.Feed.us" tvg-name="Discovery Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11150_dark_360w_270h.png" group-title="TV",Discovery Channel
http://tv14s.xyz:8080/A1Jay5/362586/46720
#EXTINF:-1 tvg-chno="15" tvg-id="Disney.-.Eastern.Feed.us" tvg-name="Disney" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10171_dark_360w_270h.png" group-title="TV",Disney
http://tv14s.xyz:8080/A1Jay5/362586/2206
#EXTINF:-1 tvg-chno="16" tvg-id="Disney.XD.USA.-.Eastern.Feed.us" tvg-name="Disney XD" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s18279_dark_360w_270h.png" group-title="TV",Disney XD
http://tv14s.xyz:8080/A1Jay5/362586/75621
#EXTINF:-1 tvg-chno="17" tvg-id="E!.Entertainment.USA.-.Eastern.Feed.us" tvg-name="E!" tvg-logo="https://i.gyazo.com/f73b80e3eb56cec06df6705d00e2f422.png" group-title="TV",E!
http://origin.thetvapp.to/hls/EEast/mono.m3u8
#EXTINF:-1 tvg-chno="18" tvg-id="ESPN.us" tvg-name="ESPN" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10179_dark_360w_270h.png" group-title="TV",ESPN
http://tv14s.xyz:8080/A1Jay5/362586/14197
#EXTINF:-1 tvg-chno="19" tvg-id="ESPN.News.us" tvg-name="ESPN News" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16485_dark_360w_270h.png" group-title="TV",ESPN News
http://tv14s.xyz:8080/A1Jay5/362586/17707
#EXTINF:-1 tvg-chno="20" tvg-id="ESPN.U.us" tvg-name="ESPN U" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s45654_dark_360w_270h.png" group-title="TV",ESPN U
http://tv14s.xyz:8080/A1Jay5/362586/10255
#EXTINF:-1 tvg-chno="21" tvg-id="ESPN2.us" tvg-name="ESPN2" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s12444_dark_360w_270h.png" group-title="TV",ESPN2
http://origin.thetvapp.to/hls/ESPN2/mono.m3u8
#EXTINF:-1 tvg-chno="22" 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
http://tv14s.xyz:8080/A1Jay5/362586/20936
#EXTINF:-1 tvg-chno="23" 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
http://tv14s.xyz:8080/A1Jay5/362586/58827
#EXTINF:-1 tvg-chno="24" 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
http://tv14s.xyz:8080/A1Jay5/362586/20934
#EXTINF:-1 tvg-chno="25" 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
http://tv14s.xyz:8080/A1Jay5/362586/21843
#EXTINF:-1 tvg-chno="26" 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
http://tv14s.xyz:8080/A1Jay5/362586/20932
#EXTINF:-1 tvg-chno="27" tvg-id="FOX.(WNYW).New.York,.NY.us" tvg-name="Fox" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s28719_dark_360w_270h.png" group-title="TV",Fox
http://tv14s.xyz:8080/A1Jay5/362586/120750
#EXTINF:-1 tvg-chno="28" tvg-id="Fox.News.us" tvg-name="Fox News" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16374_dark_360w_270h.png" group-title="TV",Fox News
https://stream.livenewsplay.com:9443/hls/foxnews/foxsd.m3u8
#EXTINF:-1 tvg-chno="29" tvg-id="Fox.Sports.1.us" tvg-name="Fox Sports 1" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s82541_dark_360w_270h.png" group-title="TV",Fox Sports 1
http://23.237.104.106:8080/USA_FS1/index.m3u8
#EXTINF:-1 tvg-chno="30" tvg-id="Fox.Sports.2.us" tvg-name="Fox Sports 2" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s33178_dark_360w_270h.png" group-title="TV",Fox Sports 2
http://23.237.104.106:8080/USA_FS2/index.m3u8
#EXTINF:-1 tvg-chno="31" tvg-id="FUSE.TV.-.Eastern.feed.us" tvg-name="FUSE" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14929_dark_360w_270h.png" group-title="TV",FUSE
http://origin.thetvapp.to/hls/FuseEast/mono.m3u8
#EXTINF:-1 tvg-chno="32" tvg-id="FX.Networks.East.Coast.us" tvg-name="FX" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14321_dark_360w_270h.png" group-title="TV",FX
http://tv14s.xyz:8080/A1Jay5/362586/46690
#EXTINF:-1 tvg-chno="33" tvg-id="FX.Movie.Channel.us" tvg-name="FX Movie Channel" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s70253_dark_360w_270h.png" group-title="TV",FX Movie Channel
http://origin.thetvapp.to/hls/FXMovieChannel/mono.m3u8
#EXTINF:-1 tvg-chno="34" tvg-id="FXX.USA.-.Eastern.us" 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://tv14s.xyz:8080/A1Jay5/362586/46699
#EXTINF:-1 tvg-chno="35" tvg-id="Game.Show.Network.-.East.us" tvg-name="Game Show Network" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s14909_dark_360w_270h.png" group-title="TV",Game Show Network
http://tv14s.xyz:8080/A1Jay5/362586/120633
#EXTINF:-1 tvg-chno="36" tvg-id="HBO.-.Eastern.Feed.us" tvg-name="HBO" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s10240_dark_360w_270h.png" group-title="TV",HBO
http://tv14s.xyz:8080/A1Jay5/362586/46713
#EXTINF:-1 tvg-chno="37" tvg-id="ION..-.Eastern.Feed.us" 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://tv14s.xyz:8080/A1Jay5/362586/9297
#EXTINF:-1 tvg-chno="38" tvg-id="Marquee.Sports.Network.us" 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://tv14s.xyz:8080/A1Jay5/362586/13379
#EXTINF:-1 tvg-chno="39" tvg-id="MLB.Network.us" 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://tv14s.xyz:8080/A1Jay5/362586/21360
#EXTINF:-1 tvg-chno="40" tvg-id="MSG.(Madison.Square.Gardens).us" 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://cord-cutter.net:8080/k4Svp2/645504/21090
#EXTINF:-1 tvg-chno="41" tvg-id="MSNBC.USA.us" tvg-name="MSNBC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s16300_dark_360w_270h.png" group-title="TV",MSNBC
http://origin.thetvapp.to/hls/MSNBC/mono.m3u8
#EXTINF:-1 tvg-chno="42" tvg-id="NBA.TV.USA.us" tvg-name="NBA TV" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s32281_dark_360w_270h.png" group-title="TV",NBA TV
http://origin.thetvapp.to/hls/NBATV/mono.m3u8
#EXTINF:-1 tvg-chno="43" tvg-id="NBC.(WNBC).New.York,.NY.us" tvg-name="NBC" tvg-logo="https://i.gyazo.com/39d42952500205d04e448247b7889256.png" group-title="TV",NBC
http://tv14s.xyz:8080/A1Jay5/362586/120751
#EXTINF:-1 tvg-chno="44" tvg-id="NBC.Sports.Boston.us" tvg-name="NBC Sports Boston" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s49198_dark_360w_270h.png" group-title="TV",NBC Sports Boston
http://tv14s.xyz:8080/A1Jay5/362586/20939
#EXTINF:-1 tvg-chno="45" tvg-id="NBC.Sports.Philadelphia.HDTV.(NBCSPAHD).us" tvg-name="NBC Sports Philadelphia" tvg-logo="https://i.gyazo.com/c5204722cef60da756f1b994d6d71c28.png" group-title="TV",NBC Sports Philadelphia
http://tv14s.xyz:8080/A1Jay5/362586/20943
#EXTINF:-1 tvg-chno="46" tvg-id="The.NFL.Network.us" 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://tv14s.xyz:8080/A1Jay5/362586/159117
#EXTINF:-1 tvg-chno="47" tvg-id="NFL.RedZone.us" 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://tv14s.xyz:8080/A1Jay5/362586/208830
#EXTINF:-1 tvg-chno="48" tvg-id="NHL.Network.USA.us" 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://tv14s.xyz:8080/A1Jay5/362586/20179
#EXTINF:-1 tvg-chno="49" tvg-id="Nickelodeon.USA.-.East.Feed.us" tvg-name="Nickelodeon" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11006_dark_360w_270h.png" group-title="TV",Nickelodeon
http://tv14s.xyz:8080/A1Jay5/362586/38
#EXTINF:-1 tvg-chno="50" tvg-id="Nicktoons.-.East.us" tvg-name="Nicktoons" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s30420_dark_360w_270h.png" group-title="TV",Nicktoons
http://origin.thetvapp.to/hls/NicktoonsEast/mono.m3u8
#EXTINF:-1 tvg-chno="51" tvg-id="Root.Sports.Northwest.us" tvg-name="Root Sports" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11062_dark_360w_270h.png" group-title="TV",Root Sports
http://tv14s.xyz:8080/A1Jay5/362586/85232
#EXTINF:-1 tvg-chno="52" tvg-id="SEC.Network.us" tvg-name="SEC Network" tvg-logo="http://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s89535_dark_360w_270h.png" group-title="TV",SEC Network
http://origin.thetvapp.to/hls/SECN/mono.m3u8
#EXTINF:-1 tvg-chno="53" tvg-id="Paramount+.with.Showtime.-.Eastern.Feed.us" tvg-name="Showtime" tvg-logo="https://raw.githubusercontent.com/tv-logo/tv-logos/refs/heads/main/countries/united-states/showtime-us.png" group-title="TV",Showtime
http://origin.thetvapp.to/hls/ShowtimeEast/mono.m3u8
#EXTINF:-1 tvg-chno="54" tvg-id="SNY:.SportsNet.New.York.(Comcast).us" 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://origin.thetvapp.to/hls/sny-sportsnet-new-york-comcast/mono.m3u8
#EXTINF:-1 tvg-chno="55" tvg-id="Sportsnet.One.ca" 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://tv14s.xyz:8080/A1Jay5/362586/10247
#EXTINF:-1 tvg-chno="56" tvg-id="SportsNet.Pittsburgh.us" 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://tv14s.xyz:8080/A1Jay5/362586/108178
#EXTINF:-1 tvg-chno="57" tvg-id="Starz.-.Eastern.us" 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://tv14s.xyz:8080/A1Jay5/362586/9299
#EXTINF:-1 tvg-chno="58" tvg-id="Syfy.-.Eastern.Feed.us" 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://tv14s.xyz:8080/A1Jay5/362586/46685
#EXTINF:-1 tvg-chno="59" tvg-id="TBS.-.East.us" tvg-name="TBS" tvg-logo="https://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
#EXTINF:-1 tvg-chno="60" tvg-id="TLC.USA.-.Eastern.us" tvg-name="TLC" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11158_dark_360w_270h.png" group-title="TV",TLC
http://tv14s.xyz:8080/A1Jay5/362586/12734
#EXTINF:-1 tvg-chno="61" tvg-id="TNT.-.Eastern.Feed.us" tvg-name="TNT" tvg-logo="https://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
#EXTINF:-1 tvg-chno="62" tvg-id="truTV.USA.-.Eastern.us" tvg-name="truTV" tvg-logo="https://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
#EXTINF:-1 tvg-chno="63" tvg-id="TSN1.ca" 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://tv14s.xyz:8080/A1Jay5/362586/57292
#EXTINF:-1 tvg-chno="64" tvg-id="TSN2.ca" 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://origin.thetvapp.to/hls/tsn2/mono.m3u8
#EXTINF:-1 tvg-chno="65" tvg-id="USA.Network.-.Eastern.Feed.us" tvg-name="USA East" tvg-logo="https://schedulesdirect-api20141201-logos.s3.dualstack.us-east-1.amazonaws.com/stationLogos/s11207_dark_360w_270h.png" group-title="TV",USA East
http://4c66041f.tvclub.xyz/iptv/E3TZUWKUS8PTA7/31124/index.m3u8
#EXTINF:-1 tvg-chno="66" tvg-id="YES.Network.us" 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://origin.thetvapp.to/hls/yes-network/mono.m3u8

View file

@ -2,39 +2,29 @@
import asyncio import asyncio
from pathlib import Path from pathlib import Path
import httpx
from scrapers import fstv, livetvsx, ppv, streambtw, streameast, tvpass from scrapers import fstv, livetvsx, ppv, streambtw, streameast, tvpass
from scrapers.utils import UA, get_logger from scrapers.utils import CLIENT, UA, get_logger
log = get_logger(__name__) log = get_logger(__name__)
BASE_URL = "https://s.id/ePwXT" BASE_FILE = Path(__file__).parent / "Base.m3u8"
M3U8_FILE = Path(__file__).parent / "TV.m3u8" M3U8_FILE = Path(__file__).parent / "TV.m3u8"
CLIENT = httpx.AsyncClient(
timeout=5,
follow_redirects=True,
headers={"User-Agent": UA},
)
def vanilla_fetch() -> tuple[list[str], int]:
async def vanilla_fetch() -> tuple[list[str], int]:
log.info("Fetching base M3U8") log.info("Fetching base M3U8")
try: data = BASE_FILE.read_text(encoding="utf-8")
r = await CLIENT.get(BASE_URL)
r.raise_for_status()
except Exception as e:
log.error(f'Failed to fetch "{BASE_URL}"\n{e}')
raise SystemExit(e) from e
last_chnl_num = int(r.text.split("tvg-chno=")[-1].split('"')[1]) last_chnl_num = int(data.split("tvg-chno=")[-1].split('"')[1])
return r.text.splitlines()[1:], last_chnl_num return data.splitlines(), last_chnl_num
async def main() -> None: async def main() -> None:
base_m3u8, tvg_chno = vanilla_fetch()
tasks = [ tasks = [
asyncio.create_task(fstv.main(CLIENT)), asyncio.create_task(fstv.main(CLIENT)),
asyncio.create_task(livetvsx.main(CLIENT)), asyncio.create_task(livetvsx.main(CLIENT)),
@ -42,12 +32,9 @@ async def main() -> None:
asyncio.create_task(streambtw.main(CLIENT)), asyncio.create_task(streambtw.main(CLIENT)),
asyncio.create_task(streameast.main(CLIENT)), asyncio.create_task(streameast.main(CLIENT)),
asyncio.create_task(tvpass.main(CLIENT)), asyncio.create_task(tvpass.main(CLIENT)),
vanilla_fetch(),
] ]
results = await asyncio.gather(*tasks) await asyncio.gather(*tasks)
base_m3u8, tvg_chno = results[-1]
additions = ( additions = (
fstv.urls fstv.urls
@ -74,15 +61,7 @@ async def main() -> None:
) )
) )
m3u8_content = "\n".join( M3U8_FILE.write_text("\n".join(base_m3u8 + live_events), encoding="utf-8")
[
'#EXTM3U url-tvg="https://raw.githubusercontent.com/doms9/iptv/refs/heads/default/EPG/TV.xml"\n'
]
+ base_m3u8
+ live_events
)
M3U8_FILE.write_text(m3u8_content, encoding="utf-8")
log.info(f"M3U8 saved to {M3U8_FILE.name}") log.info(f"M3U8 saved to {M3U8_FILE.name}")

View file

@ -1,9 +1,10 @@
from .cache import load_cache, write_cache from .cache import load_cache, write_cache
from .config import LOGOS, TZ, UA, now from .config import LOGOS, TZ, UA, now
from .logger import get_logger from .logger import get_logger
from .network import capture_req, get_base, new_browser, safe_process_event from .network import CLIENT, capture_req, get_base, new_browser, safe_process_event
__all__ = [ __all__ = [
"CLIENT",
"LOGOS", "LOGOS",
"TZ", "TZ",
"UA", "UA",

View file

@ -9,6 +9,12 @@ from playwright.async_api import Browser, BrowserContext, Playwright, Request
from .config import UA from .config import UA
CLIENT = httpx.AsyncClient(
timeout=5,
follow_redirects=True,
headers={"User-Agent": UA},
)
async def check_status(client: httpx.AsyncClient, url: str) -> bool: async def check_status(client: httpx.AsyncClient, url: str) -> bool:
try: try:

View file

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
base_url="https://s.id/ePwXT" base_file="./M3U8/Base.m3u8"
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0" UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
MAX_JOBS=10 MAX_JOBS=10
RETRY_COUNT=3 RETRY_COUNT=3
@ -59,10 +59,9 @@ get_status() {
} }
check_links() { check_links() {
echo "Checking links from: $base_url" echo "Checking links from: $base_file"
channel_num=0 channel_num=0
name="" name=""
jobs_running=0
echo "| Channel | Error (Code) | Link |" >"$STATUSLOG" echo "| Channel | Error (Code) | Link |" >"$STATUSLOG"
echo "| ------- | ------------ | ---- |" >>"$STATUSLOG" echo "| ------- | ------------ | ---- |" >>"$STATUSLOG"
@ -78,7 +77,7 @@ check_links() {
get_status "$line" "$name" & get_status "$line" "$name" &
((channel_num++)) ((channel_num++))
fi fi
done < <(curl -sL -A "$UA" "$base_url") done < <(cat "$base_file")
wait wait
echo "Done." echo "Done."