找回密码
 注册需人工审核(节假日除外)
搜索
查看: 386|回复: 10

yy轮播php

[复制链接]

签到天数: 195 天

[LV.7]炉火纯青

发表于 2024-11-22 16:54:41 | 显示全部楼层 |阅读模式
本帖最后由 yf1197565391 于 2024-11-22 16:59 编辑

论坛里找的老帖子,肥羊大佬的打开时全是视频,请大佬修改一下成正常php

  1. <?php
  2. date_default_timezone_set("Asia/Shanghai");
  3. $firstrid = empty($_GET['id']) ? "17829" : trim($_GET['id']);
  4. $quality = "4";

  5. $checkUrl = "https://wap.yy.com/mobileweb/$firstrid";
  6. $header = array(
  7.     'Referer: https://wap.yy.com',
  8.     'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1'
  9. );
  10. $ch = curl_init();
  11. curl_setopt($ch, CURLOPT_URL, $checkUrl);
  12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  13. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  14. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  15. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  16. $data = curl_exec($ch);
  17. curl_close($ch);

  18. function aes_decrypt($ciphertext, $key, $iv)
  19. {
  20.     return openssl_decrypt($ciphertext, 'AES-256-CBC', $key, 0, $iv);
  21. }

  22. $key = "abcdefghijklmnopqrstuvwxyz123456";
  23. $iv = "1234567890123456";
  24. $mediaurl = aes_decrypt("vcnTSiZsSUWtlZRxx+FuRnM7F1b1FlSVueFKcxewvKVbe9bXE49HXuq1dHha2K7cSic4yOuClWpau1RibQeO2g==", $key, $iv);

  25. $realdata = "";
  26. $rid = "";
  27. $reg = "/md5Hash[\s\S]*?sid.*'(.*)'.*?getQuery/i";
  28. preg_match($reg, $data, $realdata);
  29. if (count($realdata) > 0) {
  30.     $rid = $realdata[1];
  31. } else {
  32.     header('location:' . $mediaurl);
  33.     exit();
  34. }

  35. $millis_13 = round(microtime(true) * 1000);
  36. $millis_10 = time();
  37. $data = '{"head":{"seq":' . $millis_13 . ',"appidstr":"0","bidstr":"121","cidstr":"' . $rid . '","sidstr":"' . $rid . '","uid64":0,"client_type":108,"client_ver":"5.11.0-alpha.4","stream_sys_ver":1,"app":"yylive_web","playersdk_ver":"5.11.0-alpha.4","thundersdk_ver":"0","streamsdk_ver":"5.11.0-alpha.4"},"client_attribute":{"client":"web","model":"","cpu":"","graphics_card":"","os":"chrome","osversion":"106.0.0.0","vsdk_version":"","app_identify":"","app_version":"","business":"","width":"1536","height":"864","scale":"","client_type":8,"h265":0},"avp_parameter":{"version":1,"client_type":8,"service_type":0,"imsi":0,"send_time":' . $millis_10 . ',"line_seq":-1,"gear":' . $quality . ',"ssl":1,"stream_format":0}}';
  38. $url = "https://stream-manager.yy.com/v3/channel/streams?uid=0&cid=$rid&sid=$rid&appid=0&sequence=$millis_13&encode=json";
  39. $headers = array(
  40.     'Content-Type: text/plain;charset=UTF-8',
  41.     'Referer: https://www.yy.com/',
  42.     'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.42'
  43. );
  44. $ch = curl_init($url);
  45. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  46. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  47. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  48. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  49. curl_setopt($ch, CURLOPT_POST, true);
  50. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

  51. $result = curl_exec($ch);
  52. $result = json_decode($result, true);
  53. curl_close($ch);
  54. if (array_key_exists('avp_info_res', $result)) {
  55.     $a = $result['avp_info_res']['stream_line_addr'];
  56.     $mediaurl = array_values($a)[0]['cdn_info']['url'];
  57.     header('location:' . $mediaurl);
  58.     exit();
  59. } else {
  60.     header('location:' . $mediaurl);
  61.     exit();
  62. }
