php

谷豆电视直播代理源码,谷豆代理原理解析

梦浪的小虾米
2022-02-15 / 9 评论 / 6,232 阅读 / 正在检测是否收录...

前言

这两天迷上了玩直播源,正巧有一个叫谷豆的 app.于是起了抓包看直播源的念头

准备功具

安卓手机一台
小黄鸟安卓抓包工具(httpcanary)
谷豆 app

抓包

因为我打开谷豆 app , 里面只有 cctv1 能看,所以下文就以这个为例

  1. 打开抓包工具
  2. 在谷豆里面看自己能看的直播视频,我这边大部分直播视频为: 节目已经回仓,请使用广电网络观看
  3. 查看抓包数据

通过抓包可以得知
通过该接口可以获取一些参数值,网上有人说这个是正门.注意里面的请求参数值需要修改

http://portal.gcable.cn:8080/PortalServer-App/new/aaa_aut_aut002?ptype=1&plocation=001&puser=13020000001&ptoken=&pversion=030106&pserverAddress=portal.gcable.cn&pserialNumber=&pkv=1&ptn=&DRMtoken=&epgID=&authType=0&secondAuthid=&t=&pid=&cid=300&u=13020000001&p=1&l=001&d=&n=CCTV1HD_1500&v=2&ot=0&pappName=GoodTV&hmac=9c22680532&nonce=6961237614

这个接口的作用和上面的接口作用一致,都是获取参数的,网上有人说这个是侧门。注意里面的参数需要自行修改


http://27.36.116.229:8085/AAA/aaa?t=&pid=&cid=312&u=freeuser&p=10&l=001&d=123456&n=CCTV6HD_7000&v=2

上述两个接口返回的结果一致,都是一个内网的地址

{
    "data": {
        "authResult": "http://192.168.11.22:9721/aaa?t=&pid=&cid=312&u=freeuser&p=10&l=001&d=123456&n=CCTV6HD_7000&v=2&errorcode=1011&sid=duIU2KkmeqcLNieCp5IK2g==&r=20220215104502&e=20220215114507&nc=kqje97qi5got&a=16&errorReason=819&pd=60&ip=59.63.206.35&auth_message=eyJhY2xfcGxheWJhY2tfbWVzc2FnZSI6IuWwiuaVrOeahOeUqOaIt--8jOaCqOacquiuoui0reivpeWGheWuue-8jOivt-Wwneivlee7keWNoeingueciyIsImVycm9yY29kZV9tZXNzYWdlIjoi5bCK5pWs55qE55So5oi377yM5oKo5pyq6K6i6LSt6K-l5YaF5a6577yM6K-35bCd6K-V57uR5Y2h6KeC55yLIiwiYWNsX3RpbWVzaGlmdF9tZXNzYWdlIjoi5bCK5pWs55qE55So5oi377yM5oKo5pyq6K6i6LSt6K-l5YaF5a6577yM6K-35bCd6K-V57uR5Y2h6KeC55yLIiwiYWNsX2xpdmVfbWVzc2FnZSI6IuWwiuaVrOeahOeUqOaIt--8jOaCqOacquiuoui0reivpeWGheWuue-8jOivt-Wwneivlee7keWNoeingueciyJ9"
    },
    "errorMessage": "",
    "status": "0"
}

通过测试可以得知:
authResult 里面的内网地址就是我们需要的参数值,我们只需要把参数值取过来放到对应的参数里面就可以了

具体的侧门代理源码可以见。正门的登录接口在评论区

# 把这个文件命名为 gdtv.php
<?php
//header('Content-Type:textml;charset=UTF-8');
$id=$_GET["id"];
if($id==null){$id="CCTV1_1500";}
parse_str(token($id));
header('location:[url=http://gslb.gcable.cn:8070/live/'.$id.'.m3u8'.sprintf("?t=%s&d=%s&pid=%s&cid=%s&u=%s&l=%s&sid=%s&r=%s&e=%s&nc=%s&a=%s&v=%s",$t,$d,$pid,$cid,$u,$l,$sid,$r,$e,$nc,$a,$v));]http://gslb.gcable.cn:8070/live/'.$id.'.m3u8'.sprintf("?t=%s&d=%s&pid=%s&cid=%s&u=%s&l=%s&sid=%s&r=%s&e=%s&nc=%s&a=%s&v=%s",$t,$d,$pid,$cid,$u,$l,$sid,$r,$e,$nc,$a,$v));[/url]
exit;
function token($id){
    $url = "http://27.36.116.229:8085/AAA/aaa?t=A5ZjU2OThiNjAxMzExMTBkN==&pid=&cid=312&u=freeuser&p=8&l=001&d=b60131110d72d53&n=$id&v=2";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Apache-HttpClient/UNAVAILABLE (java 1.4)');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($ch);
    curl_close($ch);
    preg_match('/aaa\?(.*?)"/',$res,$a);
    return $a[1];
}
?>

然后把 gdtv.php 放到服务器里面。
使用示例:
http://你的空间地址/gdtv.php?id=CCTV2HD_1500

其中 CCTV2HD_1500 就是在谷豆里面抓取的节目名称(当你抓包某个节目源看到类似 http://gslb.gcable.cn:8070/live/CCTV2HD_1500.m3u8的时候,这个地址里面的 CCTV2HD_1500 就是这里的id)

注意

本文不提供具体的步骤图,原因为:服务器没有空间了,传播抓包数据不合适
本文的代码直接复制自恩山论坛,作者不保证其可用性
截至本文写完为止,本文所述直播源皆可用,本文只做学习研究,作者不负责其它后果,请勿违法使用

鸣谢

感谢恩山论坛提供资料查询服务

0

评论 (9)

取消
  1. 头像
    NI
    Android · Google Chrome

    学习下先

    回复
  2. 头像
    进驻
    MacOS · Google Chrome

    学习,说明得很详细。

    回复
  3. 头像
    yangyan
    Windows 10 · Google Chrome

    学习下先

    回复
  4. 头像
    会飞的蜗牛
    Windows 10 · Google Chrome

    必须正门

    回复
  5. 头像
    棒棒哒
    Windows 10 · Google Chrome

    如果有正门PHP更好了。在线求 896581586@qq.com

    回复
  6. 头像
    棒棒哒
    Windows 10 · Google Chrome

    学习学习

    回复
  7. 头像
    棒棒哒
    Android · Google Chrome

    学习学习

    回复
  8. 头像
    防水材料加盟
    Windows 10 · FireFox

    感谢分享 赞一个

    回复
  9. 头像
    Windows 10 · Google Chrome

    登录接口
    AAA/loginFromUAP
    ptype=1&plocation=001&puser=freeuser&ptoken=&pversion=030104&pserverAddress=portal.gcable.cn&pserialNumber=&pkv=1&ptn=Y29tLnN1bWF2aXNpb24uc2FucGluZy5ndWRvdQ&pappName=GoodTV&LoginType=0&loginparam=[登陆号]&Pwd=[HASH密码]&serialno=&terminalID=&hmac=×tamp=&nonce=

    回复