找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 407|回复: 7

4K超高清酷9JS脚本实现播放

[复制链接]

3

主题

76

回帖

234

积分

中级会员

积分
234
发表于 2025-10-3 20:56:46 来自手机 | 显示全部楼层 |阅读模式
经过几个小时反复修改代码测试终于搞定4K频道流畅观看

//********ku9 js使用示例(适合1.3.4及以上版本使用)********//

//识别名称main
function main( item ) {

    //获取地址和参数
    const url = item.url;
    var id = ku9.getQuery( url, "id" ) || "btv4k";

    // 频道映射表
    var channelMap = {
        'btv4k': 91417,
        'sh4k': 96050,
        'js4k': 95925,
        'zj4k': 96039,
        'sd4k': 95975,
        'hn4k': 96038,
        'gd4k': 93733,
        'sc4k': 95965,
        'sz4k': 93735,
    };

    // 如果是list请求,返回频道列表
    if (id == "list") {
        var baseUrl = url.split('?')[0];
        var content = "#EXTM3U\n";
        for (var cid in channelMap) {
            var channelName = {
                'btv4k': '北京卫视4K',
                'sh4k': '上海卫视4K',
                'js4k': '江苏卫视4K',
                'zj4k': '浙江卫视4K',
                'sd4k': '山东卫视4K',
                'hn4k': '湖南卫视4K',
                'gd4k': '广东卫视4K',
                'sc4k': '四川卫视4K',
                'sz4k': '深圳卫视4K'
            }[cid];
            content += "#EXTINF:-1," + channelName + "\n";
            content += baseUrl + "?id=" + cid + "\n";
        }
        return { m3u8: content };
    }

    // 生成签名函数
    function makeSign(url, params, timeMillis, key) {
        var payload = {url: url, params: params, time: timeMillis};
        var json = JSON.stringify(payload);
        // 使用AES-256-ECB加密
        var encrypted = ku9.opensslEncrypt(json, "AES-256-ECB", key, 0, "");
        return encrypted.replace(/[\r\n]/g, '');
    }

    var key = '01234567890123450123456789012345';
    var url1 = 'https://api.chinaaudiovisual.cn/web/user/getVisitor';
    var url2 = 'https://api.chinaaudiovisual.cn/column/getColumnAllList';

    // 获取token(使用缓存)
    var token = ku9.getCache('visitor_token');
    if (!token) {
        var time1 = Date.now();
        var sign1 = makeSign(url1, '', time1, key);
        var headers1 = {
            'Content-Type': 'application/json',
            'headers': '1.1.3',
            'sign': sign1
        };
        
        var res1 = ku9.request(url1, "POST", headers1, "", true);
        if (res1.code !== 200) {
            return { url: "" };
        }
        
        var data1;
        try {
            data1 = JSON.parse(res1.body);
        } catch (e) {
            return { url: "" };
        }
        
        if (!data1.success || !data1.data || !data1.data.token) {
            return { url: "" };
        }
        
        token = data1.data.token;
        ku9.setCache('visitor_token', token, 86400000);
    }

    // 获取频道列表(使用缓存)
    var cacheData = ku9.getCache('column_all_list_33');
    var dataArr;
    if (cacheData) {
        try {
            dataArr = JSON.parse(cacheData);
        } catch (e) {
            dataArr = null;
        }
    }
   
    if (!dataArr) {
        var columnId = 350;
        var cityId = 0;
        var provinceId = 0;
        var version = "1.1.4";
        var params = "cityId=" + cityId + "&columnId=" + columnId + "&provinceId=" + provinceId + "&token=" + encodeURIComponent(token) + "&version=" + version;
        var time2 = Date.now();
        var sign2 = makeSign(url2, params, time2, key);
        var headers2 = {
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': 'okhttp/3.11.0',
            'sign': sign2
        };
        
        var res2 = ku9.request(url2, "POST", headers2, params, true);
        if (res2.code !== 200) {
            return { url: "" };
        }
        
        try {
            dataArr = JSON.parse(res2.body);
        } catch (e) {
            return { url: "" };
        }
        
        if (!dataArr.success) {
            return { url: "" };
        }
        
        ku9.setCache('column_all_list_33', JSON.stringify(dataArr), 600000);
    }

    // 查找播放地址
    var targetId = channelMap[id];
    var playUrl = null;
   
    if (dataArr && dataArr.data && Array.isArray(dataArr.data)) {
        for (var i = 0; i < dataArr.data.length; i++) {
            var itemData = dataArr.data[i];
            if (itemData.mediaAsset && itemData.mediaAsset.id === targetId) {
                playUrl = itemData.mediaAsset.url;
                break;
            }
        }
    }

    // 直接返回播放地址,不进行任何切片代理
    if (playUrl) {
        return {
            url: playUrl,
            headers: {
                'User-Agent': 'aliplayer',
                'Referer': 'https://api.chinaaudiovisual.cn/'
            }
        };
    }
   
    return { url: "" };
}



输出格式
北京卫视4k,http://A/ku9/js/脚本名字.js?id=btv4k
四川卫视4k,http://A/ku9/js/脚本名字.js?id=sc4k
江苏卫视4k,http://A/ku9/js/脚本名字.js?id=js4k



1

主题

77

回帖

168

积分

注册会员

积分
168
发表于 2025-10-3 22:17:41 | 显示全部楼层
感谢大佬分享

0

主题

53

回帖

128

积分

注册会员

积分
128
发表于 2025-10-4 04:51:12 | 显示全部楼层
不错

12

主题

256

回帖

1487

积分

金牌会员

积分
1487
发表于 2025-10-4 07:11:37 | 显示全部楼层
感谢大佬分享

0

主题

51

回帖

517

积分

高级会员

积分
517
发表于 2025-10-4 20:24:04 | 显示全部楼层
支持你~~~~~~~~~~~~~

1

主题

95

回帖

438

积分

中级会员

积分
438
发表于 2025-10-7 20:10:34 来自手机 | 显示全部楼层
大佬能不能把migu480的转成js

0

主题

33

回帖

72

积分

注册会员

积分
72
发表于 2025-10-10 23:02:34 | 显示全部楼层
测试了不能用了

0

主题

35

回帖

248

积分

中级会员

积分
248
发表于 9 小时前 | 显示全部楼层
谢谢分享!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 吾看

GMT+8, 2025-10-20 20:15 Powered by Discuz! X3.5

本站以兴趣爱好为宗旨,非经营性质,不以任何形式收取任何费用,请勿相信一切有偿信息。 免责声明:本站上述内容来自网络,不得用于商业或非法用途,您必须在下载后24小时内,从设备中删除,否则后果自负。如内容侵犯您的版权、著作权,请联系我,第一时间处理。