复制代码
huya   web网页端
  1. <?php
  2. date_default_timezone_set("Asia/Shanghai");
  3. $type = empty($_GET['type']) ? "nodisplay" : trim($_GET['type']);
  4. $id = empty($_GET['id']) ? "shangdi" : trim($_GET['id']);
  5. $cdn = empty($_GET['cdn']) ? "hwcdn" : trim($_GET['cdn']);
  6. $media = empty($_GET['media']) ? "flv" : trim($_GET['media']);
  7. $roomurl = "https://m.huya.com/" . $id;

  8. function get_content($apiurl, $flag)
  9. {
  10.     if ($flag == "mobile") {
  11.         $headers = array(
  12.             'Content-Type: application/x-www-form-urlencoded',
  13.             'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 16_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.3 Mobile/15E148 Safari/604.1'
  14.         );
  15.     } else {
  16.         $arr = [
  17.             "appId" => 5002,
  18.             "byPass" => 3,
  19.             "context" => "",
  20.             "version" => "2.4",
  21.             "data" => new stdClass(),
  22.         ];
  23.         $postData = json_encode($arr);
  24.         $headers = array(
  25.             'Content-Type: application/json',
  26.             'Content-Length: ' . strlen($postData),
  27.             'upgrade-insecure-requests: 1',
  28.             'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
  29.         );
  30.     }
  31.     $ch = curl_init();
  32.     curl_setopt($ch, CURLOPT_URL, $apiurl);
  33.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  34.     curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  35.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  36.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  37.     if ($flag == "uid") {
  38.         curl_setopt($ch, CURLOPT_POST, 1);
  39.         curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
  40.     }
  41.     $data = curl_exec($ch);
  42.     curl_close($ch);
  43.     return $data;
  44. }

  45. function aes_decrypt($ciphertext, $key, $iv)
  46. {
  47.     return openssl_decrypt($ciphertext, 'AES-256-CBC', $key, 0, $iv);
  48. }

  49. $key = "abcdefghijklmnopqrstuvwxyz123456";
  50. $iv = "1234567890123456";
  51. $mediaurl = aes_decrypt("fIuPMpBI1RpRnM2JhbYHzvwCvwhHBF7Q+8k14m9h3N5ZfubHcDCEk08TnLwHoMI/SG7bxpqT6Rh+gZunSpYHf1JM/RmEC/S1SjRYWw6rwc3gGo3Rrsl3sojPujI2aZsb", $key, $iv);

  52. $uid = json_decode(get_content("https://udblgn.huya.com/web/anonymousLogin", "uid"), true)["data"]["uid"];

  53. function get_uuid()
  54. {
  55.     $now = intval(microtime(true) * 1000);
  56.     $rand = rand(0, 1000) | 0;
  57.     return intval(($now % 10000000000 * 1000 + $rand) % 4294967295);
  58. }

  59. function process_anticode($anticode, $uid, $streamname)
  60. {
  61.     parse_str($anticode, $q);
  62.     $q["t"] = '102';
  63.     $q["ctype"] = 'tars_mp';
  64.     $q["wsTime"] = dechex(time() + 21600);
  65.     $q["ver"] = "1";
  66.     $q["sv"] = date('YmdH');
  67.     $q["seqid"] = strval(intval($uid) + intval(microtime(true) * 1000));
  68.     $q["uid"] = strval($uid);
  69.     $q["uuid"] = strval(get_uuid());
  70.     $ss = md5("{$q["seqid"]}|{$q["ctype"]}|{$q["t"]}");
  71.     $q["fm"] = base64_decode($q["fm"]);
  72.     $q["fm"] = str_replace(["$0", "$1", "$2", "$3"], [$q["uid"], $streamname, $ss, $q["wsTime"]], $q["fm"]);
  73.     $q["wsSecret"] = md5($q["fm"]);
  74.     unset($q["fm"]);
  75.     if (array_key_exists("txyp", $q)) {
  76.         unset($q["txyp"]);
  77.     }
  78.     return http_build_query($q);
  79. }

  80. function format($livearr, $uid)
  81. {
  82.     $stream_info = ['flv' => [], 'hls' => []];
  83.     $cdn_type = ['HY' => 'hycdn', 'AL' => 'alicdn', 'TX' => 'txcdn', 'HW' => 'hwcdn', 'HS' => 'hscdn', 'WS' => 'wscdn'];
  84.     foreach ($livearr["roomInfo"]["tLiveInfo"]["tLiveStreamInfo"]["vStreamInfo"]["value"] as $s) {
  85.         if ($s["sFlvUrl"]) {
  86.             $stream_info["flv"][$cdn_type[$s["sCdnType"]]] = $s["sFlvUrl"] . '/' . $s["sStreamName"] . '.' . $s["sFlvUrlSuffix"] . '?' . process_anticode($s["sFlvAntiCode"], $uid, $s["sStreamName"]);
  87.         }
  88.         if ($s["sHlsUrl"]) {
  89.             $stream_info["hls"][$cdn_type[$s["sCdnType"]]] = $s["sHlsUrl"] . '/' . $s["sStreamName"] . '.' . $s["sHlsUrlSuffix"] . '?' . process_anticode($s["sHlsAntiCode"], $uid, $s["sStreamName"]);
  90.         }
  91.     }
  92.     return $stream_info;
  93. }

  94. $res = get_content($roomurl, "mobile");
  95. $reg = "/\<script\> window.HNF_GLOBAL_INIT = (.*) \<\/script\>/i";
  96. preg_match($reg, $res, $realres);
  97. $realdata = json_decode($realres[1], true);

  98. if (array_key_exists("exceptionType", $realdata)) {
  99.     header('location:' . $mediaurl);
  100.     exit();
  101. } elseif ($realdata["roomInfo"]["eLiveStatus"] == 2) {
  102.     $realurl = format($realdata, $uid);
  103.     if ($type == "display") {
  104.         print_r($realurl);
  105.         exit();
  106.     }
  107.     if ($media == "flv") {
  108.         switch ($cdn) {
  109.             case $cdn:
  110.                 $mediaurl = str_replace("http://", "https://", $realurl["flv"][$cdn]);
  111.                 break;
  112.             default:
  113.                 $mediaurl = str_replace("http://", "https://", $realurl["flv"]["hwcdn"]);
  114.                 break;
  115.         }
  116.     }
  117.     if ($media == "hls") {
  118.         switch ($cdn) {
  119.             case $cdn:
  120.                 $mediaurl = str_replace("http://", "https://", $realurl["hls"][$cdn]);
  121.                 break;
  122.             default:
  123.                 $mediaurl = str_replace("http://", "https://", $realurl["hls"]["hwcdn"]);
  124.                 break;
  125.         }
  126.     }
  127.     header('location:' . $mediaurl);
  128.     exit();
  129. } elseif ($realdata["roomInfo"]["eLiveStatus"] == 3) {
  130.     header('location:' . "https:" . base64_decode($realdata["roomProfile"]["liveLineUrl"]));
  131.     exit();
  132. } else {
  133.     header('location:' . $mediaurl);
  134.     exit();
  135. }
