赣橙TV伴侣是江西赣橙TV开发的电视大屏互动微信小程序,里面提供了央卫/部分数字及江西本地频道最近几天的EPG数据。
1. 登录
1.1 链接构成
https://iptv.jxntv.cn/userservice/wechat/user/userLogin1.2 请求头
与上次抓包对比得知,userToken貌似是固定的,登录这步应该不用做。后面请求都要添加请求头userToken。
{
"Host": "iptv.jxntv.cn",
"Connection": "keep-alive",
"Content-Length": "51",
"projectCode": "GANTV",
"xweb_xhr": "1",
"userToken": "f8cc6b4f-0328-4bfc-9af8-f7a0e20b221b",
"isp": "CTC",
"spid": "12",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf2541c37) XWEB/25364",
"clientType": "1",
"Content-Type": "application/json",
"Accept": "*/*",
"Sec-Fetch-Site": "cross-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://servicewechat.com/wxad2b62f021fc21f5/54/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9"
}1.3 请求体
{"loginVoucher":"0a3MwRGa14PnpM0J8EFa1Kurde1MwRG2"}1.4 响应体
{
"code": 1004,
"msg": "登录成功",
"data": {
"openid": "o5zQC5L5J5ot-7-ZKmPO7l7W3Jz8",
"userId": 325100,
"userToken": "f8cc6b4f-0328-4bfc-9af8-f7a0e20b221b"
}
}2. 频道分类
2.1 链接构成
https://iptv.jxntv.cn/contentservice/channel/getChannelCategoryList
2.2 请求头
{
"Host": "iptv.jxntv.cn",
"Connection": "keep-alive",
"projectCode": "GANTV",
"xweb_xhr": "1",
"userToken": "f8cc6b4f-0328-4bfc-9af8-f7a0e20b221b",
"isp": "CTC",
"spid": "12",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf2541c37) XWEB/25364",
"clientType": "1",
"Content-Type": "application/json",
"Accept": "*/*",
"Sec-Fetch-Site": "cross-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://servicewechat.com/wxad2b62f021fc21f5/54/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9"
}2.3 响应体
{
"code": 1000,
"msg": "成功",
"data": [
{
"id": 72746,
"code": "f5b8e163836e4f1fbb104368daf4570c",
"name": "全部",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
},
{
"id": 72752,
"code": "1c7f64ad200b487e8831082de26c5685",
"name": "高清",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
},
{
"id": 72754,
"code": "7b88b71856224fbc9ce17f1617a430ce",
"name": "本地",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
},
{
"id": 72748,
"code": "bff0d29335a04ce68f39fab42d0abe80",
"name": "央视",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
},
{
"id": 72750,
"code": "bf92f11fe75540bca6d9feaf3cd52af7",
"name": "卫视",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
},
{
"id": 8000490,
"code": "96186ce9c8404b83b389a8e2ac6ba544",
"name": "其它",
"description": "",
"contentList": null,
"renderSize": 1,
"renderTemplateCode": "widget9",
"isBaseCategory": "NO",
"categoryKind": "",
"targetType": "h5",
"targetUrl": "",
"isDisplayName": "YES",
"isDisplayMore": "NO",
"spid": 12,
"isUseTemplate": "NO",
"isDisplayTitle": "YES",
"isDisplaySubtitle": "YES"
}
]
}3. 频道表
3.1 链接构成
可变参数categoryCode为前面获取频道分类的code,pageSize为返回的频道个数,pageNumber在pageSize为10的前提下,值在1-12区间。
https://iptv.jxntv.cn/contentservice/channel/getChannelListByCategoryCode?categoryCode=f5b8e163836e4f1fbb104368daf4570c&pageNumber=1&pageSize=10&isWithExtInfo=23.2 请求头
{
"Host": "iptv.jxntv.cn",
"Connection": "keep-alive",
"projectCode": "GANTV",
"xweb_xhr": "1",
"userToken": "f8cc6b4f-0328-4bfc-9af8-f7a0e20b221b",
"isp": "CTC",
"spid": "12",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf2541c37) XWEB/25364",
"clientType": "1",
"Content-Type": "application/json",
"Accept": "*/*",
"Sec-Fetch-Site": "cross-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://servicewechat.com/wxad2b62f021fc21f5/54/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9"
}3.3 响应体
{
"code": 1000,
"msg": "成功",
"data": {
"pageSize": 10,
"pageNumber": 1,
"totalCount": 113,
"result": [
{
"id": 6,
"code": "Umai:CHAN/111128@BESTV.SMG.SMG",
"channelNumber": "1",
"name": "CCTV1-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/1.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "20000130"
},
{
"id": 8,
"code": "Umai:CHAN/2671517@BESTV.STA.SMG",
"channelNumber": "2",
"name": "CCTV2-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/2.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "59814583"
},
{
"id": 10,
"code": "Umai:CHAN/2871110@BESTV.STA.SMG",
"channelNumber": "3",
"name": "CCTV3-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/3.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "65406411"
},
{
"id": 12,
"code": "Umai:CHAN/2671518@BESTV.STA.SMG",
"channelNumber": "4",
"name": "CCTV4-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/4.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "59814683"
},
{
"id": 14,
"code": "Umai:CHAN/2871111@BESTV.STA.SMG",
"channelNumber": "5",
"name": "CCTV5-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/5.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "65396400"
},
{
"id": 16,
"code": "Umai:CHAN/2871112@BESTV.STA.SMG",
"channelNumber": "6",
"name": "CCTV6-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/6.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "65396492"
},
{
"id": 18,
"code": "Umai:CHAN/2671519@BESTV.STA.SMG",
"channelNumber": "7",
"name": "CCTV7-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/7.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "59814692"
},
{
"id": 20,
"code": "Umai:CHAN/2871113@BESTV.STA.SMG",
"channelNumber": "8",
"name": "CCTV8-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/8.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "65406605"
},
{
"id": 22,
"code": "Umai:CHAN/2671520@BESTV.STA.SMG",
"channelNumber": "9",
"name": "CCTV9-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/9.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "59814698"
},
{
"id": 24,
"code": "Umai:CHAN/3949784@BESTV.SMG.SMG",
"channelNumber": "10",
"name": "CCTV10-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/10.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": null,
"channelCtcCode": "51813371"
}
]
}
}4. 频道的单日节目单
4.1 链接构成
示例为江西都市频道,对应的channelCode为Umai%3ACHAN%2F4222494%40BESTV.STA.SMG,date为单日日期,其它频道同理。
https://iptv.jxntv.cn/contentservice/channel/getChannelScheduleListByChannelCode?channelCode=Umai%3ACHAN%2F4222494%40BESTV.STA.SMG&date=20260914&pageNumber=1&pageSize=1004.2 请求头
{
"Host": "iptv.jxntv.cn",
"Connection": "keep-alive",
"projectCode": "GANTV",
"xweb_xhr": "1",
"userToken": "f8cc6b4f-0328-4bfc-9af8-f7a0e20b221b",
"isp": "CTC",
"spid": "12",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) UnifiedPCWindowsWechat(0xf2541c37) XWEB/25364",
"clientType": "1",
"Content-Type": "application/json",
"Accept": "*/*",
"Sec-Fetch-Site": "cross-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://servicewechat.com/wxad2b62f021fc21f5/54/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9"
}4.3 响应体
请求成功标志:msg的值为成功。
有无节目单数据标志:data->schedules->totalCount是否为0。
结构组成:data->schedules->result下是单日的数组。
节目单数组的startDate表示日期,startTime表示开始时间(H:i),name表示节目标题,没有结束时间/持续时间数据。
{
"code": 1000,
"msg": "成功",
"data": {
"channel": {
"id": 42,
"code": "Umai:CHAN/4222494@BESTV.STA.SMG",
"channelNumber": "20",
"name": "江西都市频道-高清",
"poster": "",
"logo": "https://iptv.jxntv.cn//POSTER/logo/dx_logo/20.png?t=12345678",
"playing": null,
"toPlay": null,
"playUrl": null,
"favoriteStatus": "tofavorite",
"channelCtcCode": "94448630"
},
"schedules": {
"pageSize": 100,
"pageNumber": 1,
"totalCount": 16,
"result": [
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244900113",
"name": "通宵剧场",
"startDate": "20260914",
"startTime": "00:50",
"playStatus": "played",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244904226",
"name": "寻味江西",
"startDate": "20260914",
"startTime": "06:00",
"playStatus": "played",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244908339",
"name": "都市现场",
"startDate": "20260914",
"startTime": "07:00",
"playStatus": "played",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244912552",
"name": "经典剧场",
"startDate": "20260914",
"startTime": "08:00",
"playStatus": "played",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244916665",
"name": "都市现场",
"startDate": "20260914",
"startTime": "11:40",
"playStatus": "playing",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244920778",
"name": "谁是赢家",
"startDate": "20260914",
"startTime": "13:00",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "211000010000000726091402244924891",
"name": "都市情缘",
"startDate": "20260914",
"startTime": "14:00",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449289104",
"name": "热播剧场",
"startDate": "20260914",
"startTime": "14:30",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449330117",
"name": "快乐生活一点通",
"startDate": "20260914",
"startTime": "17:00",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449371130",
"name": "地宝当家",
"startDate": "20260914",
"startTime": "17:30",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449412143",
"name": "都市现场",
"startDate": "20260914",
"startTime": "18:00",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449453156",
"name": "都市情缘",
"startDate": "20260914",
"startTime": "19:30",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449494169",
"name": "晚间800",
"startDate": "20260914",
"startTime": "20:00",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449535182",
"name": "都市剧场",
"startDate": "20260914",
"startTime": "20:20",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449576195",
"name": "都市剧场",
"startDate": "20260914",
"startTime": "21:10",
"playStatus": "toplay",
"appointStatus": "toappoint"
},
{
"channelCode": "Umai:CHAN/4222494@BESTV.STA.SMG",
"code": "2110000100000007260914022449617208",
"name": "都市剧场",
"startDate": "20260914",
"startTime": "21:55",
"playStatus": "toplay",
"appointStatus": "toappoint"
}
]
}
}
} 


































































































































