跳到主要内容

nowtv mpd 获取问题已解决/话题已结束讨论

  • 新帖
  • 热门
  • 精选

nowtv mpd 获取 问题已解决/话题已结束讨论

ShSuperyun 1y ago in 技术 · 1 views
<?php

// 从 URL 查询字符串获取频道号
$channelNo = isset($_GET['ch']) ? $_GET['ch'] : '332'; // 如果没有提供,则默认使用 332

// 初始化 cURL 执行第一次请求
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => "https://nowplayer.now.com/liveplayer/play/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_POSTFIELDS => "channelNo=" . $channelNo, // 使用动态的频道号
    CURLOPT_HTTPHEADER => [
        "Cookie: NOW_SESSION=这里填你的cookie",
        "Referer: https://nowplayer.now.com/liveplayer/" . $channelNo, // 动态的 referer
        "User-Agent: ua也需与请求ua一致",
    ]
]);

// 执行第一次 cURL 请求并获取响应
$response = curl_exec($curl);

// 获取 HTTP 状态码
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

// 关闭 cURL
curl_close($curl);

// 检查 cURL 请求是否成功
if ($response === false) {
    echo "无法从服务器获取响应。";
    exit;
}

// 检查 HTTP 响应状态码
if ($httpCode !== 200) {
    echo "错误:无法获取视频流,HTTP 状态码:" . $httpCode;
    exit;
}

// 解析 JSON 响应
$data = json_decode($response, true);

// 检查 'asset' 字段是否存在并提取 URL
if (isset($data['asset'][0])) {
    $assetUrl = $data['asset'][0]; // 这是第二次请求的目标链接

    // 执行第三次请求(通过第二次请求的 assetUrl)
    $curl = curl_init();

    curl_setopt_array($curl, [
        CURLOPT_URL => $assetUrl, // 使用第二次请求的链接
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => [
            "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0"
        ]
    ]);

    // 执行第三次请求并获取响应
    $thirdResponse = curl_exec($curl);

    // 获取第三次请求的 HTTP 状态码
    $thirdHttpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

    // 获取第三次请求的最终 URL(即重定向后的链接)
    $finalUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);

    // 关闭 cURL
    curl_close($curl);

    // 检查第三次请求是否成功
    if ($thirdResponse === false) {
        echo "无法从第三次请求获取响应。";
        exit;
    }

    // 检查 HTTP 响应状态码
    if ($thirdHttpCode !== 200) {
        echo "错误:第三次请求失败,HTTP 状态码:" . $thirdHttpCode;
        exit;
    }

    // 重定向到第三次请求的最终 URL
    header("Location: " . $finalUrl);
    exit; // 结束脚本执行,确保重定向生效
} else {
    echo "响应中未找到 Asset URL。";
}

?>

http://ip/now.php?ch=频道号 此脚本要求香港ip 最好能解锁now tv的 免费频道有 330 331 332 333 366 367 540 541 542 543 545 548 630 099 096 561 321 328 552 325 553 329 付费频道也可以 cookie 可用 https://www.editthiscookie.com/ 插件抓 96 用以下脚本 无需cookie

<?php
// 生成随机的 UUID 或 16 进制的随机字符串
function generateRandomString($length = 16) {
    return bin2hex(random_bytes($length / 2)); // 生成指定长度的 16 进制字符串
}

// 生成随机的 cookie 和 deviceId
$randomString = generateRandomString(); // 生成随机的字符串
$cookie = $randomString;
$deviceId = $randomString;

// 发送 POST 请求的 URL
$url = 'https://api.viu.now.com/p8/3/getLiveURL';

// 要发送的 POST 数据(JSON 格式)
$data = array(
    "callerReferenceNo" => "20241111101911",
    "channelno" => "096",
    "contentId" => "096",
    "contentType" => "Channel",
    "mode" => "prod",
    "PIN" => "password",
    "cookie" => $cookie, // 使用生成的随机 cookie
    "deviceId" => $deviceId, // 使用生成的随机 deviceId
    "deviceType" => "ANDRIOD_WEB",
    "format" => "HLS"
);

// 将数据数组转换为 JSON 字符串
$json_data = json_encode($data);

