找回密码
  注册[Register]
查看: 592|回复: 9

PHP获取某音去水印视频

[复制链接]
发表于 2020-9-14 19:57 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

成品地址:
游客,如果您要查看本帖隐藏内容请回复
地址
2.png
效果
1.png

  1. public function getLink(Request $request){
  2.     $url = I('url');
  3.     $pattern = '{(http|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?}';
  4.     preg_match($pattern,$url,$url);
  5.     if ($url){
  6.         $update['share_url'] = (string)$url[0];
  7.     }else{
  8.         $this->returnJson(0,'error',['code'=>0,'msg'=>'获取失败']);
  9.     }
  10.     $res = Db::name('log')->where('share_url',$update['share_url'])->find();
  11.     $reqData['code'] = 1;
  12.     $reqData['msg'] = '解析成功';
  13.     if (!$res){
  14.         $url = (string)$url[0];
  15.         $pattern = '{(?<=\.).*(?=\.com)}';
  16.         preg_match($pattern,$url,$type);
  17.         $type = (string)$type[0];
  18.         switch ($type){
  19.             case 'douyin':
  20.                 $res = $this->douyin($url,'insert');
  21.                 break;
  22.             case 'kuaishou':
  23.                 $res = $this->ks($url,'insert');
  24.                 break;
  25.             default:
  26.                 $this->returnJson(0,'error',['code'=>0,'msg'=>'暂不支持该网站']);
  27.                 break;
  28.         }
  29.         $reqData['addr'] = $res['addr_url'];
  30.         $reqData['title'] = $res['title'];
  31.         $reqData['cover'] = $res['cover'];
  32.         $reqData['is_url'] = $res['is_url'];
  33.         $this->returnJson(1,'success',$reqData);
  34.     }else{
  35.         //查询是否超过一小时,超过则更新
  36.         $over_time = time() - $res['create_time'];
  37.         if ($over_time>3600){
  38.             $url = (string)$url[0];
  39.             $pattern = '{(?<=\.).*(?=\.com)}';
  40.             preg_match($pattern,$url,$type);
  41.             $type = (string)$type[0];
  42.             if ($type=='douyin'){
  43.                 $res = $this->douyin($url,'update');
  44.             }elseif ($type=='kuaishou'){
  45.                 $res = $this->ks($url,'update');
  46.             }
  47.             $reqData['addr'] = $res['addr_url'];
  48.             $reqData['title'] = $res['title'];
  49.             $reqData['cover'] = $res['cover'];
  50.             $reqData['is_url'] = $res['is_url'];
  51.             $this->returnJson(1,'success',$reqData);
  52.         }else{
  53.             $reqData['addr'] = $res['addr_url'];
  54.             $reqData['cover'] = $res['cover'];
  55.             $reqData['title'] = $res['title'];
  56.             $reqData['is_url'] = $res['is_url'];
  57.             $this->returnJson(1,'success',$reqData);
  58.         }

  59.     }
  60. }
  61. protected function douyin($url,$action = 'insert'){
  62.     $update['share_url'] = $url;
  63.     $url = get_headers($url,true);
  64.     $url = $url['location'];
  65.     $pattern = '{(?<=share\/video\/).*(?=\/)}';
  66.     preg_match($pattern,$url,$video_id);
  67.     $video_id = $video_id[0];
  68.     $ql = QueryList::get('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$video_id);
  69.     $res = json_decode($ql->getHtml(),true);
  70.     $url = $res['item_list'][0]['video']['play_addr']['url_list'][0];
  71.     $update['title'] = $res['item_list'][0]['share_info']['share_title'];
  72.     $update['cover'] = $res['item_list'][0]['music']['cover_large']['url_list'][0];
  73.     $update['create_time'] = time();
  74.     $url = str_replace('playwm','play',$url);
  75.     $update['is_url'] = $url;
  76.     $url = get_headers($url,true);
  77.     $url = $url['location'];
  78.     $update['addr_url'] = $url;
  79.     if ($action=='insert'){
  80.         $id = Db::name('log')->insertGetId($update);
  81.         $res = Db::name('log')->where('id',$id)->find();
  82.     }else{
  83.         $res = Db::name('log')->where('share_url',$update['share_url'])->update($update);
  84.         $res = Db::name('log')->where('share_url',$update['share_url'])->find();
  85.     }
  86.     return $res;
  87. }
复制代码


如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2020-9-14 19:57 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-14 19:57 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-14 20:12 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-14 20:33 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-14 21:10 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-14 21:33 | 显示全部楼层
感谢楼主分享!大牛有你更精彩!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-15 01:18 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-16 22:48 | 显示全部楼层
好的,非常感谢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-9-17 07:10 来自手机 | 显示全部楼层
66666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-30 21:23 , Processed in 0.035347 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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