>  기사  >  백엔드 개발  >  소스 코드 가져오기 - PHP로 Douyu TV의 소스 주소를 얻는 방법

소스 코드 가져오기 - PHP로 Douyu TV의 소스 주소를 얻는 방법

WBOY
WBOY원래의
2016-12-01 00:56:404046검색

인터넷에서 많은 정보를 시도해 보았지만 작동하지 않습니다. 지금 직면한 문제는 인터페이스 주소 매개 변수에서 매개 변수 값을 생성하는 방법입니다
http://live.qq .com/swf_api/ro...
이것은 t 및 sign 매개변수가 새로 고쳐질 때마다 변경됩니다. 이 매개변수를 얻거나 생성하는 방법을 알려주십시오.

온라인에서 찾은 파이썬 언어로 작성된 돈벌이 프로그램을 PHP로 변경하여 생성된 주소 접근 인터페이스에서 오류가 발생했습니다

<code>function getmd5($str){
    $m=md5($str);
    return $m;
}
function l_request($action){
    $baseUrl = "http://www.douyutv.com/api/v1/room/";
    $midReq = "?aid=android&cdn=ws&client_sys=android&time=";
    $t=time();


    $md5_url= $action . $t . 1231;
    //$auth = getmd5($md5_url);

    $requrl= $baseUrl . $action . $midReq . $t . "&auth=" . getmd5($md5_url);
    return $requrl;
}
echo (l_request(10000346));</code>

답글 내용:

인터넷에서 많은 정보를 시도해 보았지만 작동하지 않습니다. 지금 직면한 문제는 인터페이스 주소 매개 변수에서 매개 변수 값을 생성하는 방법입니다
http://live.qq .com/swf_api/ro...
이것은 t 및 sign 매개변수가 새로 고쳐질 때마다 변경됩니다. 이 매개변수를 얻거나 생성하는 방법을 알려주십시오.

이전에 인터넷에서 발견한 Python으로 작성된 돈벌이 프로그램이 PHP로 바뀌었고 생성된 주소 접근 인터페이스에서 오류가 발생했습니다

<code>function getmd5($str){
    $m=md5($str);
    return $m;
}
function l_request($action){
    $baseUrl = "http://www.douyutv.com/api/v1/room/";
    $midReq = "?aid=android&cdn=ws&client_sys=android&time=";
    $t=time();


    $md5_url= $action . $t . 1231;
    //$auth = getmd5($md5_url);

    $requrl= $baseUrl . $action . $midReq . $t . "&auth=" . getmd5($md5_url);
    return $requrl;
}
echo (l_request(10000346));</code>

https://github.com/soimort/yo...
파이썬 버전이니 직접 php로 바꿔보세요


php:

<code><?php
function curl($url,$cat='get',$post_data=''){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    if($cat=='post')
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    // curl_setopt($ch, CURLOPT_USERAGENT, "Python-urllib/3.5");
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36");
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
$room_id = 55955;
$url = "https://m.douyu.com/html5/live?roomId=" . $room_id ;
$ret = curl($url);
$ret = json_decode($ret,1);
//print_r($ret);
if($ret['msg'] != 'OK' || $ret['data']['show_status'] != 1){
    echo "直播未开播";exit;
}
$tt = time()/60;
$did = md5(uniqid());
$sign = md5("{$room_id}{$did}A12Svb&%1UUmf@hC{$tt}");

$d = ['cdn'=>'ws', 'rate'=> '0', 'tt'=> $tt, 'did'=> $did, 'sign'=> $sign];
$api_url = "http://www.douyu.com/lapi/live/getPlay/" . $room_id;

$api_data = curl($api_url,'post',http_build_query($d));
$api_data = json_decode($api_data,1);
//print_r($api_data);
if($api_data['error'] === 0){
    echo '直播流地址:' .  $api_data['data']['rtmp_url'] . '/' . $api_data['data']['rtmp_live'];
}else{
    echo 'api请求错误';
}</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.