// 初始化 cURL 会话
$ch = curl_init($url);

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应作为字符串
curl_setopt($ch, CURLOPT_POST, true); // 设置请求类型为 POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data); // 设置 POST 数据(JSON 格式)
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: */*',
    'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
    'Cache-Control: no-cache',
    'Content-Type: text/plain',
    'Origin: https://viu.tv',
    'Pragma: no-cache',
    'Priority: u=1, i',
    'Referer: https://viu.tv/',
    'Sec-CH-UA: "Chromium";v="130", "Microsoft Edge";v="130", "Not?A_Brand";v="99"',
    'Sec-CH-UA-Mobile: ?0',
    'Sec-CH-UA-Platform: "macOS"',
    'Sec-Fetch-Dest: empty',
    'Sec-Fetch-Mode: cors',
    'Sec-Fetch-Site: cross-site',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0'
));

// 执行 cURL 请求并存储响应
$response = curl_exec($ch);

// 检查是否有 cURL 错误
if(curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
} else {
    // 解析 JSON 响应
    $data = json_decode($response, true);

    // 获取视频流的 manifest URL
    $manifest_url = $data['asset'][0];

    // 第二次请求:访问视频流的 manifest URL
    $ch2 = curl_init($manifest_url);
    curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); // 返回响应
    curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true); // 跟随重定向
    curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
        'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0'
    ));

    // 执行第二次请求
    $response2 = curl_exec($ch2);

    // 获取第二次请求后的 URL
    $second_url = curl_getinfo($ch2, CURLINFO_EFFECTIVE_URL);

    // 第二次请求是否还有更多重定向
    $ch3 = curl_init($second_url);
    curl_setopt($ch3, CURLOPT_RETURNTRANSFER, true); // 返回响应
    curl_setopt($ch3, CURLOPT_FOLLOWLOCATION, true); // 跟随重定向
    curl_setopt($ch3, CURLOPT_HTTPHEADER, array(
        'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 Edg/130.0.0.0'
    ));

    // 执行第三次请求并获取最终 URL
    curl_exec($ch3);
    $final_url = curl_getinfo($ch3, CURLINFO_EFFECTIVE_URL);

    // 关闭第三次请求的 cURL 会话
    curl_close($ch3);

    // 重定向到最终 URL
    header("Location: $final_url");
    exit();
}

// 关闭第一次请求的 cURL 会话
curl_close($ch);
?>

ShSuperyun #1 2024年11月11日

如果会搞key的话 可以在这里共享 谢谢

回复此楼 修改
bsex #2 2024年11月11日

谢谢,cloudflare workers代码吗?

回复此楼 修改
ABC #3 2024年11月11日

赞!感谢分享!

回复此楼 修改
ShSuperyun #4 2024年11月11日
对 bsex #2 回复

php

回复此楼 修改
eyou #5 2024年11月11日
对 ShSuperyun #4 回复

能转换成cloudflare workers 代码吗?

回复此楼 修改
6 楼 已删除
ShSuperyun 关闭了讨论。 2024年11月14日
ShSuperyun 重新开启了讨论。 2024年11月14日
rudy #9 2024年11月14日

t h x

回复此楼 修改
574509027 #10 2024年11月17日
对 rudy #9 回复

看上去很牛

回复此楼 修改
niconico #11 2024年11月24日

cookie获取后输入https://now.473.hk/ 都是显示 错误:响应中未找到 Asset URL(不能使用)。但我登录后在网页都能观看,请问这个是否还有效?

回复此楼 修改
ShSuperyun 关闭了讨论。 2024年12月06日
收到新回复,点击立即加载
需要 登录 后方可回复, 如果你还没有账号请 注册新账号
ShSuperyun
@ShSuperyun
统计信息
会员
1,786
话题
259
回帖
2,955
活跃会员 查看排行
Devin
Koguan
nt01xp
jmk92
859876741
kewycjy
cnvc
kkk00011
0xyyyy
wayne630
zf7222749
zmy123
Unlovely
bos5201314
scjxx
once
wykds
LeoXD
a15ban
gally

A digital lifestyle community co-maintained by Pixer

本网站服务器由 提供,CDN 由 提供,基于 Homeland 构建,采用 Docker 部署。