parent
7e9d430e0c
commit
47ce15b442
@ -0,0 +1,455 @@ |
|||||||
|
package list |
||||||
|
|
||||||
|
import ( |
||||||
|
"fmt" |
||||||
|
"github.com/gin-gonic/gin" |
||||||
|
) |
||||||
|
|
||||||
|
type Tvm3u struct { |
||||||
|
} |
||||||
|
|
||||||
|
func (t *Tvm3u) GetTvM3u(c *gin.Context) { |
||||||
|
fmt.Fprintln(c.Writer, "#EXTM3U x-tvg-url=\"https://epg.v1.mk/fy.xml\"") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1 tvg-name=\"4K60PSDR-H264-AAC测试\" tvg-logo=\"https://cdn.jsdelivr.net/gh/feiyangdigital/testvideo/tg.jpg\" group-title=\"4K频道\",4K60PSDR-H264-AAC测试") |
||||||
|
fmt.Fprintln(c.Writer, "https://cdn.jsdelivr.net/gh/feiyangdigital/testvideo/sdr4kvideo/index.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1 tvg-name=\"4K60PHLG-HEVC-EAC3测试\" tvg-logo=\"https://cdn.jsdelivr.net/gh/feiyangdigital/testvideo/tg.jpg\" group-title=\"4K频道\",4K60PHLG-HEVC-EAC3测试") |
||||||
|
fmt.Fprintln(c.Writer, "https://cdn.jsdelivr.net/gh/feiyangdigital/testvideo/hlg4kvideo/index.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV1\" tvg-name=\"CCTV1\" tvg-logo=\"https://epg.v1.mk/logo/CCTV1.png\" group-title=\"央视\",cctv1-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv1.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV1\" tvg-name=\"CCTV1\" tvg-logo=\"https://epg.v1.mk/logo/CCTV1.png\" group-title=\"央视\",CCTV-1") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000029752.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv1\" tvg-name=\"cctv1\" tvg-logo=\"https://epg.v1.mk/logo/cctv1.png\" group-title=\"央视\",CCTV-1-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000002226.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV1\" tvg-name=\"CCTV1\" tvg-logo=\"https://epg.v1.mk/logo/CCTV1.png\" group-title=\"央视\",CCTV-1-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265001.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv2\" tvg-name=\"cctv2\" tvg-logo=\"https://epg.v1.mk/logo/cctv2.png\" group-title=\"央视\",cctv2-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv2.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv2\" tvg-name=\"cctv2\" tvg-logo=\"https://epg.v1.mk/logo/cctv2.png\" group-title=\"央视\",CCTV-2") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000023315.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV2\" tvg-name=\"CCTV2\" tvg-logo=\"https://epg.v1.mk/logo/CCTV2.png\" group-title=\"央视\",CCTV-2-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000014161.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv2\" tvg-name=\"cctv2\" tvg-logo=\"https://epg.v1.mk/logo/cctv2.png\" group-title=\"央视\",CCTV-2-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000023315.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv3\" tvg-name=\"cctv3\" tvg-logo=\"https://epg.v1.mk/logo/cctv3.png\" group-title=\"央视\",cctv3-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv3.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv3\" tvg-name=\"cctv3\" tvg-logo=\"https://epg.v1.mk/logo/cctv3.png\" group-title=\"央视\",CCTV-3") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000022313.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv3\" tvg-name=\"cctv3\" tvg-logo=\"https://epg.v1.mk/logo/cctv3.png\" group-title=\"央视\",CCTV-3-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265003.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv4\" tvg-name=\"cctv4\" tvg-logo=\"https://epg.v1.mk/logo/cctv4.png\" group-title=\"央视\",cctv4-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv4.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV4\" tvg-name=\"CCTV4\" tvg-logo=\"https://epg.v1.mk/logo/CCTV4.png\" group-title=\"央视\",CCTV-4-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031102.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv4\" tvg-name=\"cctv4\" tvg-logo=\"https://epg.v1.mk/logo/cctv4.png\" group-title=\"央视\",CCTV-4-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265004.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5\" tvg-name=\"cctv5\" tvg-logo=\"https://epg.v1.mk/logo/cctv5.png\" group-title=\"央视\",cctv5-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv5.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5\" tvg-name=\"cctv5\" tvg-logo=\"https://epg.v1.mk/logo/cctv5.png\" group-title=\"央视\",CCTV-5") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000025222.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5\" tvg-name=\"cctv5\" tvg-logo=\"https://epg.v1.mk/logo/cctv5.png\" group-title=\"央视\",CCTV-5-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265005.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5+\" tvg-name=\"cctv5+\" tvg-logo=\"https://epg.v1.mk/logo/cctv5+.png\" group-title=\"央视\",cctv5p-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv5p.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5+\" tvg-name=\"cctv5+\" tvg-logo=\"https://epg.v1.mk/logo/cctv5+.png\" group-title=\"央视\",CCTV-5+") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000015875.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv5+\" tvg-name=\"cctv5+\" tvg-logo=\"https://epg.v1.mk/logo/cctv5+.png\" group-title=\"央视\",CCTV-5+-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265016.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv6\" tvg-name=\"cctv6\" tvg-logo=\"https://epg.v1.mk/logo/cctv6.png\" group-title=\"央视\",cctv6-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv6.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv6\" tvg-name=\"cctv6\" tvg-logo=\"https://epg.v1.mk/logo/cctv6.png\" group-title=\"央视\",CCTV-6") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000001737.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV6\" tvg-name=\"CCTV6\" tvg-logo=\"https://epg.v1.mk/logo/CCTV6.png\" group-title=\"央视\",CCTV-6-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000004574.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv6\" tvg-name=\"cctv6\" tvg-logo=\"https://epg.v1.mk/logo/cctv6.png\" group-title=\"央视\",CCTV-6-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265006.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV7\" tvg-name=\"CCTV7\" tvg-logo=\"https://epg.v1.mk/logo/CCTV7.png\" group-title=\"央视\",cctv7-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv7.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV7\" tvg-name=\"CCTV7\" tvg-logo=\"https://epg.v1.mk/logo/CCTV7.png\" group-title=\"央视\",CCTV-7") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000024341.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV7\" tvg-name=\"CCTV7\" tvg-logo=\"https://epg.v1.mk/logo/CCTV7.png\" group-title=\"央视\",CCTV-7-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000009055.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV7\" tvg-name=\"CCTV7\" tvg-logo=\"https://epg.v1.mk/logo/CCTV7.png\" group-title=\"央视\",CCTV-7-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265007.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv8\" tvg-name=\"cctv8\" tvg-logo=\"https://epg.v1.mk/logo/cctv8.png\" group-title=\"央视\",cctv8-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv8.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv8\" tvg-name=\"cctv8\" tvg-logo=\"https://epg.v1.mk/logo/cctv8.png\" group-title=\"央视\",CCTV-8") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000001070.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv8\" tvg-name=\"cctv8\" tvg-logo=\"https://epg.v1.mk/logo/cctv8.png\" group-title=\"央视\",CCTV-8-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265008.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv9\" tvg-name=\"cctv9\" tvg-logo=\"https://epg.v1.mk/logo/cctv9.png\" group-title=\"央视\",cctv9-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv9.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv9\" tvg-name=\"cctv9\" tvg-logo=\"https://epg.v1.mk/logo/cctv9.png\" group-title=\"央视\",CCTV-9") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000014583.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CCTV9\" tvg-name=\"CCTV9\" tvg-logo=\"https://epg.v1.mk/logo/CCTV9.png\" group-title=\"央视\",CCTV-9-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000032162.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv9\" tvg-name=\"cctv9\" tvg-logo=\"https://epg.v1.mk/logo/cctv9.png\" group-title=\"央视\",CCTV-9-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265009.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv10\" tvg-name=\"cctv10\" tvg-logo=\"https://epg.v1.mk/logo/cctv10.png\" group-title=\"央视\",cctv10-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv10.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv10\" tvg-name=\"cctv10\" tvg-logo=\"https://epg.v1.mk/logo/cctv10.png\" group-title=\"央视\",CCTV-10") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000023734.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv10\" tvg-name=\"cctv10\" tvg-logo=\"https://epg.v1.mk/logo/cctv10.png\" group-title=\"央视\",CCTV-10-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000012827.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv10\" tvg-name=\"cctv10\" tvg-logo=\"https://epg.v1.mk/logo/cctv10.png\" group-title=\"央视\",CCTV-10-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265010.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv11\" tvg-name=\"cctv11\" tvg-logo=\"https://epg.v1.mk/logo/cctv11.png\" group-title=\"央视\",cctv11-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv11.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv11\" tvg-name=\"cctv11\" tvg-logo=\"https://epg.v1.mk/logo/cctv11.png\" group-title=\"央视\",CCTV-11-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031106.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv11\" tvg-name=\"cctv11\" tvg-logo=\"https://epg.v1.mk/logo/cctv11.png\" group-title=\"央视\",CCTV-11-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265011.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv12\" tvg-name=\"cctv12\" tvg-logo=\"https://epg.v1.mk/logo/cctv12.png\" group-title=\"央视\",cctv12-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv12.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv12\" tvg-name=\"cctv12\" tvg-logo=\"https://epg.v1.mk/logo/cctv12.png\" group-title=\"央视\",CCTV-12") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000032494.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv12\" tvg-name=\"cctv12\" tvg-logo=\"https://epg.v1.mk/logo/cctv12.png\" group-title=\"央视\",CCTV-12-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000022586.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv12\" tvg-name=\"cctv12\" tvg-logo=\"https://epg.v1.mk/logo/cctv12.png\" group-title=\"央视\",CCTV-12-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265012.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv13\" tvg-name=\"cctv13\" tvg-logo=\"https://epg.v1.mk/logo/cctv13.png\" group-title=\"央视\",cctv13-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv13.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv13\" tvg-name=\"cctv13\" tvg-logo=\"https://epg.v1.mk/logo/cctv13.png\" group-title=\"央视\",CCTV-13-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031108.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv14\" tvg-name=\"cctv14\" tvg-logo=\"https://epg.v1.mk/logo/cctv14.png\" group-title=\"央视\",cctv14-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv14.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv14\" tvg-name=\"cctv14\" tvg-logo=\"https://epg.v1.mk/logo/cctv14.png\" group-title=\"央视\",CCTV-14") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000008170.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv14\" tvg-name=\"cctv14\" tvg-logo=\"https://epg.v1.mk/logo/cctv14.png\" group-title=\"央视\",CCTV-14-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000006673.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv14\" tvg-name=\"cctv14\" tvg-logo=\"https://epg.v1.mk/logo/cctv14.png\" group-title=\"央视\",CCTV-14-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265013.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv15\" tvg-name=\"cctv15\" tvg-logo=\"https://epg.v1.mk/logo/cctv15.png\" group-title=\"央视\",cctv15-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv15.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv15\" tvg-name=\"cctv15\" tvg-logo=\"https://epg.v1.mk/logo/cctv15.png\" group-title=\"央视\",CCTV-15-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031109.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv15\" tvg-name=\"cctv15\" tvg-logo=\"https://epg.v1.mk/logo/cctv15.png\" group-title=\"央视\",CCTV-15-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265014.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv16\" tvg-name=\"cctv16\" tvg-logo=\"https://epg.v1.mk/logo/cctv16.png\" group-title=\"央视\",cctv16-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv16.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv16\" tvg-name=\"cctv16\" tvg-logo=\"https://epg.v1.mk/logo/cctv16.png\" group-title=\"央视\",CCTV-16") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000233002.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv16\" tvg-name=\"cctv16\" tvg-logo=\"https://epg.v1.mk/logo/cctv16.png\" group-title=\"4K频道\",CCTV-16-4K-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000008000023254.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv16\" tvg-name=\"cctv16\" tvg-logo=\"https://epg.v1.mk/logo/cctv16.png\" group-title=\"4K频道\",cctv164k_10m") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv4k16_10m.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv16\" tvg-name=\"cctv16\" tvg-logo=\"https://epg.v1.mk/logo/cctv16.png\" group-title=\"4K频道\",cctv164k") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv4k16.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv17\" tvg-name=\"cctv17\" tvg-logo=\"https://epg.v1.mk/logo/cctv17.png\" group-title=\"央视\",cctv17-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv17.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv17\" tvg-name=\"cctv17\" tvg-logo=\"https://epg.v1.mk/logo/cctv17.png\" group-title=\"央视\",CCTV-17") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000268004.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv17\" tvg-name=\"cctv17\" tvg-logo=\"https://epg.v1.mk/logo/cctv17.png\" group-title=\"央视\",CCTV-17-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265015.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cgtn\" tvg-name=\"cgtn\" tvg-logo=\"https://epg.v1.mk/logo/cgtn.png\" group-title=\"央视\",CGTN") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/7745129417417101820.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CGTN记录\" tvg-name=\"CGTN记录\" tvg-logo=\"https://epg.v1.mk/logo/CGTN记录.png\" group-title=\"央视\",CGTN-记录") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/7114647837765104058.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CGTNALBY\" tvg-name=\"CGTNALBY\" tvg-logo=\"https://epg.v1.mk/logo/CGTNALBY.png\" group-title=\"央视\",cgtnar-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtnar.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cgtndocumentary\" tvg-name=\"cgtndocumentary\" tvg-logo=\"https://epg.v1.mk/logo/cgtndocumentary.png\" group-title=\"央视\",cgtndoc-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtndoc.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CGTNEY\" tvg-name=\"CGTNEY\" tvg-logo=\"https://epg.v1.mk/logo/CGTNEY.png\" group-title=\"央视\",cgtnen-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtnen.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cgtnfrench\" tvg-name=\"cgtnfrench\" tvg-logo=\"https://epg.v1.mk/logo/cgtnfrench.png\" group-title=\"央视\",cgtnfr-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtnfr.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CGTN1\" tvg-name=\"CGTN1\" tvg-logo=\"https://epg.v1.mk/logo/CGTN1.png\" group-title=\"央视\",cgtnru-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtnru.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"CGTN1\" tvg-name=\"CGTN1\" tvg-logo=\"https://epg.v1.mk/logo/CGTN1.png\" group-title=\"央视\",cgtnsp-高码") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cgtnsp.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv4k\" tvg-name=\"cctv4k\" tvg-logo=\"https://epg.v1.mk/logo/cctv4k.png\" group-title=\"4K频道\",cctv4k_10m") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv4k_10m.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv4k\" tvg-name=\"cctv4k\" tvg-logo=\"https://epg.v1.mk/logo/cctv4k.png\" group-title=\"4K频道\",cctv4k") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv4k.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv8k\" tvg-name=\"cctv8k\" tvg-logo=\"https://epg.v1.mk/logo/cctv8k.png\" group-title=\"8K频道\",cctv8k_36m") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv8k_36m.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"cctv8k\" tvg-name=\"cctv8k\" tvg-logo=\"https://epg.v1.mk/logo/cctv8k.png\" group-title=\"8K频道\",cctv8k_120m") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/ysptp/cctv8k_120m.m3u8") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"中国教育1台\" tvg-name=\"中国教育1台\" tvg-logo=\"https://epg.v1.mk/logo/中国教育1台.png\" group-title=\"其他\",中国教育电视台-1") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000002000002652.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"中国教育1台\" tvg-name=\"中国教育1台\" tvg-logo=\"https://epg.v1.mk/logo/中国教育1台.png\" group-title=\"其他\",中国教育电视台-4") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031126.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"北京卫视\" tvg-name=\"北京卫视\" tvg-logo=\"https://epg.v1.mk/logo/北京卫视.png\" group-title=\"北京\",北京卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000020451.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"北京卫视\" tvg-name=\"北京卫视\" tvg-logo=\"https://epg.v1.mk/logo/北京卫视.png\" group-title=\"北京\",北京卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265027.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"北京纪实科教\" tvg-name=\"北京纪实科教\" tvg-logo=\"https://epg.v1.mk/logo/北京纪实科教.png\" group-title=\"北京\",北京纪实科教") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000001910.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"北京纪实科教\" tvg-name=\"北京纪实科教\" tvg-logo=\"https://epg.v1.mk/logo/北京纪实科教.png\" group-title=\"北京\",北京纪实科教-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265020.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"北京卡酷少儿\" tvg-name=\"北京卡酷少儿\" tvg-logo=\"https://epg.v1.mk/logo/北京卡酷少儿.png\" group-title=\"北京\",北京卡酷少儿") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/7851974109718180595.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"安徽卫视\" tvg-name=\"安徽卫视\" tvg-logo=\"https://epg.v1.mk/logo/安徽卫视.png\" group-title=\"安徽\",安徽卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000030159.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"安徽卫视\" tvg-name=\"安徽卫视\" tvg-logo=\"https://epg.v1.mk/logo/安徽卫视.png\" group-title=\"安徽\",安徽卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000009954.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"安徽卫视\" tvg-name=\"安徽卫视\" tvg-logo=\"https://epg.v1.mk/logo/安徽卫视.png\" group-title=\"安徽\",安徽卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265025.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"东南卫视\" tvg-name=\"东南卫视\" tvg-logo=\"https://epg.v1.mk/logo/东南卫视.png\" group-title=\"卫视\",东南卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000010584.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"东南卫视\" tvg-name=\"东南卫视\" tvg-logo=\"https://epg.v1.mk/logo/东南卫视.png\" group-title=\"卫视\",东南卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265033.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"甘肃卫视\" tvg-name=\"甘肃卫视\" tvg-logo=\"https://epg.v1.mk/logo/甘肃卫视.png\" group-title=\"甘肃\",甘肃卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031121.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"广东卫视\" tvg-name=\"广东卫视\" tvg-logo=\"https://epg.v1.mk/logo/广东卫视.png\" group-title=\"广东\",广东卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000014176.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"广东卫视\" tvg-name=\"广东卫视\" tvg-logo=\"https://epg.v1.mk/logo/广东卫视.png\" group-title=\"广东\",广东卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000031076.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"广东卫视\" tvg-name=\"广东卫视\" tvg-logo=\"https://epg.v1.mk/logo/广东卫视.png\" group-title=\"广东\",广东卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265034.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"广西卫视\" tvg-name=\"广西卫视\" tvg-logo=\"https://epg.v1.mk/logo/广西卫视.png\" group-title=\"卫视\",广西卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031118.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"贵州卫视\" tvg-name=\"贵州卫视\" tvg-logo=\"https://epg.v1.mk/logo/贵州卫视.png\" group-title=\"贵州\",贵州卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000025843.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"海南卫视\" tvg-name=\"海南卫视\" tvg-logo=\"https://epg.v1.mk/logo/海南卫视.png\" group-title=\"海南\",海南卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000006211.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"河北卫视\" tvg-name=\"河北卫视\" tvg-logo=\"https://epg.v1.mk/logo/河北卫视.png\" group-title=\"河北\",河北卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000006000040016.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"河南卫视\" tvg-name=\"河南卫视\" tvg-logo=\"https://epg.v1.mk/logo/河南卫视.png\" group-title=\"河南\",河南卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031119.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"黑龙江卫视\" tvg-name=\"黑龙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/黑龙江卫视.png\" group-title=\"黑龙江\",黑龙江卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000001925.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"黑龙江卫视\" tvg-name=\"黑龙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/黑龙江卫视.png\" group-title=\"黑龙江\",黑龙江卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000016510.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"黑龙江卫视\" tvg-name=\"黑龙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/黑龙江卫视.png\" group-title=\"黑龙江\",黑龙江卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265029.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖北卫视\" tvg-name=\"湖北卫视\" tvg-logo=\"https://epg.v1.mk/logo/湖北卫视.png\" group-title=\"湖北\",湖北卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000024621.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖北卫视\" tvg-name=\"湖北卫视\" tvg-logo=\"https://epg.v1.mk/logo/湖北卫视.png\" group-title=\"湖北\",湖北卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000015436.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖北卫视\" tvg-name=\"湖北卫视\" tvg-logo=\"https://epg.v1.mk/logo/湖北卫视.png\" group-title=\"湖北\",湖北卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265023.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南卫视\" tvg-name=\"湖南卫视\" tvg-logo=\"https://epg.v1.mk/logo/湖南卫视.png\" group-title=\"湖南\",湖南卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000006692.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南卫视4\" tvg-name=\"湖南卫视4\" tvg-logo=\"https://epg.v1.mk/logo/湖南卫视4.png\" group-title=\"湖南\",湖南卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000018044.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南卫视\" tvg-name=\"湖南卫视\" tvg-logo=\"https://epg.v1.mk/logo/湖南卫视.png\" group-title=\"湖南\",湖南卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265024.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南金鹰纪实\" tvg-name=\"湖南金鹰纪实\" tvg-logo=\"https://epg.v1.mk/logo/湖南金鹰纪实.png\" group-title=\"湖南\",湖南金鹰纪实") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031203.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南\" tvg-name=\"湖南\" tvg-logo=\"https://epg.v1.mk/logo/湖南.png\" group-title=\"湖南\",湖南快乐垂钓") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031206.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"湖南茶频道\" tvg-name=\"湖南茶频道\" tvg-logo=\"https://epg.v1.mk/logo/湖南茶频道.png\" group-title=\"湖南\",湖南茶频道") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031209.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"吉林卫视\" tvg-name=\"吉林卫视\" tvg-logo=\"https://epg.v1.mk/logo/吉林卫视.png\" group-title=\"吉林\",吉林卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031117.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"江苏卫视\" tvg-name=\"江苏卫视\" tvg-logo=\"https://epg.v1.mk/logo/江苏卫视.png\" group-title=\"江苏\",江苏卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000014861.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"江苏卫视\" tvg-name=\"江苏卫视\" tvg-logo=\"https://epg.v1.mk/logo/江苏卫视.png\" group-title=\"江苏\",江苏卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000001828.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"江苏卫视\" tvg-name=\"江苏卫视\" tvg-logo=\"https://epg.v1.mk/logo/江苏卫视.png\" group-title=\"江苏\",江苏卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265030.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"江西卫视\" tvg-name=\"江西卫视\" tvg-logo=\"https://epg.v1.mk/logo/江西卫视.png\" group-title=\"江西\",江西卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000268001.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"江西卫视\" tvg-name=\"江西卫视\" tvg-logo=\"https://epg.v1.mk/logo/江西卫视.png\" group-title=\"江西\",江西卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265032.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"辽宁卫视\" tvg-name=\"辽宁卫视\" tvg-logo=\"https://epg.v1.mk/logo/辽宁卫视.png\" group-title=\"辽宁\",辽宁卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000011671.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"辽宁卫视\" tvg-name=\"辽宁卫视\" tvg-logo=\"https://epg.v1.mk/logo/辽宁卫视.png\" group-title=\"辽宁\",辽宁卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265022.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"青海卫视\" tvg-name=\"青海卫视\" tvg-logo=\"https://epg.v1.mk/logo/青海卫视.png\" group-title=\"青海\",青海卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000002000013359.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"山东卫视\" tvg-name=\"山东卫视\" tvg-logo=\"https://epg.v1.mk/logo/山东卫视.png\" group-title=\"山东\",山东卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000016568.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"山东卫视\" tvg-name=\"山东卫视\" tvg-logo=\"https://epg.v1.mk/logo/山东卫视.png\" group-title=\"山东\",山东卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000004134.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"山东卫视\" tvg-name=\"山东卫视\" tvg-logo=\"https://epg.v1.mk/logo/山东卫视.png\" group-title=\"山东\",山东卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265019.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海东方影视\" tvg-name=\"上海东方影视\" tvg-logo=\"https://epg.v1.mk/logo/上海东方影视.png\" group-title=\"上海\",上海东方卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000003639.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海东方影视\" tvg-name=\"上海东方影视\" tvg-logo=\"https://epg.v1.mk/logo/上海东方影视.png\" group-title=\"上海\",上海东方卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000014098.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海东方影视\" tvg-name=\"上海东方影视\" tvg-logo=\"https://epg.v1.mk/logo/上海东方影视.png\" group-title=\"上海\",上海东方卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265018.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海ICS\" tvg-name=\"上海ICS\" tvg-logo=\"https://epg.v1.mk/logo/上海ICS.png\" group-title=\"上海\",上海-ICS-外语") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000030951.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海第一财经\" tvg-name=\"上海第一财经\" tvg-logo=\"https://epg.v1.mk/logo/上海第一财经.png\" group-title=\"上海\",上海第一财经") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000027146.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海东方影视\" tvg-name=\"上海东方影视\" tvg-logo=\"https://epg.v1.mk/logo/上海东方影视.png\" group-title=\"上海\",上海东方财经") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000007000010003.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海东方影视\" tvg-name=\"上海东方影视\" tvg-logo=\"https://epg.v1.mk/logo/上海东方影视.png\" group-title=\"上海\",上海东方影视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000032212.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海都市\" tvg-name=\"上海都市\" tvg-logo=\"https://epg.v1.mk/logo/上海都市.png\" group-title=\"上海\",上海都市") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000018926.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海ICS\" tvg-name=\"上海ICS\" tvg-logo=\"https://epg.v1.mk/logo/上海ICS.png\" group-title=\"上海\",上海法治天地") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000002000000014.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海ICS\" tvg-name=\"上海ICS\" tvg-logo=\"https://epg.v1.mk/logo/上海ICS.png\" group-title=\"上海\",上海哈哈炫动") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031123.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海纪实人文\" tvg-name=\"上海纪实人文\" tvg-logo=\"https://epg.v1.mk/logo/上海纪实人文.png\" group-title=\"上海\",上海纪实人文-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000010282.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海纪实人文\" tvg-name=\"上海纪实人文\" tvg-logo=\"https://epg.v1.mk/logo/上海纪实人文.png\" group-title=\"上海\",上海纪实人文-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265021.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海五星体育\" tvg-name=\"上海五星体育\" tvg-logo=\"https://epg.v1.mk/logo/上海五星体育.png\" group-title=\"上海\",上海五星体育") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000017540.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"上海新闻综合\" tvg-name=\"上海新闻综合\" tvg-logo=\"https://epg.v1.mk/logo/上海新闻综合.png\" group-title=\"上海\",上海新闻综合") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031110.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"深圳卫视\" tvg-name=\"深圳卫视\" tvg-logo=\"https://epg.v1.mk/logo/深圳卫视.png\" group-title=\"卫视\",深圳卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000007410.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"深圳卫视\" tvg-name=\"深圳卫视\" tvg-logo=\"https://epg.v1.mk/logo/深圳卫视.png\" group-title=\"卫视\",深圳卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000002116.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"深圳卫视\" tvg-name=\"深圳卫视\" tvg-logo=\"https://epg.v1.mk/logo/深圳卫视.png\" group-title=\"卫视\",深圳卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265028.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"四川卫视\" tvg-name=\"四川卫视\" tvg-logo=\"https://epg.v1.mk/logo/四川卫视.png\" group-title=\"四川\",四川卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000006119.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"天津卫视\" tvg-name=\"天津卫视\" tvg-logo=\"https://epg.v1.mk/logo/天津卫视.png\" group-title=\"卫视\",天津卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000006827.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"天津卫视\" tvg-name=\"天津卫视\" tvg-logo=\"https://epg.v1.mk/logo/天津卫视.png\" group-title=\"卫视\",天津卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000001000009186.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"天津卫视\" tvg-name=\"天津卫视\" tvg-logo=\"https://epg.v1.mk/logo/天津卫视.png\" group-title=\"卫视\",天津卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265026.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"云南卫视\" tvg-name=\"云南卫视\" tvg-logo=\"https://epg.v1.mk/logo/云南卫视.png\" group-title=\"云南\",云南卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031120.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"浙江卫视\" tvg-name=\"浙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/浙江卫视.png\" group-title=\"浙江\",浙江卫视-50-FPS") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000004000007275.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"浙江卫视\" tvg-name=\"浙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/浙江卫视.png\" group-title=\"浙江\",浙江卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000014260.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"浙江卫视\" tvg-name=\"浙江卫视\" tvg-logo=\"https://epg.v1.mk/logo/浙江卫视.png\" group-title=\"浙江\",浙江卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265031.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"重庆卫视\" tvg-name=\"重庆卫视\" tvg-logo=\"https://epg.v1.mk/logo/重庆卫视.png\" group-title=\"重庆\",重庆卫视") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000001096.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"重庆卫视\" tvg-name=\"重庆卫视\" tvg-logo=\"https://epg.v1.mk/logo/重庆卫视.png\" group-title=\"重庆\",重庆卫视-HEVC") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000265017.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"华数4K\" tvg-name=\"华数4K\" tvg-logo=\"https://epg.v1.mk/logo/华数4K.png\" group-title=\"4K频道\",华数-4K") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000003000004748.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"纯享4K\" tvg-name=\"纯享4K\" tvg-logo=\"https://epg.v1.mk/logo/纯享4K.png\" group-title=\"4K频道\",纯享-4K") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000011651.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"咪咕4K\" tvg-name=\"咪咕4K\" tvg-logo=\"https://epg.v1.mk/logo/咪咕4K.png\" group-title=\"4K频道\",咪咕4K-1") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/3000000010000005180.m3u8?cdn=FifastbLive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"咪咕4K\" tvg-name=\"咪咕4K\" tvg-logo=\"https://epg.v1.mk/logo/咪咕4K.png\" group-title=\"4K频道\",咪咕4K-2") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/3000000010000015686.m3u8?cdn=FifastbLive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"咪咕4k\" tvg-name=\"咪咕4k\" tvg-logo=\"https://epg.v1.mk/logo/咪咕4k.png\" group-title=\"其他\",咪咕全民热练") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/3000000020000031315.m3u8?cdn=FifastbLive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"求索动物\" tvg-name=\"求索动物\" tvg-logo=\"https://epg.v1.mk/logo/求索动物.png\" group-title=\"其他\",求索动物") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000002000010046.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"求索纪录\" tvg-name=\"求索纪录\" tvg-logo=\"https://epg.v1.mk/logo/求索纪录.png\" group-title=\"其他\",求索纪录") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000002000032052.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"求索科学\" tvg-name=\"求索科学\" tvg-logo=\"https://epg.v1.mk/logo/求索科学.png\" group-title=\"其他\",求索科学") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000002000032344.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"求索生活\" tvg-name=\"求索生活\" tvg-logo=\"https://epg.v1.mk/logo/求索生活.png\" group-title=\"其他\",求索生活") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000002000003382.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV精品综合\" tvg-name=\"NewTV精品综合\" tvg-logo=\"https://epg.v1.mk/logo/NewTV精品综合.png\" group-title=\"NEWTV\",NewTV-精品综合") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000019008.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv精品大剧\" tvg-name=\"newtv精品大剧\" tvg-logo=\"https://epg.v1.mk/logo/newtv精品大剧.png\" group-title=\"NEWTV\",NewTV-精品大剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000013968.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv精品纪录\" tvg-name=\"newtv精品纪录\" tvg-logo=\"https://epg.v1.mk/logo/newtv精品纪录.png\" group-title=\"NEWTV\",NewTV-精品纪录") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000013730.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv精品体育\" tvg-name=\"newtv精品体育\" tvg-logo=\"https://epg.v1.mk/logo/newtv精品体育.png\" group-title=\"NEWTV\",NewTV-精品体育") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000014634.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTV精品萌宠\" tvg-name=\"NEWTV精品萌宠\" tvg-logo=\"https://epg.v1.mk/logo/NEWTV精品萌宠.png\" group-title=\"NEWTV\",NewTV-精品萌宠") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000032328.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv爱情喜剧\" tvg-name=\"newtv爱情喜剧\" tvg-logo=\"https://epg.v1.mk/logo/newtv爱情喜剧.png\" group-title=\"NEWTV\",NewTV-爱情喜剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000010.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv超级电视剧\" tvg-name=\"newtv超级电视剧\" tvg-logo=\"https://epg.v1.mk/logo/newtv超级电视剧.png\" group-title=\"NEWTV\",NewTV-超级电视剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000268003.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv超级电影\" tvg-name=\"newtv超级电影\" tvg-logo=\"https://epg.v1.mk/logo/newtv超级电影.png\" group-title=\"NEWTV\",NewTV-超级电影") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000003000012426.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv超级体育\" tvg-name=\"newtv超级体育\" tvg-logo=\"https://epg.v1.mk/logo/newtv超级体育.png\" group-title=\"NEWTV\",NewTV-超级体育") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000009601.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv超级综艺\" tvg-name=\"newtv超级综艺\" tvg-logo=\"https://epg.v1.mk/logo/newtv超级综艺.png\" group-title=\"NEWTV\",NewTV-超级综艺") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000268002.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv潮妈辣婆\" tvg-name=\"newtv潮妈辣婆\" tvg-logo=\"https://epg.v1.mk/logo/newtv潮妈辣婆.png\" group-title=\"NEWTV\",NewTV-潮妈辣婆") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000018.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV东北热剧\" tvg-name=\"NewTV东北热剧\" tvg-logo=\"https://epg.v1.mk/logo/NewTV东北热剧.png\" group-title=\"NEWTV\",NewTV-东北热剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000266013.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv动作电影\" tvg-name=\"newtv动作电影\" tvg-logo=\"https://epg.v1.mk/logo/newtv动作电影.png\" group-title=\"NEWTV\",NewTV-动作电影") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000018653.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV古装剧场\" tvg-name=\"NewTV古装剧场\" tvg-logo=\"https://epg.v1.mk/logo/NewTV古装剧场.png\" group-title=\"NEWTV\",NewTV-古装剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000024.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV欢乐剧场\" tvg-name=\"NewTV欢乐剧场\" tvg-logo=\"https://epg.v1.mk/logo/NewTV欢乐剧场.png\" group-title=\"NEWTV\",NewTV-欢乐剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000266012.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv家庭剧场\" tvg-name=\"newtv家庭剧场\" tvg-logo=\"https://epg.v1.mk/logo/newtv家庭剧场.png\" group-title=\"NEWTV\",NewTV-家庭剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000008284.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV金牌综艺\" tvg-name=\"NewTV金牌综艺\" tvg-logo=\"https://epg.v1.mk/logo/NewTV金牌综艺.png\" group-title=\"NEWTV\",NewTV-金牌综艺") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000026167.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv惊悚悬疑\" tvg-name=\"newtv惊悚悬疑\" tvg-logo=\"https://epg.v1.mk/logo/newtv惊悚悬疑.png\" group-title=\"NEWTV\",NewTV-惊悚悬疑") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000024282.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv军旅剧场\" tvg-name=\"newtv军旅剧场\" tvg-logo=\"https://epg.v1.mk/logo/newtv军旅剧场.png\" group-title=\"NEWTV\",NewTV-军旅剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000014.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv军事评论\" tvg-name=\"newtv军事评论\" tvg-logo=\"https://epg.v1.mk/logo/newtv军事评论.png\" group-title=\"NEWTV\",NewTV-军事评论") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000022.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV魅力潇湘\" tvg-name=\"NewTV魅力潇湘\" tvg-logo=\"https://epg.v1.mk/logo/NewTV魅力潇湘.png\" group-title=\"NEWTV\",NewTV-魅力潇湘") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000006197.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NewTV明星大片\" tvg-name=\"NewTV明星大片\" tvg-logo=\"https://epg.v1.mk/logo/NewTV明星大片.png\" group-title=\"NEWTV\",NewTV-明星大片") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000016.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv农业致富\" tvg-name=\"newtv农业致富\" tvg-logo=\"https://epg.v1.mk/logo/newtv农业致富.png\" group-title=\"NEWTV\",NewTV-农业致富") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000003.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTV武博世界\" tvg-name=\"NEWTV武博世界\" tvg-logo=\"https://epg.v1.mk/logo/NEWTV武博世界.png\" group-title=\"NEWTV\",NewTV-武博世界") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000007.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv炫舞未来\" tvg-name=\"newtv炫舞未来\" tvg-logo=\"https://epg.v1.mk/logo/newtv炫舞未来.png\" group-title=\"NEWTV\",NewTV-炫舞未来") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000000515.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv怡伴健康\" tvg-name=\"newtv怡伴健康\" tvg-logo=\"https://epg.v1.mk/logo/newtv怡伴健康.png\" group-title=\"NEWTV\",NewTV-怡伴健康") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000005000266011.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"newtv中国功夫\" tvg-name=\"newtv中国功夫\" tvg-logo=\"https://epg.v1.mk/logo/newtv中国功夫.png\" group-title=\"NEWTV\",NewTV-中国功夫") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/2000000003000000009.m3u8?cdn=hnbblive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTV黑莓电影\" tvg-name=\"NEWTV黑莓电影\" tvg-logo=\"https://epg.v1.mk/logo/NEWTV黑莓电影.png\" group-title=\"NEWTV\",NewTV-黑莓电影") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000019624.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTV黑莓动画\" tvg-name=\"NEWTV黑莓动画\" tvg-logo=\"https://epg.v1.mk/logo/NEWTV黑莓动画.png\" group-title=\"NEWTV\",NewTV-黑莓动画") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000004000021734.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTVCJDY\" tvg-name=\"NEWTVCJDY\" tvg-logo=\"https://epg.v1.mk/logo/NEWTVCJDY.png\" group-title=\"NEWTV\",NewTV-哒啵电竞") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000006000032327.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"NEWTVCJDY\" tvg-name=\"NEWTVCJDY\" tvg-logo=\"https://epg.v1.mk/logo/NEWTVCJDY.png\" group-title=\"NEWTV\",NewTV-哒啵赛事") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/1000000001000003775.m3u8?cdn=ystenlive") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV\" tvg-name=\"SITV\" tvg-logo=\"https://epg.v1.mk/logo/SITV.png\" group-title=\"其他\",SiTV-动漫秀场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031113.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV都市剧场\" tvg-name=\"SITV都市剧场\" tvg-logo=\"https://epg.v1.mk/logo/SITV都市剧场.png\" group-title=\"其他\",SiTV-都市剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031111.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV法治天地\" tvg-name=\"SITV法治天地\" tvg-logo=\"https://epg.v1.mk/logo/SITV法治天地.png\" group-title=\"其他\",SiTV-法治天地") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/9001547084732463424.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV欢笑剧场\" tvg-name=\"SITV欢笑剧场\" tvg-logo=\"https://epg.v1.mk/logo/SITV欢笑剧场.png\" group-title=\"其他\",SiTV-欢笑剧场") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000002000009455.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV欢笑剧场\" tvg-name=\"SITV欢笑剧场\" tvg-logo=\"https://epg.v1.mk/logo/SITV欢笑剧场.png\" group-title=\"其他\",SiTV-欢笑剧场-4K") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000007000010001.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV金色学堂\" tvg-name=\"SITV金色学堂\" tvg-logo=\"https://epg.v1.mk/logo/SITV金色学堂.png\" group-title=\"其他\",SiTV-金色学堂") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000010000026105.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV劲爆体育\" tvg-name=\"SITV劲爆体育\" tvg-logo=\"https://epg.v1.mk/logo/SITV劲爆体育.png\" group-title=\"其他\",SiTV-劲爆体育") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000002000029972.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV乐游\" tvg-name=\"SITV乐游\" tvg-logo=\"https://epg.v1.mk/logo/SITV乐游.png\" group-title=\"其他\",SiTV-乐游") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031112.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV\" tvg-name=\"SITV\" tvg-logo=\"https://epg.v1.mk/logo/SITV.png\" group-title=\"其他\",SiTV-魅力足球") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031207.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV七彩戏剧\" tvg-name=\"SITV七彩戏剧\" tvg-logo=\"https://epg.v1.mk/logo/SITV七彩戏剧.png\" group-title=\"其他\",SiTV-七彩戏剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031116.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV\" tvg-name=\"SITV\" tvg-logo=\"https://epg.v1.mk/logo/SITV.png\" group-title=\"其他\",SiTV-生活时尚") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000002000019634.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"SITV\" tvg-name=\"SITV\" tvg-logo=\"https://epg.v1.mk/logo/SITV.png\" group-title=\"其他\",SiTV-游戏风云") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/5000000011000031114.m3u8?cdn=bestzb") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱电竞\" tvg-name=\"IHOT爱电竞\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱电竞.png\" group-title=\"IHOT\",iHOT-爱电竞") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000230630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱谍战\" tvg-name=\"IHOT爱谍战\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱谍战.png\" group-title=\"IHOT\",iHOT-爱谍战") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000070630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱动漫\" tvg-name=\"IHOT爱动漫\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱动漫.png\" group-title=\"IHOT\",iHOT-爱动漫") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000280630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱都市\" tvg-name=\"IHOT爱都市\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱都市.png\" group-title=\"IHOT\",iHOT-爱都市") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000080630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱怀旧\" tvg-name=\"IHOT爱怀旧\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱怀旧.png\" group-title=\"IHOT\",iHOT-爱怀旧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000260630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱经典\" tvg-name=\"IHOT爱经典\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱经典.png\" group-title=\"IHOT\",iHOT-爱经典") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000060630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱科幻\" tvg-name=\"IHOT爱科幻\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱科幻.png\" group-title=\"IHOT\",iHOT-爱科幻") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000020630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱科学\" tvg-name=\"IHOT爱科学\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱科学.png\" group-title=\"IHOT\",iHOT-爱科学") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000160630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱浪漫\" tvg-name=\"IHOT爱浪漫\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱浪漫.png\" group-title=\"IHOT\",iHOT-爱浪漫") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000040630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱历史\" tvg-name=\"IHOT爱历史\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱历史.png\" group-title=\"IHOT\",iHOT-爱历史") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000150630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱旅行\" tvg-name=\"IHOT爱旅行\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱旅行.png\" group-title=\"IHOT\",iHOT-爱旅行") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000250630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱奇谈\" tvg-name=\"IHOT爱奇谈\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱奇谈.png\" group-title=\"IHOT\",iHOT-爱奇谈") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000270630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱青春\" tvg-name=\"IHOT爱青春\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱青春.png\" group-title=\"IHOT\",iHOT-爱青春") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000100630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱赛车\" tvg-name=\"IHOT爱赛车\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱赛车.png\" group-title=\"IHOT\",iHOT-爱赛车") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000240630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱体育\" tvg-name=\"IHOT爱体育\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱体育.png\" group-title=\"IHOT\",iHOT-爱体育") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000290630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱玩具\" tvg-name=\"IHOT爱玩具\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱玩具.png\" group-title=\"IHOT\",iHOT-爱玩具") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000220630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱喜剧\" tvg-name=\"IHOT爱喜剧\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱喜剧.png\" group-title=\"IHOT\",iHOT-爱喜剧") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000010630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱悬疑\" tvg-name=\"IHOT爱悬疑\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱悬疑.png\" group-title=\"IHOT\",iHOT-爱悬疑") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000050630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱幼教\" tvg-name=\"IHOT爱幼教\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱幼教.png\" group-title=\"IHOT\",iHOT-爱幼教") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000180630.m3u8?cdn=wasusyt") |
||||||
|
fmt.Fprintln(c.Writer, "#EXTINF:-1,tvg-id=\"IHOT爱院线\" tvg-name=\"IHOT爱院线\" tvg-logo=\"https://epg.v1.mk/logo/IHOT爱院线.png\" group-title=\"IHOT\",iHOT-爱院线") |
||||||
|
fmt.Fprintln(c.Writer, "http://"+c.Request.Host+"/itv/6000000006000030630.m3u8?cdn=wasusyt") |
||||||
|
} |
||||||
@ -0,0 +1,341 @@ |
|||||||
|
package liveurls |
||||||
|
|
||||||
|
import ( |
||||||
|
"context" |
||||||
|
"github.com/gin-gonic/gin" |
||||||
|
"io" |
||||||
|
"net" |
||||||
|
"net/http" |
||||||
|
"regexp" |
||||||
|
"strings" |
||||||
|
"sync" |
||||||
|
"time" |
||||||
|
) |
||||||
|
|
||||||
|
type Itv struct { |
||||||
|
} |
||||||
|
|
||||||
|
var ( |
||||||
|
hostMappings = map[string]string{ |
||||||
|
"cache.ott.ystenlive.itv.cmvideo.cn": "feiyangdigital.tg.ystenlive.ottdns.com", |
||||||
|
"cache.ott.bestlive.itv.cmvideo.cn": "feiyangdigital.tg.bestlive.ottdns.com", |
||||||
|
"cache.ott.wasulive.itv.cmvideo.cn": "feiyangdigital.tg.wasulive.ottdns.com", |
||||||
|
"cache.ott.fifalive.itv.cmvideo.cn": "feiyangdigital.tg.fifalive.ottdns.com", |
||||||
|
"cache.ott.hnbblive.itv.cmvideo.cn": "feiyangdigital.tg.hnbblive.ottdns.com", |
||||||
|
} |
||||||
|
programList = map[string]string{ |
||||||
|
"wasusyt/6000000001000029752.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000029752/1.m3u8?channel-id=wasusyt&Contentid=6000000001000029752&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000002226.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000002226/1.m3u8?channel-id=bestzb&Contentid=5000000004000002226&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265001.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265001/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265001&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000023315.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000023315/1.m3u8?channel-id=ystenlive&Contentid=1000000001000023315&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000014161.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000014161/1.m3u8?channel-id=wasusyt&Contentid=6000000001000014161&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000022313.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000022313/1.m3u8?channel-id=wasusyt&Contentid=6000000001000022313&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265003.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265003/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265003&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031102.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031102/1.m3u8?channel-id=bestzb&Contentid=5000000011000031102&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265004.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265004/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265004&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000025222.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000025222/1.m3u8?channel-id=ystenlive&Contentid=1000000005000025222&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265005.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265005/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265005&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000015875.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000015875/1.m3u8?channel-id=wasusyt&Contentid=6000000001000015875&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265016.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265016/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265016&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000001737.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000001737/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001737&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000004574.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000004574/1.m3u8?channel-id=wasusyt&Contentid=6000000001000004574&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265006.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265006/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265006&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000024341.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000024341/1.m3u8?channel-id=ystenlive&Contentid=1000000001000024341&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000009055.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000009055/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009055&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265007.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265007/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265007&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000001070.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000001070/1.m3u8?channel-id=wasusyt&Contentid=6000000001000001070&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265008.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265008/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265008&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000014583.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000014583/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014583&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000032162.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000032162/1.m3u8?channel-id=wasusyt&Contentid=6000000001000032162&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265009.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265009/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265009&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000023734.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000023734/1.m3u8?channel-id=ystenlive&Contentid=1000000001000023734&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000012827.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000012827/1.m3u8?channel-id=bestzb&Contentid=5000000004000012827&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265010.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265010/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265010&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031106.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031106/1.m3u8?channel-id=bestzb&Contentid=5000000011000031106&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265011.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265011/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265011&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000032494.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000032494/1.m3u8?channel-id=ystenlive&Contentid=1000000001000032494&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000022586.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000022586/1.m3u8?channel-id=wasusyt&Contentid=6000000001000022586&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265012.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265012/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265012&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031108.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031108/1.m3u8?channel-id=bestzb&Contentid=5000000011000031108&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000008170.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000008170/1.m3u8?channel-id=ystenlive&Contentid=1000000001000008170&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000006673.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000006673/1.m3u8?channel-id=bestzb&Contentid=5000000004000006673&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265013.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265013/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265013&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031109.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031109/1.m3u8?channel-id=bestzb&Contentid=5000000011000031109&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265014.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265014/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265014&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000233002.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000233002/1.m3u8?channel-id=ystenlive&Contentid=1000000006000233002&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000008000023254.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000008000023254/1.m3u8?channel-id=bestzb&Contentid=5000000008000023254&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000268004.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000268004/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268004&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265015.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265015/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265015&livemode=1&stbId=3", |
||||||
|
"hnbblive/7745129417417101820.m3u8": "http://gslbserv.itv.cmvideo.cn:80/7745129417417101820/1.m3u8?channel-id=hnbblive&Contentid=7745129417417101820&livemode=1&stbId=3", |
||||||
|
"hnbblive/7114647837765104058.m3u8": "http://gslbserv.itv.cmvideo.cn:80/7114647837765104058/1.m3u8?channel-id=hnbblive&Contentid=7114647837765104058&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000002000002652.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000002000002652/1.m3u8?channel-id=bestzb&Contentid=5000000002000002652&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031126.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031126/1.m3u8?channel-id=bestzb&Contentid=5000000011000031126&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000020451.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000020451/1.m3u8?channel-id=wasusyt&Contentid=6000000001000020451&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265027.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265027/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265027&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000001910.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000001910/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001910&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265020.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265020/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265020&livemode=1&stbId=3", |
||||||
|
"bestzb/7851974109718180595.m3u8": "http://gslbserv.itv.cmvideo.cn:80/7851974109718180595/1.m3u8?channel-id=bestzb&Contentid=7851974109718180595&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000030159.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000030159/1.m3u8?channel-id=ystenlive&Contentid=1000000001000030159&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000009954.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000009954/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009954&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265025.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265025/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265025&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000010584.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000010584/1.m3u8?channel-id=bestzb&Contentid=5000000004000010584&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265033.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265033/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265033&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031121.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031121/1.m3u8?channel-id=bestzb&Contentid=5000000011000031121&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000014176.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000014176/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014176&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000031076.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000031076/1.m3u8?channel-id=wasusyt&Contentid=6000000001000031076&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265034.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265034/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265034&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031118.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031118/1.m3u8?channel-id=bestzb&Contentid=5000000011000031118&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000025843.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000025843/1.m3u8?channel-id=bestzb&Contentid=5000000004000025843&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000006211.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000006211/1.m3u8?channel-id=bestzb&Contentid=5000000004000006211&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000006000040016.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000006000040016/1.m3u8?channel-id=bestzb&Contentid=5000000006000040016&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031119.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031119/1.m3u8?channel-id=bestzb&Contentid=5000000011000031119&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000001925.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000001925/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001925&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000016510.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000016510/1.m3u8?channel-id=wasusyt&Contentid=6000000001000016510&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265029.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265029/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265029&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000024621.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000024621/1.m3u8?channel-id=ystenlive&Contentid=1000000001000024621&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000015436.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000015436/1.m3u8?channel-id=wasusyt&Contentid=6000000001000015436&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265023.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265023/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265023&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000006692.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000006692/1.m3u8?channel-id=bestzb&Contentid=5000000004000006692&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000018044.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000018044/1.m3u8?channel-id=wasusyt&Contentid=6000000001000018044&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265024.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265024/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265024&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031203.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031203/1.m3u8?channel-id=bestzb&Contentid=5000000011000031203&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031206.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031206/1.m3u8?channel-id=bestzb&Contentid=5000000011000031206&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031209.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031209/1.m3u8?channel-id=bestzb&Contentid=5000000011000031209&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031117.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031117/1.m3u8?channel-id=bestzb&Contentid=5000000011000031117&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000014861.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000014861/1.m3u8?channel-id=wasusyt&Contentid=6000000001000014861&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000001828.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000001828/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001828&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265030.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265030/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265030&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000268001.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000268001/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268001&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265032.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265032/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265032&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000011671.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000011671/1.m3u8?channel-id=bestzb&Contentid=5000000004000011671&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265022.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265022/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265022&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000002000013359.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000002000013359/1.m3u8?channel-id=ystenlive&Contentid=1000000002000013359&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000016568.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000016568/1.m3u8?channel-id=ystenlive&Contentid=1000000001000016568&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000004134.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000004134/1.m3u8?channel-id=wasusyt&Contentid=6000000001000004134&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265019.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265019/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265019&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000003639.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000003639/1.m3u8?channel-id=wasusyt&Contentid=6000000001000003639&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000014098.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000014098/1.m3u8?channel-id=bestzb&Contentid=5000000004000014098&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265018.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265018/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265018&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000030951.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000030951/1.m3u8?channel-id=bestzb&Contentid=5000000010000030951&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000027146.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000027146/1.m3u8?channel-id=bestzb&Contentid=5000000010000027146&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000007000010003.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000007000010003/1.m3u8?channel-id=bestzb&Contentid=5000000007000010003&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000032212.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000032212/1.m3u8?channel-id=bestzb&Contentid=5000000010000032212&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000018926.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000018926/1.m3u8?channel-id=bestzb&Contentid=5000000010000018926&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000002000000014.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000002000000014/1.m3u8?channel-id=hnbblive&Contentid=2000000002000000014&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031123.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031123/1.m3u8?channel-id=bestzb&Contentid=5000000011000031123&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000010282.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000010282/1.m3u8?channel-id=bestzb&Contentid=5000000004000010282&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265021.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265021/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265021&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000017540.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000017540/1.m3u8?channel-id=bestzb&Contentid=5000000010000017540&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031110.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031110/1.m3u8?channel-id=bestzb&Contentid=5000000011000031110&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000007410.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000007410/1.m3u8?channel-id=bestzb&Contentid=5000000004000007410&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000002116.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000002116/1.m3u8?channel-id=wasusyt&Contentid=6000000001000002116&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265028.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265028/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265028&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000006119.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000006119/1.m3u8?channel-id=bestzb&Contentid=5000000004000006119&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000006827.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000006827/1.m3u8?channel-id=bestzb&Contentid=5000000004000006827&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000001000009186.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000001000009186/1.m3u8?channel-id=wasusyt&Contentid=6000000001000009186&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265026.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265026/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265026&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031120.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031120/1.m3u8?channel-id=bestzb&Contentid=5000000011000031120&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000004000007275.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000004000007275/1.m3u8?channel-id=bestzb&Contentid=5000000004000007275&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000014260.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000014260/1.m3u8?channel-id=ystenlive&Contentid=1000000001000014260&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265031.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265031/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265031&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000001096.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000001096/1.m3u8?channel-id=ystenlive&Contentid=1000000001000001096&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000265017.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000265017/1.m3u8?channel-id=ystenlive&Contentid=1000000005000265017&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000003000004748.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000003000004748/1.m3u8?channel-id=wasusyt&Contentid=6000000003000004748&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000011651.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000011651/1.m3u8?channel-id=ystenlive&Contentid=1000000004000011651&livemode=1&stbId=3", |
||||||
|
"FifastbLive/3000000010000005180.m3u8": "http://gslbserv.itv.cmvideo.cn:80/3000000010000005180/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000005180&livemode=1&stbId=3", |
||||||
|
"FifastbLive/3000000010000015686.m3u8": "http://gslbserv.itv.cmvideo.cn:80/3000000010000015686/1.m3u8?channel-id=FifastbLive&Contentid=3000000010000015686&livemode=1&stbId=3", |
||||||
|
"FifastbLive/3000000020000031315.m3u8": "http://gslbserv.itv.cmvideo.cn:80/3000000020000031315/1.m3u8?channel-id=FifastbLive&Contentid=3000000020000031315&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000002000010046.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000002000010046/1.m3u8?channel-id=wasusyt&Contentid=6000000002000010046&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000002000032052.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000002000032052/1.m3u8?channel-id=wasusyt&Contentid=6000000002000032052&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000002000032344.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000002000032344/1.m3u8?channel-id=wasusyt&Contentid=6000000002000032344&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000002000003382.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000002000003382/1.m3u8?channel-id=wasusyt&Contentid=6000000002000003382&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000019008.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000019008/1.m3u8?channel-id=ystenlive&Contentid=1000000004000019008&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000013968.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000013968/1.m3u8?channel-id=ystenlive&Contentid=1000000004000013968&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000013730.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000013730/1.m3u8?channel-id=ystenlive&Contentid=1000000004000013730&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000014634.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000014634/1.m3u8?channel-id=ystenlive&Contentid=1000000004000014634&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000032328.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000032328/1.m3u8?channel-id=ystenlive&Contentid=1000000006000032328&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000010.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000010/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000010&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000268003.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000268003/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268003&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000003000012426.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000003000012426/1.m3u8?channel-id=ystenlive&Contentid=1000000003000012426&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000009601.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000009601/1.m3u8?channel-id=ystenlive&Contentid=1000000001000009601&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000268002.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000268002/1.m3u8?channel-id=ystenlive&Contentid=1000000006000268002&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000018.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000018/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000018&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000266013.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000266013/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266013&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000018653.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000018653/1.m3u8?channel-id=ystenlive&Contentid=1000000004000018653&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000024.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000024/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000024&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000266012.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000266012/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266012&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000008284.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000008284/1.m3u8?channel-id=ystenlive&Contentid=1000000004000008284&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000026167.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000026167/1.m3u8?channel-id=ystenlive&Contentid=1000000004000026167&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000024282.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000024282/1.m3u8?channel-id=ystenlive&Contentid=1000000004000024282&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000014.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000014/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000014&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000022.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000022/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000022&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000006197.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000006197/1.m3u8?channel-id=ystenlive&Contentid=1000000001000006197&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000016.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000016/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000016&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000003.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000003/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000003&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000007.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000007/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000007&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000000515.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000000515/1.m3u8?channel-id=ystenlive&Contentid=1000000001000000515&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000005000266011.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000005000266011/1.m3u8?channel-id=ystenlive&Contentid=1000000005000266011&livemode=1&stbId=3", |
||||||
|
"hnbblive/2000000003000000009.m3u8": "http://gslbserv.itv.cmvideo.cn:80/2000000003000000009/1.m3u8?channel-id=hnbblive&Contentid=2000000003000000009&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000019624.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000019624/1.m3u8?channel-id=ystenlive&Contentid=1000000004000019624&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000004000021734.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000004000021734/1.m3u8?channel-id=ystenlive&Contentid=1000000004000021734&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000006000032327.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000006000032327/1.m3u8?channel-id=ystenlive&Contentid=1000000006000032327&livemode=1&stbId=3", |
||||||
|
"ystenlive/1000000001000003775.m3u8": "http://gslbserv.itv.cmvideo.cn:80/1000000001000003775/1.m3u8?channel-id=ystenlive&Contentid=1000000001000003775&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031113.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031113/1.m3u8?channel-id=bestzb&Contentid=5000000011000031113&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031111.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031111/1.m3u8?channel-id=bestzb&Contentid=5000000011000031111&livemode=1&stbId=3", |
||||||
|
"bestzb/9001547084732463424.m3u8": "http://gslbserv.itv.cmvideo.cn:80/9001547084732463424/1.m3u8?channel-id=bestzb&Contentid=9001547084732463424&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000002000009455.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000002000009455/1.m3u8?channel-id=bestzb&Contentid=5000000002000009455&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000007000010001.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000007000010001/1.m3u8?channel-id=bestzb&Contentid=5000000007000010001&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000010000026105.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000010000026105/1.m3u8?channel-id=bestzb&Contentid=5000000010000026105&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000002000029972.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000002000029972/1.m3u8?channel-id=bestzb&Contentid=5000000002000029972&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031112.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031112/1.m3u8?channel-id=bestzb&Contentid=5000000011000031112&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031207.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031207/1.m3u8?channel-id=bestzb&Contentid=5000000011000031207&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031116.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031116/1.m3u8?channel-id=bestzb&Contentid=5000000011000031116&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000002000019634.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000002000019634/1.m3u8?channel-id=bestzb&Contentid=5000000002000019634&livemode=1&stbId=3", |
||||||
|
"bestzb/5000000011000031114.m3u8": "http://gslbserv.itv.cmvideo.cn:80/5000000011000031114/1.m3u8?channel-id=bestzb&Contentid=5000000011000031114&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000230630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000230630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000230630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000070630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000070630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000070630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000280630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000280630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000280630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000080630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000080630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000080630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000260630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000260630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000260630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000060630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000060630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000060630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000020630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000020630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000020630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000160630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000160630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000160630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000040630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000040630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000040630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000150630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000150630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000150630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000250630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000250630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000250630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000270630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000270630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000270630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000100630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000100630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000100630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000240630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000240630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000240630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000290630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000290630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000290630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000220630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000220630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000220630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000010630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000010630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000010630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000050630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000050630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000050630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000180630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000180630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000180630&livemode=1&stbId=3", |
||||||
|
"wasusyt/6000000006000030630.m3u8": "http://gslbserv.itv.cmvideo.cn:80/6000000006000030630/1.m3u8?channel-id=wasusyt&Contentid=6000000006000030630&livemode=1&stbId=3", |
||||||
|
} |
||||||
|
|
||||||
|
dnsCache = sync.Map{} |
||||||
|
cacheTimeout = 1 * time.Minute |
||||||
|
) |
||||||
|
|
||||||
|
type cacheEntry struct { |
||||||
|
ip string |
||||||
|
expiry time.Time |
||||||
|
} |
||||||
|
|
||||||
|
func (i *Itv) HandleMainRequest(c *gin.Context, cdn, id string) { |
||||||
|
key := cdn + "/" + id |
||||||
|
url, ok := programList[key] |
||||||
|
if !ok { |
||||||
|
c.String(http.StatusNotFound, "id not found!") |
||||||
|
return |
||||||
|
} |
||||||
|
|
||||||
|
data, redirectURL, err := getHTTPResponse(url) |
||||||
|
if err != nil { |
||||||
|
c.String(http.StatusInternalServerError, err.Error()) |
||||||
|
return |
||||||
|
} |
||||||
|
redirectPrefix := redirectURL[:strings.LastIndex(redirectURL, "/")+1] |
||||||
|
|
||||||
|
// 替换TS文件的链接
|
||||||
|
golang := "http://" + c.Request.Host + c.Request.URL.Path |
||||||
|
re := regexp.MustCompile(`((?i).*?\.ts)`) |
||||||
|
data = re.ReplaceAllStringFunc(data, func(match string) string { |
||||||
|
return golang + "?ts=" + redirectPrefix + match |
||||||
|
}) |
||||||
|
|
||||||
|
// 将&替换为$
|
||||||
|
data = strings.ReplaceAll(data, "&", "$") |
||||||
|
|
||||||
|
c.Header("Content-Disposition", "attachment;filename="+id) |
||||||
|
c.String(http.StatusOK, data) |
||||||
|
} |
||||||
|
|
||||||
|
func (i *Itv) HandleTsRequest(c *gin.Context, ts string) { |
||||||
|
// 将$替换回&
|
||||||
|
ts = strings.ReplaceAll(ts, "$", "&") |
||||||
|
|
||||||
|
c.Header("Content-Type", "video/MP2T") |
||||||
|
content, _, err := getHTTPResponse(ts) |
||||||
|
if err != nil { |
||||||
|
c.String(http.StatusInternalServerError, err.Error()) |
||||||
|
return |
||||||
|
} |
||||||
|
c.String(http.StatusOK, content) |
||||||
|
} |
||||||
|
|
||||||
|
func getHTTPResponse(requestURL string) (string, string, error) { |
||||||
|
dialer := &net.Dialer{ |
||||||
|
Timeout: 5 * time.Second, |
||||||
|
} |
||||||
|
|
||||||
|
// 自定义resolver
|
||||||
|
resolver := net.Resolver{ |
||||||
|
PreferGo: true, |
||||||
|
Dial: func(ctx context.Context, network, address string) (net.Conn, error) { |
||||||
|
for originalHost, mappedHost := range hostMappings { |
||||||
|
if strings.Contains(address, originalHost) { |
||||||
|
ip := resolveIP(mappedHost) |
||||||
|
if ip != "" { |
||||||
|
address = strings.Replace(address, originalHost, ip, 1) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return dialer.DialContext(ctx, network, address) |
||||||
|
}, |
||||||
|
} |
||||||
|
|
||||||
|
client := &http.Client{ |
||||||
|
Transport: &http.Transport{ |
||||||
|
DialContext: resolver.Dial, |
||||||
|
}, |
||||||
|
} |
||||||
|
|
||||||
|
resp, err := client.Get(requestURL) |
||||||
|
if err != nil { |
||||||
|
return "", "", err |
||||||
|
} |
||||||
|
defer resp.Body.Close() |
||||||
|
|
||||||
|
redirectURL := resp.Header.Get("Location") |
||||||
|
if redirectURL == "" { |
||||||
|
redirectURL = requestURL |
||||||
|
} |
||||||
|
|
||||||
|
body, err := readResponseBody(resp) |
||||||
|
if err != nil { |
||||||
|
return "", "", err |
||||||
|
} |
||||||
|
|
||||||
|
return body, redirectURL, nil |
||||||
|
} |
||||||
|
|
||||||
|
func resolveIP(host string) string { |
||||||
|
now := time.Now() |
||||||
|
if entry, found := dnsCache.Load(host); found { |
||||||
|
cachedEntry := entry.(cacheEntry) |
||||||
|
if now.Before(cachedEntry.expiry) { |
||||||
|
return cachedEntry.ip |
||||||
|
} |
||||||
|
dnsCache.Delete(host) |
||||||
|
} |
||||||
|
|
||||||
|
ips, err := net.LookupIP(host) |
||||||
|
if err != nil || len(ips) == 0 { |
||||||
|
return "" |
||||||
|
} |
||||||
|
|
||||||
|
ip := ips[0].String() |
||||||
|
dnsCache.Store(host, cacheEntry{ip: ip, expiry: now.Add(cacheTimeout)}) |
||||||
|
return ip |
||||||
|
} |
||||||
|
|
||||||
|
func readResponseBody(resp *http.Response) (string, error) { |
||||||
|
var builder strings.Builder |
||||||
|
_, err := io.Copy(&builder, resp.Body) |
||||||
|
if err != nil { |
||||||
|
return "", err |
||||||
|
} |
||||||
|
return builder.String(), nil |
||||||
|
} |
||||||
@ -0,0 +1,167 @@ |
|||||||
|
package liveurls |
||||||
|
|
||||||
|
import ( |
||||||
|
"encoding/json" |
||||||
|
"github.com/gin-gonic/gin" |
||||||
|
"io" |
||||||
|
"net/http" |
||||||
|
"regexp" |
||||||
|
"strings" |
||||||
|
"sync" |
||||||
|
"time" |
||||||
|
) |
||||||
|
|
||||||
|
type Ysptp struct{} |
||||||
|
|
||||||
|
var cache sync.Map |
||||||
|
|
||||||
|
type CacheItem struct { |
||||||
|
Value string |
||||||
|
Expiration int64 |
||||||
|
} |
||||||
|
|
||||||
|
var cctvList = map[string]string{ |
||||||
|
"cctv1.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv1.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv2.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv2.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv3.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv3.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv4.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv4.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv5.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv5.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv5p.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv5p.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv6.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv6.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv7.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv7.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv8.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv8.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv9.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv9.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv10.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv10.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv11.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv11.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv12.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv12.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv13.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv13.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv14.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv14.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv15.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv15.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv16.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv16.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv17.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv17.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtnar.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtnar.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtndoc.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtndoc.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtnen.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtnen.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtnfr.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtnfr.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtnru.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtnru.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cgtnsp.m3u8": "http://liveali-tpgq.cctv.cn/live/cgtnsp.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv4k.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv4k.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv4k_10m.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv4k10m.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv4k16.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv4k16.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv4k16_10m.m3u8": "http://liveali-tpgq.cctv.cn/live/cctv4k1610m.m3u8,http://liveali-tpgq.cctv.cn/live/", |
||||||
|
"cctv8k_36m.m3u8": "http://liveali-tp4k.cctv.cn/live/4K36M/playlist.m3u8,http://liveali-tp4k.cctv.cn/live/4K36M/", |
||||||
|
"cctv8k_120m.m3u8": "http://liveali-tp4k.cctv.cn/live/8K120M/playlist.m3u8,http://liveali-tp4k.cctv.cn/live/8K120M/", |
||||||
|
} |
||||||
|
|
||||||
|
func (y *Ysptp) HandleMainRequest(c *gin.Context, id string) { |
||||||
|
uid := c.DefaultQuery("uid", "1234123122") |
||||||
|
|
||||||
|
if _, ok := cctvList[id]; !ok { |
||||||
|
c.String(http.StatusNotFound, "id not found!") |
||||||
|
return |
||||||
|
} |
||||||
|
|
||||||
|
urls := strings.Split(cctvList[id], ",") |
||||||
|
data := getURL(id, urls[0], uid, urls[1]) |
||||||
|
golang := "http://" + c.Request.Host + c.Request.URL.Path |
||||||
|
re := regexp.MustCompile(`((?i).*?\.ts)`) |
||||||
|
data = re.ReplaceAllString(data, golang+"?ts="+urls[1]+"$1") |
||||||
|
|
||||||
|
c.Header("Content-Disposition", "attachment;filename="+id) |
||||||
|
c.String(http.StatusOK, data) |
||||||
|
} |
||||||
|
|
||||||
|
func (y *Ysptp) HandleTsRequest(c *gin.Context, ts, wsTime string) { |
||||||
|
data := ts + "&wsTime=" + wsTime |
||||||
|
c.Header("Content-Type", "video/MP2T") |
||||||
|
c.String(http.StatusOK, getTs(data)) |
||||||
|
} |
||||||
|
|
||||||
|
func getURL(id, url, uid, path string) string { |
||||||
|
cacheKey := id + uid |
||||||
|
if playURL, found := getCache(cacheKey); found { |
||||||
|
return fetchData(playURL, path, uid) |
||||||
|
} |
||||||
|
|
||||||
|
bstrURL := "https://ytpvdn.cctv.cn/cctvmobileinf/rest/cctv/videoliveUrl/getstream" |
||||||
|
postData := `appcommon={"ap":"cctv_app_tv","an":"央视投屏助手","adid":" ` + uid + `","av":"1.1.7"}&url=` + url |
||||||
|
|
||||||
|
req, _ := http.NewRequest("POST", bstrURL, strings.NewReader(postData)) |
||||||
|
req.Header.Set("User-Agent", "cctv_app_tv") |
||||||
|
req.Header.Set("Referer", "api.cctv.cn") |
||||||
|
req.Header.Set("UID", uid) |
||||||
|
|
||||||
|
client := &http.Client{} |
||||||
|
resp, _ := client.Do(req) |
||||||
|
defer resp.Body.Close() |
||||||
|
var body strings.Builder |
||||||
|
_, _ = io.Copy(&body, resp.Body) |
||||||
|
|
||||||
|
var result map[string]interface{} |
||||||
|
json.Unmarshal([]byte(body.String()), &result) |
||||||
|
playURL := result["url"].(string) |
||||||
|
|
||||||
|
setCache(cacheKey, playURL) |
||||||
|
|
||||||
|
return fetchData(playURL, path, uid) |
||||||
|
} |
||||||
|
|
||||||
|
func fetchData(playURL, path, uid string) string { |
||||||
|
client := &http.Client{} |
||||||
|
for { |
||||||
|
req, _ := http.NewRequest("GET", playURL, nil) |
||||||
|
req.Header.Set("User-Agent", "cctv_app_tv") |
||||||
|
req.Header.Set("Referer", "api.cctv.cn") |
||||||
|
req.Header.Set("UID", uid) |
||||||
|
|
||||||
|
resp, _ := client.Do(req) |
||||||
|
defer resp.Body.Close() |
||||||
|
var body strings.Builder |
||||||
|
_, _ = io.Copy(&body, resp.Body) |
||||||
|
|
||||||
|
data := body.String() |
||||||
|
re := regexp.MustCompile(`(.*\.m3u8\?.*)`) |
||||||
|
matches := re.FindStringSubmatch(data) |
||||||
|
if len(matches) > 0 { |
||||||
|
playURL = path + matches[0] |
||||||
|
} else { |
||||||
|
return data |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
func getTs(url string) string { |
||||||
|
req, _ := http.NewRequest("GET", url, nil) |
||||||
|
req.Header.Set("User-Agent", "cctv_app_tv") |
||||||
|
req.Header.Set("Referer", "https://api.cctv.cn/") |
||||||
|
req.Header.Set("UID", "1234123122") |
||||||
|
req.Header.Set("accept", "*/*") |
||||||
|
req.Header.Set("accept-encoding", "gzip, deflate") |
||||||
|
req.Header.Set("accept-language", "zh-CN,zh;q=0.9") |
||||||
|
req.Header.Set("Connection", "keep-alive") |
||||||
|
|
||||||
|
client := &http.Client{} |
||||||
|
resp, _ := client.Do(req) |
||||||
|
defer resp.Body.Close() |
||||||
|
var body strings.Builder |
||||||
|
_, _ = io.Copy(&body, resp.Body) |
||||||
|
|
||||||
|
return body.String() |
||||||
|
} |
||||||
|
|
||||||
|
func getCache(key string) (string, bool) { |
||||||
|
if item, found := cache.Load(key); found { |
||||||
|
cacheItem := item.(CacheItem) |
||||||
|
if time.Now().Unix() < cacheItem.Expiration { |
||||||
|
return cacheItem.Value, true |
||||||
|
} |
||||||
|
} |
||||||
|
return "", false |
||||||
|
} |
||||||
|
|
||||||
|
func setCache(key, value string) { |
||||||
|
cache.Store(key, CacheItem{ |
||||||
|
Value: value, |
||||||
|
Expiration: time.Now().Unix() + 3600, |
||||||
|
}) |
||||||
|
} |
||||||
Loading…
Reference in new issue