|
本帖最后由 gsls200808 于 2024-3-25 18:12 编辑
目前免费试看,有部分卫视cetv124
token失效的可以上登录页面
https://h5.nty.tv189.com/cgq/login/account
重新抓取
nodejs源码如下
const request = require("sync-request");
const MapExpire = require('map-expire/MapExpire');
// token获取后15天过期 抓取c_t_id=的值
const token = "eb7c58af3dc221296f92705db9cabbcf"
// 天翼超高清直播流获取
class TycgqtvClient {
async get(vodId) {
var res = vodId;
//频道map
let channelMap = new Map([
//CCTV6电影频道
['cctv6', 'C8000000000000000001703664302519'],
//四川卫视
['scws', 'C8000000000000000001548997408538'],
//广东卫视
['gdws', 'C8000000000000000001384940178600'],
//河南卫视
['henws', 'C8000000000000000001698916303269'],
//重庆卫视
['cqws', 'C8000000000000000001549082026989'],
//辽宁卫视
['lnws', 'C8000000000000000001548311404330'],
//江西卫视
['jxws', 'C8000000000000000001549003036408'],
//山西卫视
['sxws', 'C8000000000000000001549002827823'],
//陕西卫视
['saaxws', 'C8000000000000000001549002827823'],
//吉林卫视
['jlws', 'C8000000000000000001549002603906'],
//湖北卫视
['hbws', 'C8000000000000000001631586047661'],
//东南卫视
['dnws', 'C8000000000000000001548999360374'],
//贵州卫视
['gzws', 'C8000000000000000001549002153536'],
//广西卫视
['gxws', 'C8000000000000000001549002105520'],
//云南卫视
['ynws', 'C8000000000000000001549002977767'],
//甘肃卫视
['gsws', 'C8000000000000000001548999871513'],
//内蒙古卫视
['nmgws', 'C8000000000000000001549002645323'],
//兵团卫视
['btws', 'C8000000000000000001698916970405'],
//青海卫视
['qhws', 'C8000000000000000001549002933424'],
//新疆卫视
['xjws', 'C8000000000000000001549002915776'],
//西藏卫视
['xzws', 'C8000000000000000001549003208092'],
//宁夏卫视
['nxws', 'C8000000000000000001549002755065'],
//海南卫视
['hanws', 'C8000000000000000001698917316657'],
//CETV1
['cetv1', 'C8000000000000000001685674939564'],
//CETV2
['cetv2', 'C8000000000000000001685675010193'],
//CETV4
['cetv4', 'C8000000000000000001685675077817'],
//中国交通
['zgjt', 'C8000000000000000001685582159524'],
//杭州生活 没有开始结束时间
['hzsh', 'C8000000000000000001679360839297']
]);
if (channelMap.has(vodId) == false) {
vodId = "scws";
}
let channelId = channelMap.get(vodId);
console.log("channelId=",channelId);
//电视列表
let cstime = "";
let cetime = ""
var resptvlist = request('GET', 'https://h5.nty.tv189.com/bff/wh/tactic/tvlives',
{
headers: {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'none',
'Sec-Fetch-User': '?1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"'
},
encoding: 'utf8'
});
if (resptvlist && resptvlist.statusCode == 200) {
var body = resptvlist.getBody().toString();
console.log(body);
var jsonbody = JSON.parse(body)
console.log(jsonbody)
var info = jsonbody.info;
//info 是个数组
for (let i = 0; i < info.length; i++) {
var data = info.data;
//data是个数组
for (let j = 0; j <data.length ; j++) {
var liveId = data[j].liveId;
var title = data[j].title;
console.log("666")
console.log(data[j])
var starttime = "";
var endtime ="";
if(data[j].hasOwnProperty("curProgram")){
starttime = data[j].curProgram.starttime;
endtime = data[j].curProgram.endtime;
}
if(channelId == liveId){
console.log("找到liveid",liveId)
cstime=starttime.replace(" ","+");
cetime=endtime.replace(" ","+");
break;
}
}
}
//console.log(res)
}
//https://h5.nty.tv189.com/bff/apis/user/authPlayLive?contentId=C8000000000000000001685675077817&startTime=2024-01-14+19:30:00&endTime=2024-01-14+20:30:00
let liveurl = "https://h5.nty.tv189.com/bff/apis/user/authPlayLive?contentId="+channelId+"&startTime="+cstime+"&endTime="+cetime;
let headers ={
"Cookie":"c_t_id="+token,
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
}
var resp = request('GET', liveurl,
{
headers: headers,
encoding: 'utf8'
});
console.log(resp.url);
//console.log(header);
if (resp && resp.statusCode == 200) {
var body = resp.getBody().toString();
console.log(body);
var jsonbody = JSON.parse(body)
res = jsonbody.info.playUrl.toString();
console.log(res)
}
// 将查找到的数据返回给
return res;
}
}
module.exports = {TycgqtvClient: TycgqtvClient};
|
评分
-
查看全部评分
|