抖音快手作为目前最大的两大视频平台,使用量是非常大的,看到某些好看的视频想要保存下来但是又有水印改怎么办呢?狗哥已经发布了抖音短视频无水印解析服务,欢迎使用。其工作原理也写了,感兴趣的可以去看看。今天写下快手的短视频无水印解析过程,以及实现代码。
首先拿到一个快手的短视频分享链接,如
复制
https://v.kuaishou.com/8Vt7oX
使用浏览器,开启F12开发者模式访问,可以在控制台中看到请求过程,经过了302重定向,那么使用PHP模拟访问,并取得重定向地址。
然后你会发现重定向后的页面就是视频播放页面,查看网页源码可以快速找到视频的直链地址,不过这是有水印的。仔细看看会发现在网页源码后面有一段JavaScript配置数据,里面居然有整个视频的所有数据,包括名称,有水印无水印视频链接等,这开发者怎么想的?
PHP无水印解析代码
复制
<?php ini_set("display_errors", "Off"); error_reporting(E_ALL^E_NOTICE^E_WARNING); header("content-type:application/json"); $url = $_GET['url']; if (preg_match('/https:\/\/.*\/\w+/', $url, $url)) { $url = $url[0]; $Referer = $url; $header_arr = get_headers($url,1); $UserAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_4_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Mobile/15E148 Safari/604.1'; $header = array( "Cookie:".$header_arr["Set-Cookie"][0], "Referer:".$Referer ); $url = $header_arr["Location"][0]; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_ENCODING, ''); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $data = curl_exec($curl); curl_close($curl); preg_match('/https:\/\/txmov2\.a\.yximgs\.com\/upic\/.*\.mp4/U', $data, $mat); if ($mat[0]) { exit(json_encode(['code' => 'ok','play' => $mat[0]])); } else { exit(json_encode(['code' => 'error'])); } } else { exit(json_encode(['code' => 'error','msg' => '快手分享链接有误,url参数不正确'])); } function get_between($input, $start, $end) { $substr = substr($input, strlen($start)+strpos($input, $start), (strlen($input) - strpos($input, $end))*(-1)); return $substr; }
有水印解析只需要将上面代码中的正则规则修改为如下代码即可。
复制
preg_match('/https:\/\/txmov2\.a\.yximgs\.com\/.*\.mp4/U', $data, $mat);
就是这么简单,其实根本不用代码就能实现,直接访问分享链接,然后右键查看源代码,搜索关键词txmov2
,找那个链接中带upic
的就是无水印的播放地址。
我之所以不给本站加上快手短视频解析功能是因为,快手网站有验证码,访问次数多了会跳验证码,所以就没搞。分享给需要的人吧!
评论 (1)