添加本地部署

This commit is contained in:
test
2025-10-14 19:57:50 +08:00
parent 26e2cda793
commit 979a96e812
21 changed files with 607 additions and 11282 deletions

4
.dockerignore Normal file
View File

@@ -0,0 +1,4 @@
/.git
/node_modules
/.workflow
*.bak

1
.gitignore vendored
View File

@@ -1 +1,2 @@
node_modules
package-lock.json

16
Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM node:22-alpine
WORKDIR /migu
COPY . .
# 设置时区
ENV TZ=Asia/Shanghai
RUN apk add --no-cache tzdata \
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
&& echo $TZ > /etc/timezone
RUN npm install
CMD [ "node", "app.js" ]

View File

@@ -1,6 +1,6 @@
# migu_video
# 使用方式
账号🐔了。~只有标清..~ 高清为主😅 gitee仓库被改私有了..
账号🐔了。~~只有标清..~~ 高清为主😅 gitee仓库被改私有了..
访问地址(可回看当天内容)
@@ -16,6 +16,96 @@ https://develop202.github.io/migu_video/interface.txt
https://gh-proxy.com/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/interface.txt
```
# 本地部署
使用node自带的http模块实现。
> 注意事项
>
> 1. 登录后使用不保证安全,请谨慎使用
> 1. 需要国内IP才可正常访问
## 配置
配置信息如下,默认仅本机可用
| 变量名 | 默认值 | 类型 | 介绍 |
| --------- | ----------------------- | ------ | ------------------------------------------ |
| muserId | | string | 用户id可在网页端登录获取 |
| mtoken | | string | 用户token可在网页端登录获取 |
| mport | 1234 | number | 服务本地启动端口 |
| mhost | <http://localhost:1234> | string | 访问地址用于节目和epg地址生成 |
| mrateType | 3 | number | 画质 2:标清 3:高清 4:蓝光(需要登录且有VIP) |
## node
### 环境要求
需要 NodeJS 15+ 环境
### 安装
```shell
git clone git@github.com:develop202/migu_video.git
cd migu_video
npm i
```
### 运行
```shell
node app.js
```
若需要修改配置,可以使用以下命令
Mac/Linux:
```shell
mport=3000 mhost="http://localhost:3000" node app.js
```
Windows下使用git-bash等终端:
```shell
set mport=3000 && set mhost="http://localhost:3000" && node app.js
```
Windows下使用PowerShell等终端:
```shell
$Env:mport=3000; $Env:mhost="http://localhost:3000"; node app.js
```
## docker
初次使用,如有错误还请大佬指正。
### 安装
```shell
docker pull develop767/migu_video:latest
```
### 运行
```shell
docker run -p 1234:1234 --name migu_video develop767/migu_video
```
若需要修改配置,可以使用以下命令
```shell
docker run -p 3000:3000 -e mport=3000 -e mhost="http://localhost:3000" --name migu_video develop767/migu_video
```
### 构建
若需要手动构建镜像,可以使用以下命令
```shell
docker build -t migu_video .
```
# 免责声明
> [!important]

241
app.js Normal file
View File

@@ -0,0 +1,241 @@
import http from "node:http"
import { getAndroidURL, getAndroidURL720p } from "./utils/androidURL.js";
import { readFileSync } from "./utils/fileUtil.js";
import { host, port, rateType, token, userId } from "./config.js";
import { getDateTimeStr } from "./utils/time.js";
import update from "./updateData.js";
import { printBlue, printGreen, printGrey, printMagenta, printRed, printYellow } from "./utils/colorOut.js";
import { delay } from "./utils/fetchList.js";
// 运行时长
var hours = 0
// url缓存 降低请求频率
const urlCache = {}
let loading = false
const server = http.createServer(async (req, res) => {
while (loading) {
await delay(50)
}
loading = true
// 获取请求方法、URL 和请求头
const { method, url, headers } = req;
console.log()
printMagenta("请求地址:" + url)
if (method != "GET") {
res.writeHead(200, { 'Content-Type': 'application/json;charset=UTF-8' });
res.end(JSON.stringify({
data: '请使用GET请求',
}));
printRed(`使用非GET请求:${method}`)
loading = false
return
}
// 响应接口内容
if (url == "/" || url == "/interface.txt") {
try {
// 读取文件内容
const data = readFileSync(process.cwd() + "/interface.txt");
// 设置响应头
res.setHeader('Content-Type', 'text/plain;charset=UTF-8');
res.statusCode = 200;
res.end(data); // 发送文件内容
loading = false
return
} catch (error) {
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("访问异常")
printRed("接口文件响应异常")
loading = false
return
}
}
// 回放
if (url == "/playback.xml") {
try {
// 读取文件内容
const data = readFileSync(process.cwd() + "/playback.xml");
// 设置响应头
res.setHeader('Content-Type', 'text/xml;charset=UTF-8');
res.statusCode = 200;
res.end(data); // 发送文件内容
loading = false
return
} catch (error) {
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("访问异常")
printRed("回放文件响应异常")
loading = false
return
}
}
let urlSplit = url.split("/")[1]
let pid = urlSplit
let params = ""
if (urlSplit.match(/\?/)) {
// 回放
printGreen("处理传入参数")
const urlSplit1 = urlSplit.split("?")
pid = urlSplit1[0]
params = urlSplit1[1]
} else {
printGrey("无参数传入")
}
if (isNaN(pid)) {
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("地址错误")
printRed("地址格式错误")
loading = false
return
}
printYellow("频道ID " + pid)
// 是否存在缓存
if (typeof urlCache[pid] === "object") {
const valTime = urlCache[pid].valTime - Date.now()
// 缓存是否有效
if (valTime >= 0) {
printGreen(`缓存有效,使用缓存数据`)
let playURL = urlCache[pid].url
// 节目调整
if (playURL == "") {
printRed(`${pid} 节目调整,暂不提供服务`)
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("节目调整,暂不提供服务")
loading = false
return
}
// 添加回放参数
if (params != "") {
const resultParams = new URLSearchParams(params);
for (const [key, value] of resultParams) {
playURL = `${playURL}&${key}=${value}`
}
}
res.writeHead(302, {
'Content-Type': 'application/json;charset=UTF-8',
location: playURL
});
res.end()
loading = false
return
}
}
let resObj = {}
try {
// 未登录请求720p
if (rateType >= 3 && (userId == "" || token == "")) {
resObj = await getAndroidURL720p(pid)
} else {
resObj = await getAndroidURL(userId, token, pid, rateType)
}
} catch (error) {
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("链接请求出错,请稍后重试")
printRed("链接请求出错")
loading = false
return
}
printGreen(`添加节目缓存 ${pid}`)
// 加入缓存
urlCache[pid] = {
// 有效期2小时 节目调整改为2分钟
valTime: Date.now() + (resObj.url == "" ? 2 * 60 * 1000 : 2 * 60 * 60 * 1000),
url: resObj.url
}
if (resObj.url == "") {
printRed(`${pid} 节目调整,暂不提供服务`)
res.writeHead(200, { "Content-Type": "application/json;charset=UTF-8" })
res.end("节目调整,暂不提供服务")
loading = false
return
}
let playURL = resObj.url
// console.dir(playURL, { depth: null })
// 添加回放参数
if (params != "") {
const resultParams = new URLSearchParams(params);
for (const [key, value] of resultParams) {
playURL = `${playURL}&${key}=${value}`
}
}
printGreen("链接获取成功")
res.writeHead(302, {
'Content-Type': 'application/json;charset=UTF-8',
location: playURL
});
res.end()
loading = false
})
server.listen(port, async () => {
// 设置定时器3小时更新一次
setInterval(async () => {
printBlue(`\n准备更新文件 ${getDateTimeStr(new Date())}\n`)
hours += 3
try {
await update(hours)
} catch (error) {
printRed("更新失败")
}
printBlue(`\n当前已运行${hours}小时`)
}, 3 * 60 * 60 * 1000);
try {
// 初始化数据
await update(hours)
} catch (error) {
printRed("更新失败")
}
console.log()
printYellow("定时器设置完毕 每3小时更新一次")
printYellow("Server running at port " + port)
printYellow("访问地址: " + host)
})

16
config.js Normal file
View File

@@ -0,0 +1,16 @@
// 用户id
const userId = process.env.muserId || ""
// 用户token 可以使用网页登录获取
const token = process.env.mtoken || ""
// 本地运行端口号
const port = process.env.mport || 1234
// 访问地址用于epg和节目访问。
// 部署后访问地址是什么就填什么,默认只可本机使用
const host = process.env.mhost || "http://localhost:1234"
// 画质
// 4蓝光(需要登录且账号有VIP)
// 3高清
// 2标清
const rateType = process.env.mrateType || 3
export { userId, token, port, host, rateType }

View File

@@ -1,57 +1,64 @@
import { dataList } from "./utils/fetchList.js"
import { getAndroidURL720p } from "./utils/androidURL.js"
import { appendFile, writeFile } from "./utils/fileUtil.js"
import { appendFile, appendFileSync, renameFileSync, writeFile } from "./utils/fileUtil.js"
import { updatePlaybackData } from "./utils/playback.js"
import { printBlue, printGreen, printMagenta, printRed, printYellow } from "./utils/colorOut.js"
async function fetchURLByAndroid() {
async function fetchURLByAndroid720p() {
const start = Date.now()
// 获取数据
const datas = await dataList()
// 必须绝对路径
const path = process.cwd() + '/interface.txt'
const path = process.cwd() + '/interface.txt.bak'
// 创建写入空内容
writeFile(path, "")
// 回放
const playbackFile = process.cwd() + '/playback.xml'
const playbackFile = process.cwd() + '/playback.xml.bak'
writeFile(playbackFile,
`<?xml version="1.0" encoding="UTF-8"?>\n` +
`<tv generator-info-name="Tak" generator-info-url="https://github.com/develop202/migu_video/">\n`)
// 写入开头
appendFile(path, `#EXTM3U x-tvg-url="https://gh-proxy.com/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml" catchup="append" catchup-source="&playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`)
appendFile(path, `#EXTM3U x-tvg-url="https://develop202.github.io/migu_video/playback.xml,https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml,https://gh-proxy.com/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml" catchup="append" catchup-source="&playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`)
// 分类列表
for (let i = 0; i < datas.length; i++) {
console.log(`分类###:${datas[i].name}`)
printBlue(`分类###:${datas[i].name}`)
const data = datas[i].dataList
// 写入节目
for (let j = 0; j < data.length; j++) {
printMagenta(`${data[j].name}`)
const res = await updatePlaybackData(data[j], playbackFile)
if (!res) {
console.log(`playback.xml更新失败`)
if (res) {
printGreen(` 节目单更新成功`)
} else {
printRed(` 节目单更新失败`)
}
// 获取链接
const resObj = await getAndroidURL720p(data[j].pID)
if (resObj.url == "") {
console.log(`${data[j].name}节目调整,暂不提供服务`)
printRed(` 节目调整,暂不提供服务`)
continue
}
console.log(`正在写入节目:${data[j].name}`)
// 写入节目
appendFile(path, `#EXTINF:-1 svg-id="${data[j].name}" svg-name="${data[j].name}" tvg-logo="${data[j].pics.highResolutionH}" group-title="${datas[i].name}",${data[j].name}\n${resObj.url}\n`)
printGreen(` 节目链接更新成功`)
}
}
appendFile(playbackFile, `</tv>\n`)
appendFileSync(playbackFile, `</tv>\n`)
renameFileSync(playbackFile, playbackFile.replace(".bak", ""))
renameFileSync(path, path.replace(".bak", ""))
const end = Date.now()
console.log(`本次耗时:${(end - start) / 1000}`)
printYellow(`本次耗时:${(end - start) / 1000}`)
}
fetchURLByAndroid()
fetchURLByAndroid720p()

View File

