|
本帖最后由 binyang008 于 2025-10-14 16:53 编辑
楼上的好快!我让deepseek写了一个js的版本
在我手机上已经测试过了
- // 识别名称main
- function main(item) {
- try {
- // 获取地址
- const url = item.url || "";
-
- // 获取参数
- var id = ku9.getQuery(url, "id") || "nbtv1";
-
- // 频道映射
- var ids = {
- "nbtv1": "nbtv1_md",
- "nbtv2": "nbtv2_md",
- "nbtv3": "nbtv3_md",
- "nbtv4": "nbtv4_md",
-
- };
-
- // 检查频道是否存在
- if (!ids[id]) {
- var supportedIds = Object.keys(ids).join(", ");
- return { error: "不支持的频道ID: " + id + ",支持的频道有: " + supportedIds };
- }
-
- // 获取频道代码
- var channelCode = ids[id];
-
- // 原始m3u8地址
- var originalUrl = "https://liveplay8.nbtv.cn/live/" + channelCode + ".m3u8";
-
- // 加密API配置
- var encryptApiUrl = "https://em.chinamcloud.com/player/encryptUrl";
-
- // 请求载荷 - 这里使用了示例中的加密参数
- var requestBody = JSON.stringify({
- "url": originalUrl,
- "playType": "live",
- "type": "cdn",
- "cdnEncrypt": "d058c6c09b8cec3e4c8391557ac977714a35da41c4cfd40c75d6b4fdb37750b4b2c0a29627ba300d6774ac3a8586418c89219948abbfe44bdc750f371080d2cef6258eea31c936cb6664e53190f84d38169d42acba78a6c97785a7bea04b8b0617ceee30edf6d8d1f63b6385efe4dc1ea8fd73bd274f269c790b98884292f92119a270ecf9246efa53cde5f15919714026a4b666678f537150f8bd5e29314b2c9c6353028136a5e729e705897efabb28c306b028c9b9df2e0d3afb3d164d4b495832fd03ea833391ebac381dd3e62005e5915eaacfbaa8b91ed772dadd365ec8c09943540c03f76f5f870229edb8eb7fced4044b3e155f04e42a1342e84866cecc52f28bc3988e652f90baea4952e6f991d03e2941485974c000850d1cd89fbbefec1f12ea2ea276abd4c4a600d0c07086f9d05f63e91b3990ca62fa1c6e82a7",
- "cdnIndex": 0
- });
-
- // 发送POST请求获取加密播放地址
- var res = ku9.request(encryptApiUrl, "POST", {
- "Content-Type": "application/json",
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
- "Referer": "https://www.ncmc.nbtv.cn/"
- }, requestBody, true);
-
- // 检查响应
- if (res.code !== 200) {
- return { error: "获取加密播放地址失败,状态码: " + res.code };
- }
-
- if (!ku9.isJsonObject(res.body)) {
- return { error: "API返回非JSON数据: " + res.body.substring(0, 100) + "..." };
- }
-
- // 解析JSON数据
- var data = JSON.parse(res.body);
- var playUrl = "";
-
- // 检查响应状态
- if (data.code !== "0000") {
- return { error: "加密API返回错误: " + (data.desc || "未知错误") };
- }
-
- // 提取播放URL
- if (data && data.url) {
- playUrl = data.url;
- }
-
- // 检查是否获取到有效的URL
- if (!playUrl) {
- return { error: "未找到有效的播放地址,API响应: " + JSON.stringify(data) };
- }
-
- // 返回播放地址
- return {
- url: playUrl,
- headers: {
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
- "Referer": "https://www.ncmc.nbtv.cn/"
- }
- };
-
- } catch (e) {
- return { error: "脚本执行错误: " + e.message };
- }
- }
复制代码
|
|