复制代码



人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 7 天

[LV.3]圆转纯熟

发表于 2024-11-22 18:21:41 | 显示全部楼层

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 195 天

[LV.7]炉火纯青

 楼主| 发表于 2024-11-22 19:06:36 | 显示全部楼层
Mr.YanG 发表于 2024-11-22 18:21
找GitHub 改下就能用....

怎么改?请指教

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 59 天

[LV.5]略有小成

发表于 2024-11-22 19:19:03 | 显示全部楼层
寻求答案,在哪里

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 73 天

[LV.6]渐入佳境

发表于 2024-11-22 19:23:55 | 显示全部楼层
这代码能用吗

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 195 天

[LV.7]炉火纯青

 楼主| 发表于 2024-11-22 19:36:24 | 显示全部楼层

能用!!!

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 1 天

[LV.1]初学乍练

发表于 2024-11-22 22:00:19 | 显示全部楼层

能用你还改什么?

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 7 天

[LV.3]圆转纯熟

发表于 2024-11-23 00:31:06 | 显示全部楼层

打错字了...找chatgpt  就可以了..
其实第一个代码本身就能用..

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

该用户从未签到

发表于 2024-11-23 02:13:13 来自手机 | 显示全部楼层
大佬这个yy和虎牙的格式是不是http://ip:端口/yy.php?id=*****

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 41 天

[LV.5]略有小成

发表于 2024-11-23 08:44:57 | 显示全部楼层
本帖最后由 dragoneast23 于 2024-11-23 09:00 编辑

我这里测试两个都不能用哦,哪位给改好再发一下哦,谢谢

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 73 天

[LV.6]渐入佳境

发表于 2024-11-23 10:42:45 | 显示全部楼层
这个码应该不能用了吧,视频把它的视频删掉不就行了,还要那麻烦

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

本版积分规则

Archiver|手机版|小黑屋|IPTV论坛 | 管理员邮箱:a@8494.net

本站以兴趣爱好为宗旨,非经营性质,不以任何形式收取任何费用。IPTV论坛没有任何官方Q群,V群,T群,禁止留任何联系方式,请配合。

免责声明:本站上述内容来自网络,不得用于商业或非法用途,您必须在下载后24小时内,从设备中删除,否则后果自负。如内容侵犯您的版权、著作权,请联系我,第一时间处理。

GMT+8, 2025-1-31 11:07 , Processed in 0.109817 second(s), 17 queries .

IPTV论坛 创建于 2023年5月1日

快速回复 返回顶部 返回列表