@@ -1,34 +1,36 @@
import { dataList } from "./utils/fetchList.js"
import { getAndroidURL } from "./utils/androidURL.js"
import refreshToken from "./utils/refreshToken.js"
import { appendFile, writeFile } from "./utils/fileUtil.js"
import { appendFile, appendFileSync, renameFileSync, writeFile } from "./utils/fileUtil.js"
import { updatePlaybackData } from "./utils/playback.js"
import { printBlue, printGreen, printMagenta, printRed, printYellow } from "./utils/colorOut.js"
import { token as config_token, userId as config_userId } from "./config.js"
async function fetchURLByAndroid() {
const userId = process.env.USERID
const token = process.env.MIGU_TOKEN
const userId = process.env.USERID || config_userId
const token = process.env.MIGU_TOKEN || config_token
const date = new Date()
const start = date.getTime()
// 必须绝对路径
const path = process.cwd() + '/interface.txt'
// 创建写入空内容
writeFile(path, "")
// 获取数据
const datas = await dataList()
// 必须绝对路径
const path = process.cwd() + '/interface.txt.bak'
// 创建写入空内容
writeFile(path, "")
// 回放
const playbackFile = process.cwd() + '/playback.xml'
const playbackFile = process.cwd() + '/playback.xml.bak'
writeFile(playbackFile,
`<?xml version="1.0" encoding="UTF-8"?>\n` +
`<tv generator-info-name="Tak" generator-info-url="https://github.com/develop202/migu_video/">\n`)
if (!date.getHours()) {
// 0点刷新token
await refreshToken(userId, token) ? console.log("token刷新成功") : console.log("token刷新失败")
await refreshToken(userId, token) ? printGreen("token刷新成功") : printRed("token刷新失败")
}
// 写入开头
@@ -37,32 +39,39 @@ async function fetchURLByAndroid() {
// 分类列表
for (let i = 0; i < datas.length; i++) {
console.log(`分类###:${datas[i].name}`)
printBlue(`分类###:${datas[i].name}`)
const data = datas[i].dataList
// 写入节目
for (let j = 0; j < data.length; j++) {
printMagenta(`${data[j].name}`)
const res = await updatePlaybackData(data[j], playbackFile)
if (!res) {
console.log(`playback.xml更新失败`)
if (res) {
printGreen(` 节目单更新成功`)
} else {
printRed(` 节目单更新失败`)
}
// 获取链接
const resObj = await getAndroidURL(userId, token, data[j].pID, 999)
const resObj = await getAndroidURL(userId, token, data[j].pID, 4)
if (resObj.url == "") {
console.log(`${data[j].name}节目调整,暂不提供服务`)
printRed(` 节目调整,暂不提供服务`)
continue
}
console.log(`正在写入节目:${data[j].name}`)
// 写入节目
appendFile(path, `#EXTINF:-1 svg-id="${data[j].name}" svg-name="${data[j].name}" tvg-logo="${data[j].pics.highResolutionH}" group-title="${datas[i].name}",${data[j].name}\n${resObj.url}\n`)
printGreen(` 节目链接更新成功`)
}
}
appendFile(playbackFile, `</tv>\n`)
appendFileSync(playbackFile, `</tv>\n`)
renameFileSync(playbackFile, playbackFile.replace(".bak", ""))
renameFileSync(path, path.replace(".bak", ""))
const end = Date.now()
console.log(`本次耗时:${(end - start) / 1000}`)
printYellow(`本次耗时:${(end - start) / 1000}`)
}
fetchURLByAndroid()

View File

@@ -1,213 +0,0 @@
#EXTM3U x-tvg-url="https://gh-proxy.com/https://raw.githubusercontent.com/develop202/migu_video/refs/heads/main/playback.xml" catchup="append" catchup-source="&playbackbegin=${(b)yyyyMMddHHmmss}&playbackend=${(e)yyyyMMddHHmmss}"
#EXTINF:-1 svg-id="CCTV1综合" svg-name="CCTV1综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2201/057/821/202204010054_1626677671392_H32_1080.webp" group-title="央视",CCTV1综合
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/cctv1hd/1200/index.m3u8?msisdn=202510141800407b36c957571c47e8ae18a5ec89e4f98c&mdspid=&spid=699004&netType=0&sid=2201057821&pid=2028597139&timestamp=20251014180040&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608807420&ParentNodeID=-99&assertID=2201057821&client_ip=106.13.250.89&SecurityKey=20251014180040&promotionId=&mvid=2201057821&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=dc06dd4c2ce30cd34cd9684ee3fcb21a&ddCalcu=ad1ce201b68cd0fd34ece24c8e6390dccd43
#EXTINF:-1 svg-id="CCTV2财经" svg-name="CCTV2财经" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/346/945/202205311432_1626678578843_H32_1080.webp" group-title="央视",CCTV2财经
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/cctv2hd/1500/index.m3u8?msisdn=20251014180041f2eeabf8799b43d3ae15a76c6a5774da&mdspid=&spid=699004&netType=0&sid=5500346945&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=631780532&ParentNodeID=-99&assertID=5500346945&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5101064231&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=fb2add5dda8354711e3333a147480886&ddCalcu=6f8be8210a18d04d754d1daa38333534e711
#EXTINF:-1 svg-id="CCTV3综艺" svg-name="CCTV3综艺" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/212/864/202204010055_1626679244629_H32_1080.webp" group-title="央视",CCTV3综艺
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/cctv3hd/2000/index.m3u8?msisdn=2025101418004176d37b509125482fb91eee09dbb24ca8&mdspid=&spid=699004&netType=0&sid=5500212864&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=624878271&ParentNodeID=-99&assertID=5500212864&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5100001683&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=5e7d726525b4efbd48a7ee2242ff8280&ddCalcu=058ee2718d4f70f226452225ebe47eaf8b4d
#EXTINF:-1 svg-id="CCTV4中文国际" svg-name="CCTV4中文国际" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/346/947/202204010054_1626679413842_H32_1080.webp" group-title="央视",CCTV4中文国际
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/cctv4hd/1500/index.m3u8?msisdn=202510141800418a47faee57144ea88896157f7f7373a2&mdspid=&spid=699004&netType=0&sid=5500346947&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=631780421&ParentNodeID=-99&assertID=5500346947&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5101064235&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=428e146e2c64c699f0933ed6c9eab72e&ddCalcu=e422e781be1a10e496ce62dce6343c9609f9
#EXTINF:-1 svg-id="CCTV5体育" svg-name="CCTV5体育" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/516/171/202204010048_1626679603804_H32_1080.webp" group-title="央视",CCTV5体育
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/cctv5hdnew/1200/index.m3u8?msisdn=20251014180041b895b3abea6e454d9043b4b54e0e9b5f&mdspid=&spid=699004&netType=0&sid=5500516171&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=641886683&ParentNodeID=-99&assertID=5500516171&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102048712&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=e46788d30d2552cfd451b482c18c0d31&ddCalcu=1e34ed61071c80881dc3208d42b515524cdf
#EXTINF:-1 svg-id="CCTV5+体育赛事" svg-name="CCTV5+体育赛事" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/516/288/202204010048_1626679712843_H32_1080.webp" group-title="央视",CCTV5+体育赛事
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/cctv5plusnew/1200/index.m3u8?msisdn=20251014180041e38b0dd47a5f4c2891c0e882a7e2131c&mdspid=&spid=699004&netType=0&sid=5500516288&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=641886773&ParentNodeID=-99&assertID=5500516288&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102048803&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=62638f904975b6d9d43b202470cbd707&ddCalcu=7602e761d31b80cf097044290725bb364dd9
#EXTINF:-1 svg-id="CCTV6电影" svg-name="CCTV6电影" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/212/872/202204010054_1626679914432_H32_1080.webp" group-title="央视",CCTV6电影
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/cctv6hd/2000/index.m3u8?msisdn=202510141800410d75671ecca04482a3fa2e0bbaae0607&mdspid=&spid=699004&netType=0&sid=5500212872&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=624878396&ParentNodeID=-99&assertID=5500212872&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5100001694&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b35314f8bf97b94d995ef0536f50fe6e&ddCalcu=eb63ee51f3401054ff683b5f09f7eb59949d
#EXTINF:-1 svg-id="CCTV7国防军事" svg-name="CCTV7国防军事" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5501/083/622/202204010054_1626680119210_H32_1080.webp" group-title="央视",CCTV7国防军事
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv7hd/51/index.m3u8?msisdn=20251014180041f7aa7b925e6b4e8586b774a4f8a82c3c&mdspid=&spid=699004&netType=0&sid=5501083622&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=673168121&ParentNodeID=-99&assertID=5501083622&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102910278&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d5387417d6a38eff395a6475fa217611&ddCalcu=1d15e63178317024a1f75d764a63a85e9f3f
#EXTINF:-1 svg-id="CCTV8电视剧" svg-name="CCTV8电视剧" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/212/868/202204010049_1626677150014_H32_1080.webp" group-title="央视",CCTV8电视剧
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/cctv8hd/2000/index.m3u8?msisdn=202510141800415076c7b2c3984d04948fe6452667a86f&mdspid=&spid=699004&netType=0&sid=5500212868&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=624878356&ParentNodeID=-99&assertID=5500212868&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5100001695&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=8ca3372893077c51bb911e4b79946b29&ddCalcu=982ceba1634430979278b943e017179cb5b1
#EXTINF:-1 svg-id="CCTV9纪录" svg-name="CCTV9纪录" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5501/083/624/202204010054_1626677545059_H32_1080.webp" group-title="央视",CCTV9纪录
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv9hd/51/index.m3u8?msisdn=202510141800415a7352d0bc0c48aa8ec7cc70b888c63d&mdspid=&spid=699004&netType=0&sid=5501083624&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=673168140&ParentNodeID=-99&assertID=5501083624&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102910384&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=70f1015b566bc786144cc51f61145706&ddCalcu=6700e7f151340011156bf51656cbcc474816
#EXTINF:-1 svg-id="CCTV10科教" svg-name="CCTV10科教" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/212/874/202204010054_1626677767922_H32_1080.webp" group-title="央视",CCTV10科教
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/cctv10hd/2000/index.m3u8?msisdn=20251014180041b6f99f47641a4a6483095c66e5f47e46&mdspid=&spid=699004&netType=0&sid=5500212874&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=624878405&ParentNodeID=-99&assertID=5500212874&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5100001696&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=495a93b8a244b8100a299898b8d57dce&ddCalcu=e4c9ed517a4590d38bb88a9284949b28a100
#EXTINF:-1 svg-id="CCTV11戏曲" svg-name="CCTV11戏曲" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/988/610/202204010054_1626677922732_H32_1080.webp" group-title="央视",CCTV11戏曲
http://gslbmgsplive.miguvideo.com/migu/kailu/cctv11hd/51/20200103/index.m3u8?msisdn=20251014180041b44055b8e9134e39aa85d9652b9498cc&mdspid=&spid=699004&netType=0&sid=5500988610&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=667987558&ParentNodeID=-99&assertID=5500988610&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102751362&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b013ebf971ebe99500fba51a7ba7ff92&ddCalcu=2b90ef11f377e0abbf79a7115eabbef90905
#EXTINF:-1 svg-id="CCTV12社会与法" svg-name="CCTV12社会与法" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5501/083/627/202204010053_1626678108629_H32_1080.webp" group-title="央视",CCTV12社会与法
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv12hd/51/index.m3u8?msisdn=202510141800417c3853adabc744169559432ff80cb4d0&mdspid=&spid=699004&netType=0&sid=5501083627&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=673168185&ParentNodeID=-99&assertID=5501083627&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5102910389&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=66ea97202b48e54f4bf67a908157d54a&ddCalcu=a646e5e1da3790571280029ba4786ef5b44f
#EXTINF:-1 svg-id="CCTV13新闻" svg-name="CCTV13新闻" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2202/208/864/202204010051_2202208864_H32_1080.webp" group-title="央视",CCTV13新闻
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/cctv13/2000/index.m3u8?msisdn=202510141800419d399ca360d7421db55f173cfe5f3cfb&mdspid=&spid=699004&netType=0&sid=2202208864&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608807423&ParentNodeID=-99&assertID=2202208864&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=2202208864&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d7f76a3c35a793116e165f4e8a93a8a7&ddCalcu=7da7e8f1a783609aa38ce345fa576913e161
#EXTINF:-1 svg-id="CCTV14少儿" svg-name="CCTV14少儿" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/212/875/202204010054_1626678147073_H32_1080.webp" group-title="央视",CCTV14少儿
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/cctv14hd/2000/index.m3u8?msisdn=20251014180041205514678bb14a89ae64cbfa57c387f7&mdspid=&spid=699004&netType=0&sid=5500212875&pid=2028597139&timestamp=20251014180041&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=624878440&ParentNodeID=-99&assertID=5500212875&client_ip=106.13.250.89&SecurityKey=20251014180041&promotionId=&mvid=5100001697&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=edec08d9a8526f000068d880b3cc1a8e&ddCalcu=ee8deae11c4c00c83db90a8885d2866f0000
#EXTINF:-1 svg-id="CCTV15音乐" svg-name="CCTV15音乐" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5501/083/628/202204010054_1626678245130_H32_1080.webp" group-title="央视",CCTV15音乐
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv15hd/51/index.m3u8?msisdn=202510141800426bc44bb81bab47da92d84e11f92eb44c&mdspid=&spid=699004&netType=0&sid=5501083628&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=673168223&ParentNodeID=-99&assertID=5501083628&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=5102910391&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=760407c9150206648fbce765147156f2&ddCalcu=27f6e601543100774c19516570e2c0b6f684
#EXTINF:-1 svg-id="CCTV17农业农村" svg-name="CCTV17农业农村" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5501/083/631/202204010052_1626678428060_H32_1080.webp" group-title="央视",CCTV17农业农村
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv17hd/51/index.m3u8?msisdn=20251014180042a868b33a6ecf4167b7ad31c5e5417c67&mdspid=&spid=699004&netType=0&sid=5501083631&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=673168256&ParentNodeID=-99&assertID=5501083631&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=5102910396&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=178fafb4381611e5cf4caa9013e60b8d&ddCalcu=d187eb810f36a0ef3b140398a1a6c141fec5
#EXTINF:-1 svg-id="CCTV4欧洲" svg-name="CCTV4欧洲" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/315/202204010055_1626831010992_H32_1080.webp" group-title="央视",CCTV4欧洲
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv4ouhd/51/index.m3u8?msisdn=2025101418004219dd9157da9b44e1b89b30f98d08600a&mdspid=&spid=699004&netType=0&sid=2200179315&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608807419&ParentNodeID=-99&assertID=2200179315&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179315&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=bee992220868cf801b2de5934387f15f&ddCalcu=fb5ee1e1f98790823242309856e8dc2fb810
#EXTINF:-1 svg-id="CCTV4美洲" svg-name="CCTV4美洲" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/344/202204010055_1626830746239_H32_1080.webp" group-title="央视",CCTV4美洲
http://gslbmgsplive.miguvideo.com/migu/kailu/20200324/cctv4meihd/51/index.m3u8?msisdn=2025101418004288b89e52d4b94039a4287185df2b1063&mdspid=&spid=699004&netType=0&sid=2200179344&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608807416&ParentNodeID=-99&assertID=2200179344&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179344&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=8d23a7316c598f76f0d2e60d873a68d7&ddCalcu=78dde821638aa0377381d60c65e928df07f6
#EXTINF:-1 svg-id="CGTN外语纪录" svg-name="CGTN外语纪录" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/356/202502251602_1740470541608_H32_1080.webp" group-title="央视",CGTN外语纪录
http://gslbmgsplive.miguvideo.com/envivo_v/2018/SD/cctv/doc/1000/index.m3u8?msisdn=202510141800422dc4f67d7c5e4b0e9b8305228ae7dcb0&mdspid=&spid=699004&netType=0&sid=2200179356&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609006487&ParentNodeID=-99&assertID=2200179356&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179356&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=bc79cd06a16da2314cbfcc996c0d4087&ddCalcu=7b8ce071499dc00dc0669a91c6cdfab2c341
#EXTINF:-1 svg-id="CGTN阿拉伯语" svg-name="CGTN阿拉伯语" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/303/202502251557_1740470230464_H32_1080.webp" group-title="央视",CGTN阿拉伯语
http://gslbmgsplive.miguvideo.com/envivo_v/SD/cctv/alabo/1000/index.m3u8?msisdn=20251014180042d904b9ec4322418ea3ff56ad448b77ad&mdspid=&spid=699004&netType=0&sid=2200179303&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609154345&ParentNodeID=-99&assertID=2200179303&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179303&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=7689a62e77e45713ad13502d040faae1&ddCalcu=17e6ea81a99fa006420ed7270e543517d1a3
#EXTINF:-1 svg-id="CGTN西班牙语" svg-name="CGTN西班牙语" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/337/202502251600_1740470437874_H32_1080.webp" group-title="央视",CGTN西班牙语
http://gslbmgsplive.miguvideo.com/envivo_v/2018/SD/cctv/xibanya/1000/index.m3u8?msisdn=202510141800423621880bad11458f85c3b1c6b08b2343&mdspid=&spid=699004&netType=0&sid=2200179337&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609006450&ParentNodeID=-99&assertID=2200179337&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179337&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b50670db3c097fbfca8ec7f46cdf9a81&ddCalcu=1b85ea01969f70d0cd6b43fc70c9e78fabcf
#EXTINF:-1 svg-id="CGTN法语" svg-name="CGTN法语" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/324/202502251559_1740470371334_H32_1080.webp" group-title="央视",CGTN法语
http://gslbmgsplive.miguvideo.com/envivo_v/2018/SD/cctv/fayu/1000/index.m3u8?msisdn=2025101418004295ef3409fdcc475f8d941d45642704ac&mdspid=&spid=699004&netType=0&sid=2200179324&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609006476&ParentNodeID=-99&assertID=2200179324&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179324&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d2c1a3d4727f06b247872876b306bf03&ddCalcu=3d02efc1b196a0033db46772872f70867b42
#EXTINF:-1 svg-id="CGTN俄语" svg-name="CGTN俄语" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/179/332/202502251558_1740470314603_H32_1080.webp" group-title="央视",CGTN俄语
http://gslbmgsplive.miguvideo.com/envivo_v/2018/SD/cctv/eyu/1000/index.m3u8?msisdn=2025101418004256108942f43f43d29dbd7dfa12a28837&mdspid=&spid=699004&netType=0&sid=2200179332&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609006446&ParentNodeID=-99&assertID=2200179332&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=2200179332&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=770ef98eb2b954334e1a3fee1b4c0ed9&ddCalcu=97d7ee010e9cf049b81eebe2fb39a514e343
#EXTINF:-1 svg-id="老故事" svg-name="老故事" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/002/202405081702_1715158648861_H32_1080.webp" group-title="央视",老故事
http://gslbmgsplive.miguvideo.com/migu/kailu/cctvlaogushi/50/20231109/index.m3u8?msisdn=20251014180042d58ebb720f6545a180b3e16f90f385af&mdspid=&spid=699004&netType=0&sid=5910022002&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=884121956&ParentNodeID=-99&assertID=5910022002&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=5900006372&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=7729021f63238f4e177b34a6ee5d51a3&ddCalcu=37a7e121594d0052e1ef66a34233b87f741e
#EXTINF:-1 svg-id="中学生" svg-name="中学生" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/019/355/202405081702_1715158115119_H32_1080.webp" group-title="央视",中学生
http://gslbmgsplive.miguvideo.com/migu/kailu/20210415/cctvzhongxuesheng/51/index.m3u8?msisdn=20251014180042ccef3dc223b64630bfd2b7a6c09291d0&mdspid=&spid=699004&netType=0&sid=5910019355&pid=2028597139&timestamp=20251014180042&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=708869532&ParentNodeID=-99&assertID=5910019355&client_ip=106.13.250.89&SecurityKey=20251014180042&promotionId=&mvid=5900002149&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1b295e044003583d4d498e62e6ed3a1c&ddCalcu=c11bea21398d50ee60e42460e0839548d34d
#EXTINF:-1 svg-id="CGTN" svg-name="CGTN" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2202/196/407/202204010052_1642124778350_H32_1080.webp" group-title="央视",CGTN
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/cctvnews/1000/index.m3u8?msisdn=20251014180043607bcff72c0e47c9a1dc548f0a075a55&mdspid=&spid=699004&netType=0&sid=2202196407&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609017205&ParentNodeID=-99&assertID=2202196407&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=2202196407&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=00f1e9a4ce17e1b09a87a6007a91191f&ddCalcu=f010e9f11191e099aa740c0e61a77e81ab90
#EXTINF:-1 svg-id="五环传奇" svg-name="五环传奇" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/462/658/202506201045_1750387488185_H32_1080.webp" group-title="体育",五环传奇
http://gslbmgsplive.miguvideo.com/wd_r2/virtuallive/5102010211/150/index.m3u8?msisdn=202510141800432e476be85da243fa8fcb6f85540154ae&mdspid=&spid=800033&netType=0&sid=5500462658&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=707671890&ParentNodeID=-99&assertID=5500462658&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5102010211&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=a7e0408add98fafac829e287d1111c91&ddCalcu=1a97ece11071401018da7d8d29e89f2a8fca
#EXTINF:-1 svg-id="赛事最经典" svg-name="赛事最经典" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/592/947/202204010047_5101034296_H32_1080.webp" group-title="体育",赛事最经典
http://gslbmgsplive.miguvideo.com/migu/kailu/saishijingdian/51/20250514/index.m3u8?msisdn=20251014180043622d7b87883e47a28d9e90bba0ea1441&mdspid=&spid=699004&netType=0&sid=5500592947&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=646596895&ParentNodeID=-99&assertID=5500592947&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5101034296&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=a4ba69e5f8197f253a8932ba1531bdad&ddCalcu=daa4edb1ba6160395e15afb82139978fa235
#EXTINF:-1 svg-id="掼蛋精英赛" svg-name="掼蛋精英赛" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/341/085/202308221004_1692669780451_H32_1080.webp" group-title="体育",掼蛋精英赛
http://gslbmgsplive.miguvideo.com/wd_r4/virtuallive/5101059662/150/index.m3u8?msisdn=2025101418004360e896b7c4bf4e3eb3e3d3afbd4c2ee5&mdspid=&spid=800033&netType=0&sid=5500341085&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=631354620&ParentNodeID=-99&assertID=5500341085&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5101059662&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=6bc16f1d36769c3151ca85dbcd0511ae&ddCalcu=e6abe1c11115600fd1cdb3d65786a9cc1351
#EXTINF:-1 svg-id="体坛名栏汇" svg-name="体坛名栏汇" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/315/687/202204010048_5101034219_H32_1080.webp" group-title="体育",体坛名栏汇
http://gslbmgsplive.miguvideo.com/migu/kailu/titanminglan/51/20250514/index.m3u8?msisdn=2025101418004367f9c4aa16fa473e99f5ec65f07dee8c&mdspid=&spid=699004&netType=0&sid=5500315687&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=629943305&ParentNodeID=-99&assertID=5500315687&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5101034219&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c7b35792782892167687c0215bad24f3&ddCalcu=3cf7e4b1239d50a7b952172802c879826176
#EXTINF:-1 svg-id="四海钓鱼" svg-name="四海钓鱼" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/184/202508040856_5100132656_H32_1080.webp" group-title="体育",四海钓鱼
http://gslbmgsplive.miguvideo.com/wd_r4/peoplecn/shdiaoyu/1200/index.m3u8?msisdn=20251014180043c624279d6dbe4d4e8663e8869bee861c&mdspid=&spid=600697&netType=0&sid=5910022184&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=637444975&ParentNodeID=-99&assertID=5910022184&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5100132656&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=89fc875f55448318e988d57f46d67a29&ddCalcu=9829eaf17c7680d7654ff57554d4888391e8
#EXTINF:-1 svg-id="咪咕24小时体育台" svg-name="咪咕24小时体育台" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/751/211/202106111236_5102223687_201903181136295010914_H32_1080.webp" group-title="体育",咪咕24小时体育台
http://gslbmgsplive.miguvideo.com/wd_r2/virtuallive/tysy201903/75/index.m3u8?msisdn=20251014180043d72e8c121115441ca1a589e05939d581&mdspid=&spid=800033&netType=0&sid=5500751211&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=654102378&ParentNodeID=-99&assertID=5500751211&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5102223687&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=e09f69a13d4a88328b118c75b24c2543&ddCalcu=3e40e5912f4c60492ab1537dc48a1818b382
#EXTINF:-1 svg-id="陕西体育休闲频道" svg-name="陕西体育休闲频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/189/202508051745_1754370657621_H32_1080.webp" group-title="体育",陕西体育休闲频道
http://gslbmgsplive.miguvideo.com/migu/kailu/sxtyxx/51/20250804/index.m3u8?msisdn=2025101418004376ec230f4e3245fb9b1ffa6dc0b9e204&mdspid=&spid=600572&netType=0&sid=5910022189&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956909356&ParentNodeID=-99&assertID=5910022189&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900006712&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=9a5b34301194d8deb7ce2dbbe7b5aa67&ddCalcu=796aea51ab6530b473e0b1b1d924edc87dbe
#EXTINF:-1 svg-id="24小时城市联赛轮播台" svg-name="24小时城市联赛轮播台" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/136/202509241340_1758692392561_H32_1080.webp" group-title="体育",24小时城市联赛轮播台
http://gslbmgsplive.miguvideo.com/migu/lunbo/ouzhoubei/51/20240603/index.m3u8?msisdn=2025101418004311a3f00bba6544a59ce1409cee6f7e3c&mdspid=&spid=800033&netType=0&sid=5910022136&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=915512915&ParentNodeID=-99&assertID=5910022136&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900006618&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=4fc7e285d9e1d97b390043613a9eb6a2&ddCalcu=24afe6c1b75ee092a8351d693e410d09973b
#EXTINF:-1 svg-id="武术世界" svg-name="武术世界" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/201/202509251348_1758698474363_H32_1080.webp" group-title="体育",武术世界
http://gslbmgsplive.miguvideo.com/migu/kailu/wssj/51/20250915/index.m3u8?msisdn=20251014180043c31167fae62c4230850341703f3ae2cf&mdspid=&spid=600697&netType=0&sid=5910022201&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=958475359&ParentNodeID=-99&assertID=5910022201&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900006724&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=96557cade4d0fc55a77fa093a98cd82c&ddCalcu=c926e851d58c708c9aad3e940da0ff7c75a5
#EXTINF:-1 svg-id="东方卫视" svg-name="东方卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/185/202508040856_5100043384_H32_1080.webp" group-title="卫视",东方卫视
http://gslbmgsplive.miguvideo.com/wd_r4/dfl/dongfangwshd/1200/index.m3u8?msisdn=2025101418004318c750bec4a74cfd805ddc6d9ce58e9f&mdspid=&spid=600697&netType=0&sid=5910022185&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=651632648&ParentNodeID=-99&assertID=5910022185&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5100043384&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=bde3bd3b4e214df093a29e331d2b57dd&ddCalcu=dbdde7e1531bb02dd31b343ee29124ad3f90
#EXTINF:-1 svg-id="江苏卫视" svg-name="江苏卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/199/408/202104022140_5100156802_H32_1080.webp" group-title="卫视",江苏卫视
http://gslbmgsplive.miguvideo.com/wd_r2/cctv/jiangsuhd/1200/index.m3u8?msisdn=2025101418004347c15c2d316a43398ac7c7ce638a2de9&mdspid=&spid=699067&netType=0&sid=5500199408&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=623899368&ParentNodeID=-99&assertID=5500199408&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5100156802&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=0453da2edfb8fc3502b8e10b4bc723b5&ddCalcu=50b4e3512337d0cab24ebd0f1be88fbc2305
#EXTINF:-1 svg-id="广东卫视" svg-name="广东卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2202/428/795/202107191524_2202428795_H32_1080.webp" group-title="卫视",广东卫视
http://gslbmgsplive.miguvideo.com/ws_w/2018/gdws/gdws711/1000/index.m3u8?msisdn=20251014180043c62fbc6f83a24e66a6382d8cbd876605&mdspid=&spid=699054&netType=0&sid=2202428795&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608831231&ParentNodeID=-99&assertID=2202428795&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=2202428795&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=514979234540d04353900e90ac3743d9&ddCalcu=95d1e34149877039c2a30495e4000d903453
#EXTINF:-1 svg-id="江西卫视" svg-name="江西卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/021/492/202303201551_1658134104486_H32_1080.webp" group-title="卫视",江西卫视
http://gslbmgsplive.miguvideo.com/migu/kailu/jxwshd/51/20190820/index.m3u8?msisdn=2025101418004369a89f6be80b446fb8575b992ee6df78&mdspid=&spid=600633&netType=0&sid=5910021492&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=783847495&ParentNodeID=-99&assertID=5910021492&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900004351&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=be5e2df886bec52ba6ab62bdcb333a7d&ddCalcu=db7eea513e33203dbfc8d8b62b6ebca562ab
#EXTINF:-1 svg-id="河南卫视" svg-name="河南卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/021/585/202304031400_1679994692427_H32_1080.webp" group-title="卫视",河南卫视
http://gslbmgsplive.miguvideo.com/wd-henanwssd-600/index.m3u8?msisdn=20251014180043d984f302efeb48769975247db254b2f2&mdspid=&spid=600633&netType=0&sid=5910021585&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=790187291&ParentNodeID=-99&assertID=5910021585&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900005706&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d69891ea39f0969a5dff42f293218be5&ddCalcu=5de6eb91880190213e9a23f92f40f9f6d95a
#EXTINF:-1 svg-id="陕西卫视" svg-name="陕西卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/020/475/202207191732_1658131370190_H32_1080.webp" group-title="卫视",陕西卫视
http://gslbmgsplive.miguvideo.com/migu/kailu/shan3xiws/51/20220809/index.m3u8?msisdn=20251014180043b2a259c5a8694e85926bfb0b849ae9bd&mdspid=&spid=600633&netType=0&sid=5910020475&pid=2028597139&timestamp=20251014180043&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=738910838&ParentNodeID=-99&assertID=5910020475&client_ip=106.13.250.89&SecurityKey=20251014180043&promotionId=&mvid=5900004331&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=fd16f6166253362946b8d48297bc4c8c&ddCalcu=cf8dec11468cf0b67196268245d383b66249
#EXTINF:-1 svg-id="大湾区卫视" svg-name="大湾区卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/322/852/202304081513_1677570739176_H32_1080.webp" group-title="卫视",大湾区卫视
http://gslbmgsplive.miguvideo.com/wd_r3/2018/nfmedia/nfws/1000/index.m3u8?msisdn=2025101418004494e40ba43415423ca5699d8c32e14db2&mdspid=&spid=699054&netType=0&sid=2200322852&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608917627&ParentNodeID=-99&assertID=2200322852&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=2200322852&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=cf49c162e87f94ccd31dd088265d2f55&ddCalcu=5c5fef41298dc05166228e8807dfd9143cdc
#EXTINF:-1 svg-id="湖北卫视" svg-name="湖北卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/163/202501231715_1658138615859_H32_1080.webp" group-title="卫视",湖北卫视
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/hubeiwshd/2000/index.m3u8?msisdn=20251014180044f9a1ddb76ef14db79a856d8e4cde5db7&mdspid=&spid=600633&netType=0&sid=5910022163&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=947472496&ParentNodeID=-99&assertID=5910022163&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900004355&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1629983093057be52f7af220c61a7963&ddCalcu=3166e921797a901863c0092320f5a77bfe25
#EXTINF:-1 svg-id="吉林卫视" svg-name="吉林卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/164/202501231715_1658138733016_H32_1080.webp" group-title="卫视",吉林卫视
http://gslbmgsplive.miguvideo.com/envivo_v/2018/SD/jilin/1000/index.m3u8?msisdn=20251014180044413a8173141e497cb668529de776ffdd&mdspid=&spid=600633&netType=0&sid=5910022164&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=947472500&ParentNodeID=-99&assertID=5910022164&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900004357&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d60b2e1069dcb5b8c3491c759af34d22&ddCalcu=2d26ed014b7320fea1905679cd1c9b453bc8
#EXTINF:-1 svg-id="青海卫视" svg-name="青海卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/166/202501231715_1658138545016_H32_1080.webp" group-title="卫视",青海卫视
http://gslbmgsplive.miguvideo.com/envivo_w/2018/SD/qinghai/1000/index.m3u8?msisdn=20251014180044f5a8e8586ac748f48e8143400e3f6b47&mdspid=&spid=600633&netType=0&sid=5910022166&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=947472506&ParentNodeID=-99&assertID=5910022166&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900004353&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=45a05f4d2f44ac0ea84b40fce9999da2&ddCalcu=24a5eda19079509f94edc2ff0444ba4c80ae
#EXTINF:-1 svg-id="海南卫视" svg-name="海南卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/165/202501231715_1658138869802_H32_1080.webp" group-title="卫视",海南卫视
http://gslbmgsplive.miguvideo.com/envivo_x/SD/lvyou/711/index.m3u8?msisdn=2025101418004461ca47cb38d845e7a2233a19124056e6&mdspid=&spid=600633&netType=0&sid=5910022165&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=947472502&ParentNodeID=-99&assertID=5910022165&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900004359&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=7a35f4c4aee76ba789e45475c9365a60&ddCalcu=076aea315576f0349cc45a7e4e5746eb9a87
#EXTINF:-1 svg-id="中国农林卫视" svg-name="中国农林卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/186/202508051621_1754370274934_H32_1080.webp" group-title="卫视",中国农林卫视
http://gslbmgsplive.miguvideo.com/migu/kailu/zgnlws/51/20250804/index.m3u8?msisdn=20251014180044a58b06cbba6c455989ba9ec5a91a55a4&mdspid=&spid=600572&netType=0&sid=5910022186&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956904896&ParentNodeID=-99&assertID=5910022186&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900006709&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=8702bfe172ad2a4a88fa36fbda87e5cd&ddCalcu=d8c7e501e267b08faed1b7f26a3da2fa848a
#EXTINF:-1 svg-id="兵团卫视" svg-name="兵团卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/192/202508061552_1754385902654_H32_1080.webp" group-title="卫视",兵团卫视
http://gslbmgsplive.miguvideo.com/migu/kailu/btws/51/20250804/index.m3u8?msisdn=20251014180044663cfb4dd2ee41099d90efb6252bdabb&mdspid=&spid=600697&netType=0&sid=5910022192&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956923145&ParentNodeID=-99&assertID=5910022192&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900006716&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=6d7c7e81658f0492fd39d5c7756e13a7&ddCalcu=76ade3711c6e706e587176c558df9034d9f2
#EXTINF:-1 svg-id="辽宁卫视" svg-name="辽宁卫视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/198/202509221600_5101043014_H32_1080.webp" group-title="卫视",辽宁卫视
http://gslbmgsplive.miguvideo.com/wd_r2/2018/ocn/liaoningwshd/2000/index.m3u8?msisdn=202510141800445bbfe55be07148538464a4269581e280&mdspid=&spid=600572&netType=0&sid=5910022198&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=630291707&ParentNodeID=-99&assertID=5910022198&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5101043014&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=47bbb9aad35eb63cb96f92628ae0fc92&ddCalcu=2497ecb1fb00b0e9aa8a2d63259efb6693bc
#EXTINF:-1 svg-id="上海新闻综合" svg-name="上海新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/002/275/202107191641_5100001716_H32_1080.webp" group-title="地方",上海新闻综合
http://gslbmgsplive.miguvideo.com/wd_r4/dfl/xinwenzonghehd/1200/index.m3u8?msisdn=2025101418004417c00093c5e34387970f26594fffe847&mdspid=&spid=699212&netType=0&sid=5500002275&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=651632657&ParentNodeID=-99&assertID=5500002275&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5100001716&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=3e01cd5ee1672b8daa71284172cf8833&ddCalcu=333ee801811fc0cd257e1e418627127ba8ad
#EXTINF:-1 svg-id="上视东方影视" svg-name="上视东方影视" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/002/274/202105271333_5100001715_2_H32_1080.webp" group-title="地方",上视东方影视
http://gslbmgsplive.miguvideo.com/wd_r4/dfl/dianshijuhd/1200/index.m3u8?msisdn=202510141800445b4756e9070b4dfd9c1c9f14f9a8a762&mdspid=&spid=699212&netType=0&sid=5500002274&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=617290047&ParentNodeID=-99&assertID=5500002274&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5100001715&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b40d38fb394132687423f1725711e6db&ddCalcu=bbd4e601ed7130187f5b237914f133224678
#EXTINF:-1 svg-id="南京新闻综合频道" svg-name="南京新闻综合频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/021/863/202307121521_1689144372702_H32_1080.webp" group-title="地方",南京新闻综合频道
http://gslbmgsplive.miguvideo.com/migu/kailu/nanjingxwzh/50/20230719/index.m3u8?msisdn=202510141800440526bccb9abe41afb6eb5c855b8495b8&mdspid=&spid=699067&netType=0&sid=5910021863&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=838109047&ParentNodeID=-99&assertID=5910021863&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900006203&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=3b1d4e897a012b0b63d5071b0b30c520&ddCalcu=032be511cd80403eb809b71a700152db306b
#EXTINF:-1 svg-id="南京教科频道" svg-name="南京教科频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/021/865/202307121700_1689146730747_H32_1080.webp" group-title="地方",南京教科频道
http://gslbmgsplive.miguvideo.com/migu/kailu/nanjingkj/50/20230719/index.m3u8?msisdn=202510141800443869fee576564ba3b05e0b893b8fa505&mdspid=&spid=699067&netType=0&sid=5910021865&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=838153729&ParentNodeID=-99&assertID=5910021865&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900006205&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=817668f36d404dcb350661935a762263&ddCalcu=3861e27126866078af53369d1460640d5c3b
#EXTINF:-1 svg-id="南京十八频道" svg-name="南京十八频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/021/864/202307121658_1689146948769_H32_1080.webp" group-title="地方",南京十八频道
http://gslbmgsplive.miguvideo.com/migu/kailu/nanjingsb/50/20230719/index.m3u8?msisdn=20251014180044c91819e8f4314869be0b1c91a6718911&mdspid=&spid=699067&netType=0&sid=5910021864&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=838151753&ParentNodeID=-99&assertID=5910021864&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5900006207&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=37c92a02b1ac2fd841be9cdc298177b7&ddCalcu=73b7e7c17981208a9022cbd1ca9ce2bf1d48
#EXTINF:-1 svg-id="体育休闲频道" svg-name="体育休闲频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/554/202104022139_5100186459_H32_1080.webp" group-title="地方",体育休闲频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jstiyu/600/index.m3u8?msisdn=202510141800444139e414b57447629abbcc7687d6ed9c&mdspid=&spid=699067&netType=0&sid=5500260554&pid=2028597139&timestamp=20251014180044&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064707&ParentNodeID=-99&assertID=5500260554&client_ip=106.13.250.89&SecurityKey=20251014180044&promotionId=&mvid=5100186459&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=27a5bd9c03475a1ed726816cc5058bb5&ddCalcu=52b7eba18565b00d59ccc0631487652a71de
#EXTINF:-1 svg-id="江苏城市频道" svg-name="江苏城市频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/508/202104022138_5100186409_H32_1080.webp" group-title="地方",江苏城市频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jschengshi/600/index.m3u8?msisdn=2025101418004556f2749dc95540df9e024fde9e14aecf&mdspid=&spid=699067&netType=0&sid=5500260508&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064714&ParentNodeID=-99&assertID=5500260508&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186409&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=133c5d90d759d76d60d05b14e2fa00a0&ddCalcu=01a3e0310c6a50fd29e04d17b5590dd7066d
#EXTINF:-1 svg-id="江苏国际" svg-name="江苏国际" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/577/202104022139_5100186482_H32_1080.webp" group-title="地方",江苏国际
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jsguoji/600/index.m3u8?msisdn=20251014180045bd48a8eb85664a1e8279fa359ce646f3&mdspid=&spid=699067&netType=0&sid=5500260577&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064674&ParentNodeID=-99&assertID=5500260577&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186482&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=5b2c8e5d5eeaa82e37f608fca2ef9993&ddCalcu=359be9219c6f80ee25adc5fe8e0a6af8723e
#EXTINF:-1 svg-id="江苏教育" svg-name="江苏教育" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/287/493/202104022139_5101012819_H32_1080.webp" group-title="地方",江苏教育
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jsjiaoyu/600/index.m3u8?msisdn=202510141800456aeab1dbcb74404cb2a3fb9d9f6c2bb0&mdspid=&spid=699067&netType=0&sid=5500287493&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=628008321&ParentNodeID=-99&assertID=5500287493&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5101012819&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1f07ba45c9c3c4fb985f32b9dc0c81f1&ddCalcu=11ffe101878cb00ac4d59cb92c33fc548f9b
#EXTINF:-1 svg-id="江苏影视频道" svg-name="江苏影视频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/517/202104022138_5100186424_H32_1080.webp" group-title="地方",江苏影视频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jsyingshi/600/index.m3u8?msisdn=20251014180045f58e7d62f2b046b9a1db47d3145ec199&mdspid=&spid=699067&netType=0&sid=5500260517&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064697&ParentNodeID=-99&assertID=5500260517&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186424&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=4e44a542de2eb4c5e89eb5e9708e0c98&ddCalcu=849eec41046ea08504729dee52beeb948ce5
#EXTINF:-1 svg-id="江苏综艺频道" svg-name="江苏综艺频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/513/202104022039_5100186420_H32_1080.webp" group-title="地方",江苏综艺频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jszongyi/600/index.m3u8?msisdn=202510141800454ec6267a30954fa2a5839c851f81716b&mdspid=&spid=699067&netType=0&sid=5500260513&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626065193&ParentNodeID=-99&assertID=5500260513&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186420&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=2183dded10f98c83590161295068da54&ddCalcu=4251ea81d368d06d0e5d91201f69180c9853
#EXTINF:-1 svg-id="公共新闻频道" svg-name="公共新闻频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/520/202104022138_5100186429_H32_1080.webp" group-title="地方",公共新闻频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/jsgonggong/600/index.m3u8?msisdn=20251014180045733994534ace4a03b8a8fb7bc6916cac&mdspid=&spid=699067&netType=0&sid=5500260520&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064693&ParentNodeID=-99&assertID=5500260520&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186429&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=81cff28e5cc2fb5f20a3f91370cd1d81&ddCalcu=1881edc11f6df0c2087e351c9cf23fab052f
#EXTINF:-1 svg-id="盐城新闻综合" svg-name="盐城新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/360/202212301654_5102012617_H32_1080.webp" group-title="地方",盐城新闻综合
http://gslbmgsplive.miguvideo.com/migu/kailu/ycxwzh/51/20250604/index.m3u8?msisdn=20251014180045e7471da7e1854468aa99377d9344fbaa&mdspid=&spid=699067&netType=0&sid=5500469360&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731825&ParentNodeID=-99&assertID=5500469360&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012617&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=817678192c6ea19a2205e789f0132111&ddCalcu=1811e1712693701801f9928c76ee5a01292a
#EXTINF:-1 svg-id="淮安新闻综合" svg-name="淮安新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/363/202104022141_5102012618_H32_1080.webp" group-title="地方",淮安新闻综合
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/haxinwenzonghe/600/index.m3u8?msisdn=20251014180045dc2136f376e6455383acaa4cb01654a7&mdspid=&spid=699067&netType=0&sid=5500469363&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731826&ParentNodeID=-99&assertID=5500469363&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012618&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=ba573a4096a5857e2ee62a946ba99ad4&ddCalcu=4bdaea51979930aab4604996aa2568e5e72e
#EXTINF:-1 svg-id="泰州新闻综合" svg-name="泰州新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/354/202104071213_5102012615_H32_1080.webp" group-title="地方",泰州新闻综合
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/tzxinwenzonghe/600/index.m3u8?msisdn=20251014180045e850190e28294378afd29375a646ecaa&mdspid=&spid=699067&netType=0&sid=5500469354&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731818&ParentNodeID=-99&assertID=5500469354&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012615&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=9bf6ba49e08b8ed4fcfd0a56df21d67e&ddCalcu=e97be6f1d691b02af4d96e50a80bd8fecdf4
#EXTINF:-1 svg-id="连云港新闻综合" svg-name="连云港新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/369/202104022140_5102012621_H32_1080.webp" group-title="地方",连云港新闻综合
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/lygxinwenzonghe/600/index.m3u8?msisdn=20251014180045428e50891f9e4264aa808cb1013a2a5a&mdspid=&spid=699067&netType=0&sid=5500469369&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731715&ParentNodeID=-99&assertID=5500469369&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012621&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b1025f0791f5d9412ce9a769a62aa846&ddCalcu=6b41e801a29a502f60a799617fa59de9c421
#EXTINF:-1 svg-id="宿迁新闻综合" svg-name="宿迁新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/357/202104022141_5102012616_H32_1080.webp" group-title="地方",宿迁新闻综合
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/sqxinwenzonghe/600/index.m3u8?msisdn=2025101418004501664a1084ea433eb11ee70505a4b70c&mdspid=&spid=699067&netType=0&sid=5500469357&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731832&ParentNodeID=-99&assertID=5500469357&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012616&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b717c5fd9e0a081d53863c4a82a04d34&ddCalcu=4b37ed114790c0a52f8da94ec03a6088315d
#EXTINF:-1 svg-id="徐州新闻综合" svg-name="徐州新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/368/202104022141_5102012620_H32_1080.webp" group-title="地方",徐州新闻综合
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/xzxinwenzonghe/600/index.m3u8?msisdn=2025101418004585827487a5fa406189555b926a751dac&mdspid=&spid=699067&netType=0&sid=5500469368&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639731747&ParentNodeID=-99&assertID=5500469368&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5102012620&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=7a6360fe1e4ece6727f5b50c15811529&ddCalcu=972ae561139160805f1ec10e54be5cfe7627
#EXTINF:-1 svg-id="优漫卡通频道" svg-name="优漫卡通频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/260/553/202104022139_5100186455_H32_1080.webp" group-title="地方",优漫卡通频道
http://gslbmgsplive.miguvideo.com/wd_r2/jstv/ymkt/600/index.m3u8?msisdn=202510141800453ec3d46d03d340c3a2fdaf31ded04f0c&mdspid=&spid=699067&netType=0&sid=5500260553&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=626064703&ParentNodeID=-99&assertID=5500260553&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5100186455&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d2d924911197fb3631f8ee5585ba0a7c&ddCalcu=cd72ead1096a20b459815151e9e78ffb1336
#EXTINF:-1 svg-id="江阴新闻综合" svg-name="江阴新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/177/202506121842_1749616874292_H32_1080.webp" group-title="地方",江阴新闻综合
http://gslbmgsplive.miguvideo.com/migu/kailu/jyxwzh/51/20250604/index.m3u8?msisdn=202510141800457611b303c81d4c34be3fa074524543db&mdspid=&spid=699067&netType=0&sid=5910022177&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=955227979&ParentNodeID=-99&assertID=5910022177&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5900006705&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=b81f0256403121ce55580adaa1e06f35&ddCalcu=5b38ef116f5000e215a6a4d0a30182515c5e
#EXTINF:-1 svg-id="南通新闻综合" svg-name="南通新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/178/202506121842_1749617000499_H32_1080.webp" group-title="地方",南通新闻综合
http://gslbmgsplive.miguvideo.com/migu/kailu/ntxwzh/51/20250604/index.m3u8?msisdn=20251014180045015d37d3f95f4b9498e145092040bbfa&mdspid=&spid=699067&netType=0&sid=5910022178&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=955227985&ParentNodeID=-99&assertID=5910022178&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5900006706&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=98a0a5cfa8e43b1afae60c29cdd4a098&ddCalcu=8998e0a1a054a0d5dccf9a28ce0463eba1fa
#EXTINF:-1 svg-id="宜兴新闻综合" svg-name="宜兴新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/179/202506121843_1749617094510_H32_1080.webp" group-title="地方",宜兴新闻综合
http://gslbmgsplive.miguvideo.com/migu/kailu/yxxwzh/51/20250604/index.m3u8?msisdn=202510141800450f3b43c6e96c48f1ba3279af42b3c774&mdspid=&spid=699067&netType=0&sid=5910022179&pid=2028597139&timestamp=20251014180045&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=955227996&ParentNodeID=-99&assertID=5910022179&client_ip=106.13.250.89&SecurityKey=20251014180045&promotionId=&mvid=5900006707&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c2d1ab39d1252eb94669b899c1c2b5ec&ddCalcu=cce2e5d1b152a0cb13c99d9182b5926e6b49
#EXTINF:-1 svg-id="溧水新闻综合" svg-name="溧水新闻综合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/469/349/202506201638_1750408486645_H32_1080.webp" group-title="地方",溧水新闻综合
http://gslbmgsplive.miguvideo.com/migu/kailu/wxxwzh/51/20250604/index.m3u8?msisdn=2025101418004630ffc5e77b3440b5939f151ee120c4b6&mdspid=&spid=699067&netType=0&sid=5500469349&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=639737327&ParentNodeID=-99&assertID=5500469349&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5102012612&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d5f7573efc4d44ba89938b5c86016125&ddCalcu=5d25e1f167915007638ecf5cb48d34949b8a
#EXTINF:-1 svg-id="陕西银龄频道" svg-name="陕西银龄频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/191/202508051746_1754371397446_H32_1080.webp" group-title="地方",陕西银龄频道
http://gslbmgsplive.miguvideo.com/migu/kailu/sxylpd/51/20250804/index.m3u8?msisdn=20251014180046e7fb88ecd6a54643a97a84e4c0a8c347&mdspid=&spid=600572&netType=0&sid=5910022191&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956909362&ParentNodeID=-99&assertID=5910022191&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006714&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c5f5c1005f8fa1e590e63e119ff5a3d2&ddCalcu=2cd5e3f1a565c0f1f090151fe83f6ae10e95
#EXTINF:-1 svg-id="陕西都市青春频道" svg-name="陕西都市青春频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/190/202508051746_1754371284700_H32_1080.webp" group-title="地方",陕西都市青春频道
http://gslbmgsplive.miguvideo.com/migu/kailu/sxdsqc/51/20250804/index.m3u8?msisdn=20251014180046b4c4541aa53d4359bc482ca7d6048602&mdspid=&spid=600572&netType=0&sid=5910022190&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956909358&ParentNodeID=-99&assertID=5910022190&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006713&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=ce481d34c14e0b5a1921f5dbf26f73bc&ddCalcu=ccbee341786f106d23f4bcd154fe102b951a
#EXTINF:-1 svg-id="陕西秦腔频道" svg-name="陕西秦腔频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/188/202508051741_1754370560985_H32_1080.webp" group-title="地方",陕西秦腔频道
http://gslbmgsplive.miguvideo.com/migu/kailu/sxqqpd/51/20250804/index.m3u8?msisdn=202510141800460642436b6e17472eb16cc5745ba39594&mdspid=&spid=600572&netType=0&sid=5910022188&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956909303&ParentNodeID=-99&assertID=5910022188&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006711&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=f42cbf237cff9dac51439cae644a3f0c&ddCalcu=cf04ef213c6ab04f4263e7accf9f394d1a5c
#EXTINF:-1 svg-id="陕西新闻资讯频道" svg-name="陕西新闻资讯频道" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/187/202508051740_1754370418409_H32_1080.webp" group-title="地方",陕西新闻资讯频道
http://gslbmgsplive.miguvideo.com/migu/kailu/sxxwzx/51/20250804/index.m3u8?msisdn=202510141800463a89a1a6ee154f11a176981ad1888e39&mdspid=&spid=600572&netType=0&sid=5910022187&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956909289&ParentNodeID=-99&assertID=5910022187&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006710&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=32254a4f8a39bf6241176290ee5799b6&ddCalcu=63b2e9219567405ae4ef089a23697b1f1642
#EXTINF:-1 svg-id="财富天下" svg-name="财富天下" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/193/202508061552_1754385779498_H32_1080.webp" group-title="地方",财富天下
http://gslbmgsplive.miguvideo.com/migu/kailu/cftx/51/20250804/index.m3u8?msisdn=2025101418004625ff34176b7f416ba65265084cd0a04d&mdspid=&spid=600697&netType=0&sid=5910022193&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=956923159&ParentNodeID=-99&assertID=5910022193&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006715&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=5e08d505468f5b72735c03576ed1056d&ddCalcu=d56ee5010861d0d5e0657456380fc55b3772
#EXTINF:-1 svg-id="经典香港电影" svg-name="经典香港电影" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/242/089/202508211805_1755769511908_H32_1080.webp" group-title="影视",经典香港电影
http://gslbmgsplive.miguvideo.com/wd_r2/virtuallive/5100180869/150/index.m3u8?msisdn=202510141800469fb6c3e80f9442f2bab8b008f2b7d319&mdspid=&spid=800033&netType=0&sid=5500242089&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=625703337&ParentNodeID=-99&assertID=5500242089&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5100180869&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c89797ac2713398a9ad1a99889c72684&ddCalcu=4c88e691275790c79a8c829791a313d9a89a
#EXTINF:-1 svg-id="抗战经典影片" svg-name="抗战经典影片" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/002/717/202507241513_1753340553498_H32_1080.webp" group-title="影视",抗战经典影片
http://gslbmgsplive.miguvideo.com/wd-virtuallive5100002089-150/index.m3u8?msisdn=20251014180046ad5df5934e1a4be29a5f34aedbc22203&mdspid=&spid=800033&netType=0&sid=5500002717&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=617432318&ParentNodeID=-99&assertID=5500002717&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5100002089&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=5deb8c4bfb235207963022ceeb9d4056&ddCalcu=655de0e14b7d809cb4ebefcb222305326097
#EXTINF:-1 svg-id="新片放映厅" svg-name="新片放映厅" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/035/175/202405061742_1714988159903_H32_1080.webp" group-title="影视",新片放映厅
http://gslbmgsplive.miguvideo.com/wd-virtuallive5100030975-150/index.m3u8?msisdn=202510141800464dff4c5d8eea47b989545314a56cfb18&mdspid=&spid=800033&netType=0&sid=5500035175&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=619495952&ParentNodeID=-99&assertID=5500035175&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5100030975&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1496b31c83cfbc31e869fef3c645d46f&ddCalcu=f164e491d695b04361cc38f3ecff9b6c83e1
#EXTINF:-1 svg-id="CHC影迷电影" svg-name="CHC影迷电影" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/176/202504161629_1744788999453_H32_1080.webp" group-title="影视",CHC影迷电影
http://gslbmgsplive.miguvideo.com/migu/kailu/chcymdy/51/20250415/index.m3u8?msisdn=20251014180046f624bb3ce7df4b069e3a259604d1cf9d&mdspid=&spid=699004&netType=0&sid=5910022176&pid=2028597139&timestamp=20251014180046&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=952383261&ParentNodeID=-99&assertID=5910022176&client_ip=106.13.250.89&SecurityKey=20251014180046&promotionId=&mvid=5900006704&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=481ac673a2d1ef8d2ef1a351991c553c&ddCalcu=c438e5115a2cc01697931a523da11effe82d
#EXTINF:-1 svg-id="和美乡途轮播台" svg-name="和美乡途轮播台" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/019/525/202504151721_1744708812840_H32_1080.webp" group-title="影视",和美乡途轮播台
http://gslbmgsplive.miguvideo.com/migu/virtuallive2/5900002411/51/20210706/index.m3u8?msisdn=2025101418004713ed4a0c6ea04278b8b436a271c3b830&mdspid=&spid=800033&netType=0&sid=5910019525&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=713591450&ParentNodeID=-99&assertID=5910019525&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5900002421&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=2860558bb3bc699e65d79850c4c9b97e&ddCalcu=e278e961b03950c548cb0b538b9c76d9596e
#EXTINF:-1 svg-id="高清大片" svg-name="高清大片" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/315/684/202204010048_5101034200_H32_1080.webp" group-title="影视",高清大片
http://gslbmgsplive.miguvideo.com/migu/kailu/gaoqingdapian/51/20250514/index.m3u8?msisdn=202510141800474d0ba0082b2e412588aba59aa4811955&mdspid=&spid=699004&netType=0&sid=5500315684&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=629943678&ParentNodeID=-99&assertID=5500315684&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5101034200&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1cb7595f4dbf6c0dadbd7b2a626d8259&ddCalcu=915ce2b1879d5069256fa42dbb7fd6bcd0ad
#EXTINF:-1 svg-id="血色山河·抗日战争影像志" svg-name="血色山河·抗日战争影像志" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/019/527/202506181115_1750216452364_H32_1080.webp" group-title="影视",血色山河·抗日战争影像志
http://gslbmgsplive.miguvideo.com/migu/virtuallive2/5900002413/51/20210706/index.m3u8?msisdn=20251014180047e6ad92e0dca44631997e2199d56cd3c7&mdspid=&spid=800033&netType=0&sid=5910019527&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=713600957&ParentNodeID=-99&assertID=5910019527&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5900002443&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=bac6374959d8f63ef60d709cc3ecad74&ddCalcu=4b7aedc1a63c30e734c9c5990d78df0663fe
#EXTINF:-1 svg-id="CETV1" svg-name="CETV1" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/150/202407181432_1721283631491_H32_1080.webp" group-title="教育",CETV1
http://gslbmgsplive.miguvideo.com/migu/kailu/cetv1/51/20240709/index.m3u8?msisdn=2025101418004738f2bcdbdbbe426fa94b115dd9ca34fa&mdspid=&spid=699004&netType=0&sid=5910022150&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=923287154&ParentNodeID=-99&assertID=5910022150&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5900006636&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=1caf501dbd7931e7e6f978906808fb94&ddCalcu=419ceba1ff385000816d0b9d877993f16ee7
#EXTINF:-1 svg-id="CETV2" svg-name="CETV2" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/152/202407181432_1721283782530_H32_1080.webp" group-title="教育",CETV2
http://gslbmgsplive.miguvideo.com/migu/kailu/cetv2/51/20240709/index.m3u8?msisdn=20251014180047fe13849860f0430d9ab51f5ebeb1ec16&mdspid=&spid=699004&netType=0&sid=5910022152&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=923287211&ParentNodeID=-99&assertID=5910022152&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5900006638&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=e88776e652581f250abbd45c350251d3&ddCalcu=3ed8e181573270065e36c55245d8b1bfa205
#EXTINF:-1 svg-id="CETV4" svg-name="CETV4" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/022/154/202407181433_1721283870297_H32_1080.webp" group-title="教育",CETV4
http://gslbmgsplive.miguvideo.com/migu/kailu/cetv4/51/20240709/index.m3u8?msisdn=20251014180047c3844d80172a461eb793dd34963563f6&mdspid=&spid=699004&netType=0&sid=5910022154&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=923287339&ParentNodeID=-99&assertID=5910022154&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=5900006640&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=ed44237211a13efb5bcaaaa290d5cb18&ddCalcu=8e1deb41c43520d3079221a1aaa1a3cebf5b
#EXTINF:-1 svg-id="山东教育" svg-name="山东教育" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/199/202509241938_1758698577926_H32_1080.webp" group-title="教育",山东教育
http://gslbmgsplive.miguvideo.com/migu/kailu/sdjyws/51/20250915/index.m3u8?msisdn=20251014180047671a9e310ad143d8bb16ce9880998d02&mdspid=&spid=600697&netType=0&sid=5910022199&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609154353&ParentNodeID=-99&assertID=5910022199&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200208305&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=7cfc98d9cc843c95568465236527d56c&ddCalcu=c76ce5f1dc9790285d693c2c5864438c6955
#EXTINF:-1 svg-id="熊猫频道01高清" svg-name="熊猫频道01高清" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2202/634/723/202206081044_2202634723_H32_1080.webp" group-title="熊猫",熊猫频道01高清
http://gslbmgsplive.miguvideo.com/ws_x/2018/xiongmao/HD/2000/index.m3u8?msisdn=202510141800473542d3b860764d679ab7bd64a64a151d&mdspid=&spid=699004&netType=0&sid=2202634723&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609158151&ParentNodeID=-99&assertID=2202634723&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2202634723&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=2d9c31409a24fac6315d3225742f15ae&ddCalcu=e2ade5911c9f30214470592a2234df5a1c36
#EXTINF:-1 svg-id="熊猫频道1" svg-name="熊猫频道1" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/699/202209211759_2200200699_H32_1080.webp" group-title="熊猫",熊猫频道1
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao01/1000/index.m3u8?msisdn=20251014180047fcb5248c575c410e96f3e28381b022f9&mdspid=&spid=699004&netType=0&sid=2200200699&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608933610&ParentNodeID=-99&assertID=2200200699&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200699&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=31b0ae69f0a09508dbb8a8eaf4ecf6a0&ddCalcu=03a1e6b1f08ca0ee46f9afe08aa089b5b0d8
#EXTINF:-1 svg-id="熊猫频道2" svg-name="熊猫频道2" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/717/202209211759_2200200717_H32_1080.webp" group-title="熊猫",熊猫频道2
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao02/1000/index.m3u8?msisdn=202510141800479785e28d38f64beb97dfb27e5ac1cde3&mdspid=&spid=699004&netType=0&sid=2200200717&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608933640&ParentNodeID=-99&assertID=2200200717&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200717&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=0af006ba8a8cbbc6ab0a8687eb58b788&ddCalcu=808ae7f1b0880056bbea788a688cab0bbca6
#EXTINF:-1 svg-id="熊猫频道3" svg-name="熊猫频道3" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/738/202209211759_2200200738_H32_1080.webp" group-title="熊猫",熊猫频道3
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao03/1000/index.m3u8?msisdn=20251014180047587be11cc7784e14833c448f6e3033b6&mdspid=&spid=699004&netType=0&sid=2200200738&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608934619&ParentNodeID=-99&assertID=2200200738&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200738&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=5c7909b19cc97db67a6f0836245996d4&ddCalcu=45dce671998900594b21693c8c09f76dab76
#EXTINF:-1 svg-id="熊猫频道4" svg-name="熊猫频道4" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/771/202209211800_2200200771_H32_1080.webp" group-title="熊猫",熊猫频道4
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao04/1000/index.m3u8?msisdn=20251014180047d858bd9f44cb4c7f9fa473d610bd9b01&mdspid=&spid=699004&netType=0&sid=2200200771&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608934721&ParentNodeID=-99&assertID=2200200771&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200771&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=2c5fe28e63f2a14f12ca5bf7b8c749d4&ddCalcu=42dce9514f87e0c288be76f3bf52aac1241f
#EXTINF:-1 svg-id="熊猫频道5" svg-name="熊猫频道5" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/791/202209211800_2200200791_H32_1080.webp" group-title="熊猫",熊猫频道5
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao05/1000/index.m3u8?msisdn=20251014180047f560647c31034539b6ce6136c2d0b15e&mdspid=&spid=699004&netType=0&sid=2200200791&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608935104&ParentNodeID=-99&assertID=2200200791&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200791&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=515e1a283b1cadc4e96f3aeb3ff83be6&ddCalcu=65e1eb513e8810faf238b3eba13cfa6d9ce4
#EXTINF:-1 svg-id="熊猫频道6" svg-name="熊猫频道6" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/200/817/202209211800_2200200817_H32_1080.webp" group-title="熊猫",熊猫频道6
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao06/1000/index.m3u8?msisdn=202510141800472f87a41207b64518ad27e52baf336fae&mdspid=&spid=699004&netType=0&sid=2200200817&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=608935797&ParentNodeID=-99&assertID=2200200817&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200200817&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=3e0ace891401b116599e2e5c22e5bb76&ddCalcu=637eeb01ba85c0ee2829c154e021eb919156
#EXTINF:-1 svg-id="熊猫频道7" svg-name="熊猫频道7" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/192/831/202209211800_2200192831_H32_1080.webp" group-title="熊猫",熊猫频道7
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao07/1000/index.m3u8?msisdn=20251014180047cb9e13e67c174127aadf0e13c6a7cf39&mdspid=&spid=699004&netType=0&sid=2200192831&pid=2028597139&timestamp=20251014180047&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609169286&ParentNodeID=-99&assertID=2200192831&client_ip=106.13.250.89&SecurityKey=20251014180047&promotionId=&mvid=2200192831&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c1d0bd729ba6fae0aaca69fe9f637b1e&ddCalcu=ec11ebd17093b06df792e9fb9a66afcaaea0
#EXTINF:-1 svg-id="熊猫频道8" svg-name="熊猫频道8" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/192/881/202209211800_2200192881_H32_1080.webp" group-title="熊猫",熊猫频道8
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao08/1000/index.m3u8?msisdn=2025101418004819b6c9057d454778b548302d5ab2a6dc&mdspid=&spid=699004&netType=0&sid=2200192881&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609169287&ParentNodeID=-99&assertID=2200192881&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=2200192881&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=a989a785ffa0ce70eb0fdff040844c02&ddCalcu=2a09ec814994a08708450ffffad0fc0eb7e0
#EXTINF:-1 svg-id="熊猫频道9" svg-name="熊猫频道9" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/192/899/202209211800_2200192899_H32_1080.webp" group-title="熊猫",熊猫频道9
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao09/1000/index.m3u8?msisdn=2025101418004889d98f2bb0d3477988461b485617eebd&mdspid=&spid=699004&netType=0&sid=2200192899&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609169226&ParentNodeID=-99&assertID=2200192899&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=2200192899&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=d45f257e9a22c02add3067a4c5c770de&ddCalcu=edd4e0517f9720c557ce49aa72620c30d2da
#EXTINF:-1 svg-id="熊猫频道10" svg-name="熊猫频道10" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2200/192/937/202209211800_2200192937_H32_1080.webp" group-title="熊猫",熊猫频道10
http://gslbmgsplive.miguvideo.com/envivo_x/2018/SD/xiongmao10/1000/index.m3u8?msisdn=20251014180048e57118520c68463c9ab30964a59de642&mdspid=&spid=699004&netType=0&sid=2200192937&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=609169285&ParentNodeID=-99&assertID=2200192937&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=2200192937&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=e680d3e8aa61e899c420f65785d357b8&ddCalcu=8eb6e7815093d0d35e887a5a66f10e2849c9
#EXTINF:-1 svg-id="最强综艺趴" svg-name="最强综艺趴" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/315/654/202204010047_5101034202_H32_1080.webp" group-title="综艺",最强综艺趴
http://gslbmgsplive.miguvideo.com/migu/kailu/zuiqiangzongyi/51/20250514/index.m3u8?msisdn=20251014180048ecd5ad94f3304895bb165abfc72fa592&mdspid=&spid=699004&netType=0&sid=5500315654&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=629942228&ParentNodeID=-99&assertID=5500315654&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=5101034202&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=64a6b853d4007adef2ac302a73bb1c89&ddCalcu=9684eca1169bb0b83573ad240030c7aa2dfe
#EXTINF:-1 svg-id="嘉佳卡通" svg-name="嘉佳卡通" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/2206/172/388/202304101530_2206172388_H32_1080.webp" group-title="少儿",嘉佳卡通
http://gslbmgsplive.miguvideo.com/wd_r1/2018/nfmedia/jjkt/1000/index.m3u8?msisdn=20251014180048e22bed11b05c46429547e6b8b92006c3&mdspid=&spid=699054&netType=0&sid=2206172388&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=614952364&ParentNodeID=-99&assertID=2206172388&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=2206172388&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=20fca3168404ae13ac5a2814e35fa750&ddCalcu=0250e7f1ac4fa05331e648148024aa5ec1a3
#EXTINF:-1 svg-id="经典动画大集合" svg-name="经典动画大集合" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/315/652/202204010055_5101034205_H32_1080.webp" group-title="少儿",经典动画大集合
http://gslbmgsplive.miguvideo.com/migu/kailu/jingdiandonghua/51/20250514/index.m3u8?msisdn=2025101418004872b80de8214f48f6bb36cb80560761b4&mdspid=&spid=699004&netType=0&sid=5500315652&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=629942219&ParentNodeID=-99&assertID=5500315652&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=5101034205&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=c927cb21564f32aaba8652b256ad44d3&ddCalcu=3cd9e421479dc0ab625125b6245f6382aaba
#EXTINF:-1 svg-id="新动力量创一流" svg-name="新动力量创一流" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5910/019/523/202506060000_1749138941378_H32_1080.webp" group-title="纪实",新动力量创一流
http://gslbmgsplive.miguvideo.com/migu/virtuallive2/5900002409/51/20210706/index.m3u8?msisdn=20251014180048d5cb7313eb7a4eb3a64d6bdea131968d&mdspid=&spid=800033&netType=0&sid=5910019523&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=713589837&ParentNodeID=-99&assertID=5910019523&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=5900002419&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=90a3ffa014d500f94a132f0f16f789bb&ddCalcu=b9b0e9a18337f0ff6a10f104fd253010af49
#EXTINF:-1 svg-id="环球旅游" svg-name="环球旅游" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/v1/image/5910/022/200/202509251348_1758698362959_H32_1080.webp" group-title="纪实",环球旅游
http://gslbmgsplive.miguvideo.com/migu/kailu/hqly/51/20250915/index.m3u8?msisdn=20251014180048fe04b0efa5984396aa913193dc257f88&mdspid=&spid=600697&netType=0&sid=5910022200&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=958475356&ParentNodeID=-99&assertID=5910022200&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=5900006723&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=80798d882f088a7ed34d830957041e32&ddCalcu=2830ee711984800d7858920f3088d84a37de
#EXTINF:-1 svg-id="钱塘江" svg-name="钱塘江" tvg-logo="http://wapx.cmvideo.cn:8080/publish/poms/image/5500/613/479/202210281603_5102115888_H32_1080.webp" group-title="印象天下",钱塘江
http://gslbmgsplive.miguvideo.com/wd_r3/cnr/qiantangjiang/2000/index.m3u8?msisdn=20251014180048c58f865dd5864978acdce6136fe0d964&mdspid=&spid=800033&netType=0&sid=5500613479&pid=2028597139&timestamp=20251014180048&Channel_ID=0116_2600000900-99000-201600010010027&ProgramID=647370520&ParentNodeID=-99&assertID=5500613479&client_ip=106.13.250.89&SecurityKey=20251014180048&promotionId=&mvid=5102115888&mcid=500020&playurlVersion=WX-A1-8.9.2-RELEASE&userid=&jmhm=&videocodec=h264&bean=mgspad&tid=android&conFee=0&puData=8ffd98e995f7abaa86714e9267c075ef&ddCalcu=f8efe5f17d7090c87e692995ef471a7b6a8a

15
package-lock.json generated
View File

@@ -17,13 +17,13 @@
"license": "MIT"
},
"node_modules/axios": {
"version": "1.9.0",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.9.0.tgz",
"integrity": "sha512-re4CqKTJaURpzbLHtIi6XpDv20/CnpXOtjRY5/CU32L8gU8ek9UIivcfvSWvmKEngmVbrUtPpdDwWDWL7DNHvg==",
"version": "1.12.2",
"resolved": "https://registry.npmmirror.com/axios/-/axios-1.12.2.tgz",
"integrity": "sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
"form-data": "^4.0.0",
"form-data": "^4.0.4",
"proxy-from-env": "^1.1.0"
}
},
@@ -147,14 +147,15 @@
}
},
"node_modules/form-data": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
"integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
"version": "4.0.4",
"resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.4.tgz",
"integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==",
"license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"es-set-tostringtag": "^2.1.0",
"hasown": "^2.0.2",
"mime-types": "^2.1.12"
},
"engines": {

10620
playback.xml

File diff suppressed because it is too large Load Diff

74
updateData.js Normal file
View File

@@ -0,0 +1,74 @@
import { dataList } from "./utils/fetchList.js"
import { appendFile, appendFileSync, renameFileSync, writeFile } from "./utils/fileUtil.js"
import { updatePlaybackData } from "./utils/playback.js"
import { host, token, userId } from "./config.js"
import refreshToken from "./utils/refreshToken.js"
import { printBlue, printGreen, printMagenta, printRed, printYellow } from "./utils/colorOut.js"
async function update(hours) {
const date = new Date()
const start = date.getTime()
let interfacePath = ""
// 获取数据
const datas = await dataList()
if (!(hours % 24)) {
// 必须绝对路径
interfacePath = process.cwd() + '/interface.txt.bak'
// 创建写入空内容
writeFile(interfacePath, "")
}
if (!(hours % 24)) {
// 每24小时刷新token
if (!(userId == "" || token == "")) {
await refreshToken(userId, token) ? printGreen("token刷新成功") : printRed("token刷新失败")
}
appendFile(interfacePath, `#EXTM3U x-tvg-url="${host}/playback.xml" catchup="append" catchup-source="?playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`)
}
printYellow("正在更新...")
// 回放
const playbackFile = process.cwd() + '/playback.xml.bak'
writeFile(playbackFile,
`<?xml version="1.0" encoding="UTF-8"?>\n` +
`<tv generator-info-name="Tak" generator-info-url="${host}">\n`)
// 分类列表
for (let i = 0; i < datas.length; i++) {
if (!(hours % 24)) {
printBlue(`分类###:${datas[i].name}`)
}
const data = datas[i].dataList
// 写入节目
for (let j = 0; j < data.length; j++) {
printMagenta(`${data[j].name}`)
const res = await updatePlaybackData(data[j], playbackFile)
if (res) {
printGreen(` 节目单更新成功`)
} else {
printRed(` 节目单更新失败`)
}
if (!(hours % 24)) {
// 写入节目
appendFile(interfacePath, `#EXTINF:-1 svg-id="${data[j].name}" svg-name="${data[j].name}" tvg-logo="${data[j].pics.highResolutionH}" group-title="${datas[i].name}",${data[j].name}\n${host}/${data[j].pID}\n`)
printGreen(` 节目链接更新成功`)
}
}
}
appendFileSync(playbackFile, `</tv>\n`)
// 重命名
renameFileSync(playbackFile, playbackFile.replace(".bak", ""))
if (!(hours % 24)) {
renameFileSync(interfacePath, interfacePath.replace(".bak", ""))
}
printYellow("更新完成")
const end = Date.now()
printYellow(`本次耗时:${(end - start) / 1000}`)
}
export default update

View File

@@ -2,6 +2,7 @@ import axios from "axios";
import { getStringMD5 } from "./EncryUtils.js";
import { getddCalcuURL, getddCalcuURL720p, getEncryptURL } from "./ddCalcuURL.js";
import { changedDdCalcu } from "./datas.js";
import { printYellow } from "./colorOut.js";
function getSaltAndSign(md5) {
@@ -57,12 +58,11 @@ function replaceChars(url, pid, rateType) {
}
// 替换
let suffixSplit = suffix.split("")
for (let i = 0; i < index.length; i++) {
suffixSplit[index[i] - 1] = defaultChange[i]
suffix[index[i] - 1] = defaultChange[i]
}
return `${prefix}&ddCalcu=${suffixSplit.join("")}`
return `${prefix}&ddCalcu=${suffix}`
}
async function getAndroidVideoURL(userId, token, exports, pid, rateType) {
@@ -138,6 +138,7 @@ async function getAndroidVideoURL(userId, token, exports, pid, rateType) {
* @returns {} - url: 链接 rateType: 清晰度
*/
async function getAndroidURL(userId, token, pid, rateType) {
if (rateType <= 1) {
return {
url: "",
@@ -152,7 +153,13 @@ async function getAndroidURL(userId, token, pid, rateType) {
TerminalId: "android",
"X-UP-CLIENT-CHANNEL-ID": "2600037000-99000-200300220100002"
}
if (rateType != 2) {
// 广东卫视有些特殊
if (pid == "608831231") {
rateType = 2
}
if (rateType != 2 && userId != "" && token != "") {
headers.UserId = userId
headers.UserToken = token
}
@@ -163,12 +170,23 @@ async function getAndroidURL(userId, token, pid, rateType) {
// 请求
const baseURL = "https://play.miguvideo.com/playurl/v1/play/playurl"
const params = "?sign=" + result.sign + "&rateType=" + rateType
let params = "?sign=" + result.sign + "&rateType=" + rateType
+ "&contId=" + pid + "&timestamp=" + timestramp + "&salt=" + result.salt
const respData = await axios.get(baseURL + params, {
let respData = await axios.get(baseURL + params, {
headers: headers
}).then(r => r.data)
if (respData.rid == 'TIPS_NEED_MEMBER') {
printYellow("该账号没有会员 正在降低画质")
params = "?sign=" + result.sign + "&rateType=" + (rateType - 1)
+ "&contId=" + pid + "&timestamp=" + timestramp + "&salt=" + result.salt
respData = await axios.get(baseURL + params, {
headers: headers
}).then(r => r.data)
}
// console.dir(respData, { depth: null })
// console.log(respData)
const url = respData.body.urlInfo?.url
// console.log(rateType)
@@ -180,11 +198,12 @@ async function getAndroidURL(userId, token, pid, rateType) {
}
}
rateType = respData.body.urlInfo?.rateType
// 将URL加密
const resURL = getddCalcuURL(url, pid, "android", rateType)
rateType = respData.body.urlInfo?.rateType
// console.log("清晰度" + rateType)
return {
url: resURL,
rateType: parseInt(rateType)
@@ -239,12 +258,14 @@ async function getAndroidURL720p(pid) {
}
}
rateType = respData.body.urlInfo?.rateType
// 将URL加密
const resURL = getddCalcuURL720p(url, pid)
return {
url: resURL,
rateType: 3
rateType: parseInt(rateType)
}
}

28
utils/colorOut.js Normal file
View File

@@ -0,0 +1,28 @@
function printRed(msg) {
console.log('\x1B[31m%s\x1B[0m', msg)
}
function printGreen(msg) {
console.log('\x1B[32m%s\x1B[0m', msg)
}
function printYellow(msg) {
console.log('\x1B[33m%s\x1B[0m', msg)
}
function printBlue(msg) {
console.log('\x1B[34m%s\x1B[0m', msg)
}
function printMagenta(msg) {
console.log('\x1B[35m%s\x1B[0m', msg)
}
function printGrey(msg) {
console.log('\x1B[2m%s\x1B[0m', msg)
}
export {
printGreen, printBlue, printRed, printYellow, printMagenta, printGrey
}

View File

@@ -1,3 +1,4 @@
import { userId } from "../config.js"
import { getDateString } from "./time.js"
const list = {
@@ -6,7 +7,7 @@ const list = {
// 第11位字符
"keys": "yzwxcdabgh",
// 第5 8 14位字母对应下标0 1 3的字符
"words": ['z', 'y', '0', 'w'],
"words": ['', 'y', '0', 'w'],
// 第11位字符替换位置,从0开始
"thirdReplaceIndex": 1,
// 加密后链接后缀
@@ -14,7 +15,7 @@ const list = {
},
"android": {
"keys": "cdabyzwxkl",
"words": ['x', 'a', '0', 'a'],
"words": ['v', 'a', '0', 'a'],
"thirdReplaceIndex": 6,
"suffix": "&sv=10004&ct=android"
}
@@ -97,9 +98,14 @@ function getEncryptURL(exports, videoURL) {
/**
* h5端现已失效
* 获取ddCalcu
* 大致思路:把puData最后一个字符和第一个字符拼接然后拼接倒数第二个跟第二个一直循环当第1 2 3 4次(从0开始)循环时需要插入特殊标识字符
* 特殊字符:四个特殊字符位置是第5 8 11 14第5 8 14是根据平台确定的且各个节目都一样。第11位在h5上是根据节目ID第1位(从0开始,android是第6位)数字为下标的某字符串的值
* 在android标清画质还有区分第5位字符需要修改其他不变
* 大致思路:把puData最后一个字符和第一个字符拼接然后拼接倒数第二个跟第二个一直循环
* 当第1 2 3 4次(从0开始)循环时需要插入特殊标识字符
* 特殊字符:
* 都是根据一些数字字符串的某一位的值对应某数组的值确定的,形如数组[数字字符串[第几位]],具体根据第几位每个版本都不一样
* 第1次是根据userid确定的未登录时为固定字母
* 第2位是根据时间戳确定(需要yyyyMMddhhmmss格式)
* 第3根据节目id
* 第4是根据平台确定的
* @param {string} puData - 服务器返回的那个东东
* @param {string} programId - 节目ID
* @param {string} clientType - 平台类型 h5 android
@@ -123,6 +129,16 @@ function getddCalcu(puData, programId, clientType, rateType) {
if (rateType == null || rateType == undefined) {
return ""
}
// words第1位是根据userId的第7位(从0开始)数字对应keys里的字母生成的
// 不登录标清是默认v
const id = userId ? userId : process.env.USERID
if (id) {
const words1 = list.android.keys[id[7]]
list.android.words[0] = words1
list.h5.words[0] = words1
}
let keys = list[clientType].keys
let words = list[clientType].words
const thirdReplaceIndex = list[clientType].thirdReplaceIndex
@@ -130,10 +146,7 @@ function getddCalcu(puData, programId, clientType, rateType) {
if (clientType == "android" && rateType == "2") {
words[0] = "v"
}
puData = puData.split("");
keys = keys.split("")
const puDataLength = puData.length
programId = programId.split("")
let ddCalcu = []
for (let i = 0; i < puDataLength / 2; i++) {
@@ -144,7 +157,7 @@ function getddCalcu(puData, programId, clientType, rateType) {
ddCalcu.push(words[i - 1])
break;
case 2:
ddCalcu.push(words[i - 1])
ddCalcu.push(keys[parseInt(getDateString(new Date())[0])])
break;
case 3:
ddCalcu.push(keys[programId[thirdReplaceIndex]])
@@ -207,31 +220,26 @@ function getddCalcu720p(puData, programId) {
return ""
}
const words = ["e", "2", "", "0"]
const thirdReplaceIndex = 2
const keys = "0123456789"
puData = puData.split("");
const keys = "0123456789".split("")
const puDataLength = puData.length
programId = programId.split("")
let ddCalcu = []
for (let i = 0; i < puDataLength / 2; i++) {
for (let i = 0; i < puData.length / 2; i++) {
ddCalcu.push(puData[puDataLength - i - 1])
ddCalcu.push(puData[puData.length - i - 1])
ddCalcu.push(puData[i])
switch (i) {
case 1:
ddCalcu.push(words[i - 1])
// ddCalcu.push(token=="" ?"e":keys[] )
ddCalcu.push("e")
break;
case 2:
ddCalcu.push(keys[parseInt(getDateString(new Date())[6])])
break;
case 3:
ddCalcu.push(keys[programId[thirdReplaceIndex]])
ddCalcu.push(keys[programId[2]])
break;
case 4:
ddCalcu.push(words[i - 1])
ddCalcu.push("0")
break;
}
}

View File

@@ -1,4 +1,4 @@
import fs from "fs"
import fs from "node:fs"
function createFile(filePath) {
if (!fs.existsSync(filePath)) {
writeFile(filePath, "")
@@ -29,4 +29,16 @@ function appendFileSync(filePath, content) {
})
}
export { createFile, writeFile, appendFile, appendFileSync }
function readFileSync(filePath) {
return fs.readFileSync(filePath)
}
function renameFileSync(oldFilePath, newFilePath) {
fs.renameSync(oldFilePath, newFilePath, err => {
if (err) {
throw new Error(`文件重命名失败${oldFilePath} -> ${newFilePath}`)
}
})
}
export { createFile, writeFile, appendFile, appendFileSync, readFileSync, renameFileSync }

View File

@@ -11,4 +11,9 @@ function getDateTimeString(date) {
return `${getDateString(date)}${getTimeString(date)}`
}
export { getDateString, getTimeString, getDateTimeString }
function getDateTimeStr(date) {
return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, "0")}-${String(date.getDate()).padStart(2, "0")} ` +
`${String(date.getHours()).padStart(2, "0")}:${String(date.getMinutes()).padStart(2, "0")}:${String(date.getSeconds()).padStart(2, "0")}`
}
export { getDateString, getTimeString, getDateTimeString, getDateTimeStr }

View File

@@ -1,85 +0,0 @@
import fs from "fs"
import { delay } from "./utils/fetchList.js"
import { close_browser, get_browser, get_page, get_url } from "./utils/getURL.js"
import { channelName } from "./utils/datas.js"
async function fetchURL() {
// 必须绝对路径
let path = process.cwd() + '/interface.txt'
// 文件不存在则创建
if (!fs.existsSync(path)) {
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件创建失败")
}
console.log("文件创建成功")
})
}
await delay(1000)
// 备份文件
fs.copyFile(path, path + ".bak", error => {
if (error) {
throw error
}
console.log("文件备份成功")
})
await delay(1000)
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件清除失败")
}
console.log("文件清除成功")
})
// let datas = await dataList()
const datas = channelName
let browser = await get_browser(null)
let page = await get_page(browser)
for (let i = 0; i < datas.length; i++) {
console.log("正在写入分类###:" + datas[i].name)
// 写入分类数据
fs.appendFile(path, datas[i].name + ",#genre#\n", error => {
if (error) {
throw new Error("写入失败")
}
})
let data = datas[i].dataList
for (let j = 0; j < data.length; j++) {
console.log("正在准备节目")
let link
try {
let base_link
link, base_link = await get_url(page, data[j].pID)
if (!link && base_link.length >= 1) {
link = await fetch(base_link, {
method: "GET"
}).then(res => res.text())
}
if (!link) {
continue
}
} catch (error) {
await close_browser(browser)
throw new Error("链接获取失败")
}
console.log("正在写入节目:" + data[j].name)
// 写入分类数据
fs.appendFile(path, data[j].name + "," + link, error => {
if (error) {
throw new Error("写入失败")
}
})
}
}
await close_browser(browser)
}
fetchURL()

View File

@@ -1,139 +0,0 @@
import fs from "fs"
import { delay } from "./utils/fetchList.js"
import { initWasm } from "./utils/ddCalcuURL.js"
import getAndroidVideoURL from "./utils/androidURL.js"
import { channelName } from "./utils/datas.js"
import refreshToken from "./utils/refreshToken.js"
async function fetchURLByAndroid() {
const userId = process.env.USERID
const token = process.env.MIGU_TOKEN
const start = Date.now()
// 必须绝对路径
const path = process.cwd() + '/interface.txt'
// 文件不存在则创建
if (!fs.existsSync(path)) {
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件创建失败")
}
console.log("文件创建成功")
})
}
// aptv 必须绝对路径
const aptvPath = process.cwd() + '/interface-aptv.txt'
// 文件不存在则创建
if (!fs.existsSync(aptvPath)) {
fs.writeFile(aptvPath, "", error => {
if (error) {
throw new Error("文件创建失败")
}
console.log("文件创建成功")
})
}
// 备份文件
// fs.copyFile(path, path + ".bak", error => {
// if (error) {
// throw error
// }
// console.log("文件备份成功")
// })
// await delay(100)
// 清除文件内容
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件清除失败")
}
console.log("文件清除成功")
})
// 清除aptv文件内容
fs.writeFile(aptvPath, "", error => {
if (error) {
throw new Error("aptv文件清除失败")
}
console.log("aptv文件清除成功")
})
const rateDesc = ["", "", "标清", "高清", "蓝光"]
// 刷新token 0点刷新token
if (!new Date(start).getHours()) {
await refreshToken(userId, token) ? console.log("token刷新成功") : console.log("token刷新失败")
}
// 获取数据
// const datas = await dataList()
const datas = channelName
// 获取加密方法
const exports = await initWasm("https://m.miguvideo.com/mgs/player/prd/v_20250506111629_ddc2c612/dist/pickproof1000.wasm")
// console.log("{")
// aptv写入开头
fs.appendFile(aptvPath, `#EXTM3U\n`, error => {
if (error) {
throw new Error("写入失败")
}
})
// 分类列表
for (let i = 0; i < datas.length; i++) {
console.log(`正在写入分类###:${datas[i].cateName}`)
// 写入分类数据
fs.appendFile(path, `${datas[i].cateName},#genre#\n`, error => {
if (error) {
throw new Error("写入失败")
}
})
const data = datas[i].data
// console.log(`"${datas[i].name}": {`)
// 写入分类中的各个频道
for (let j = 0; j < data.length; j++) {
// console.log(`"${data[j].name}": ${data[j].pID},`)
// console.log("正在准备节目")
let rateType = 4
if (userId == null || userId == undefined || token == null || token == undefined) {
rateType = 2
}
// 写入分辨率
for (let z = 0; z < 3; z++) {
// console.log(data[j].pID)
const resObj = await getAndroidVideoURL(userId, token, exports, data[j].pid, rateType)
if (resObj.url == "") {
console.log(`${data[j].name}:节目调整,暂不提供服务`)
break
}
console.log(`正在写入节目:${data[j].name}$${rateDesc[resObj.rateType]}`)
// 写入分类数据
fs.appendFile(path, `${data[j].name},${resObj.url}$${rateDesc[resObj.rateType]}\n`, error => {
if (error) {
throw new Error("写入失败")
}
})
// 写入aptv分类数据
fs.appendFile(aptvPath, `#EXTINF:-1 svg-name="${data[j].name}" group-title="${datas[i].cateName}",${data[j].name}\n${resObj.url}\n`, error => {
if (error) {
throw new Error("写入失败")
}
})
// 依次降低画质
rateType = resObj.rateType - 1
// 返回为标清就结束
if (resObj.rateType == 2) {
break
}
}
}
await delay(100)
// console.log("},")
}
// console.log("}")
const end = Date.now()
console.log(`本次耗时:${(end - start) / 1000}`)
}
fetchURLByAndroid()

View File

@@ -1,70 +0,0 @@
import { dataList, getUrlInfo } from "./utils/fetchList.js"
import { getddCalcuURL } from "./utils/ddCalcuURL.js"
import { appendFile, writeFile } from "./utils/fileUtil.js"
import { updatePlaybackData } from "./utils/playback.js"
// h5端修改频繁
async function fetchURLByH5() {
const date = new Date()
const start = date.getTime()
// aptv 必须绝对路径
const path = process.cwd() + '/interface.txt'
// 创建写入空内容
writeFile(path, "")
// 所有数据
const datas = await dataList()
const hours = date.getHours()
let playbackFile = ""
// 0点
if (!hours) {
playbackFile = process.cwd() + '/playback.xml'
writeFile(playbackFile,
`<?xml version="1.0" encoding="UTF-8"?>\n` +
`<tv generator-info-name="Tak" generator-info-url="https://gitee.com/dream-deve/migu_video/raw/main/playback.xml">\n`)
}
// 写入开头
appendFile(path, `#EXTM3U x-tvg-url="https://gitee.com/dream-deve/migu_video/raw/main/playback.xml" catchup="append" catchup-source="&playbackbegin=\${(b)yyyyMMddHHmmss}&playbackend=\${(e)yyyyMMddHHmmss}"\n`)
// 写入分类
for (let i = 0; i < datas.length; i++) {
console.log(`分类###:${datas[i].name}`)
const data = datas[i].dataList
// 遍历节目
for (let j = 0; j < data.length; j++) {
if (!hours) {
const res = await updatePlaybackData(data[j], playbackFile)
if (!res) {
console.log(`playback.xml更新失败`)
}
}
// 获取播放链接
const url = await getUrlInfo(data[j].pID)
if (url == "") {
console.log(`${data[j].name}:节目调整,暂不提供服务`)
continue
}
// 加密链接
// const link = getEncryptURL(exports, url)
const link = getddCalcuURL(url, data[j].pID, "h5", "999")
console.log(`正在写入节目:${data[j].name}`)
// 写入节目
appendFile(path, `#EXTINF:-1 svg-id="${data[j].name}" svg-name="${data[j].name}" tvg-logo="${data[j].pics.highResolutionH}" group-title="${datas[i].name}",${data[j].name}\n${link}\n`)
}
}
if (!hours) {
appendFile(playbackFile, `</tv>\n`)
}
const end = Date.now()
console.log(`本次耗时:${(end - start) / 1000}`)
}
fetchURLByH5()

View File

@@ -1,81 +0,0 @@
import fs from "fs"
import { dataList, delay, getUrlInfo } from "./utils/fetchList.js"
import { getEncryptURL, initWasm } from "./utils/ddCalcuURL.js"
async function fetchURLByWasm() {
// 必须绝对路径
let path = process.cwd() + '/interface.txt'
// 文件不存在则创建
if (!fs.existsSync(path)) {
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件创建失败")
}
console.log("文件创建成功")
})
}
// 等待文件创建
await delay(500)
// 备份文件
fs.copyFile(path, path + ".bak", error => {
if (error) {
throw error
}
console.log("文件备份成功")
})
// 等待文件备份
await delay(500)
fs.writeFile(path, "", error => {
if (error) {
throw new Error("文件清除失败")
}
console.log("文件清除成功")
})
// 所有数据
let datas = await dataList()
// const datas = channelName
// 获取加密方法
const exports = await initWasm("https://m.miguvideo.com/mgs/player/prd/v_20250506111629_ddc2c612/dist/pickproof1000.wasm")
// 写入分类
for (let i = 0; i < datas.length; i++) {
console.log("正在写入分类###:" + datas[i].name)
// 写入分类数据
fs.appendFile(path, datas[i].name + ",#genre#\n", error => {
if (error) {
throw new Error("写入失败")
}
})
let data = datas[i].dataList
// 写入分类中的节目
for (let j = 0; j < data.length; j++) {
console.log("正在准备节目")
let link
// console.log(data[j].pID)
// 获取播放链接
let url = await getUrlInfo(data[j].pID)
if (url == "") {
console.log(data[j].name + ":节目调整,暂不提供服务")
continue
}
// 加密链接
link = getEncryptURL(exports, url)
if (!link) {
continue
}
console.log("正在写入节目:" + data[j].name)
// 写入分类数据
fs.appendFile(path, data[j].name + "," + link + "\n", error => {
if (error) {
throw new Error("写入失败")
}
})
}
}
}
fetchURLByWasm()