PHP代码去微视视频水印提取无水印视频播放地址

天涯乌鸦一般黑,微视短视频平台和快手一样,通过访问分享链接h5就能获取到无水印播放地址。

页面分析

先随便撸一个微视短视频分享链接,就勉强以下面这个为例吧

https://h5.weishi.qq.com/weishi/feed/7aSxScNP21JyavHnY/wsfeed?wxplay=1&id=7aSxScNP21JyavHnY&spid=1579860139695868&qua=v1_and_weishi_6.8.1_588_312025000_d&chid=100081014&pkg=3670&attach=cp_reserves3_1000370011

  • F12打开浏览器控制台,点手机按钮选择使用iphone客户端刷新请求

  • 点开network观察请求获取到的数据。发现上面的一个请求返回了video_url字段。显然开发者也是个对编码要求很高的老手,很喜欢见名思义,那不妨撸出来放到浏览器look下,从头看到尾无码高清,是不是很惊喜,至此已经发现目标。

  • 重点研究下这个返回无水印视频URL的请求
    不难发现采用的是POST请求。撸出来请求地址和request_payload post 参数和header放到postman 遛一下能完美获取到返回无水印数据。
    逐步试一下其他参数基本都不需要,主要一个核心的feedid字段无误就能正常请求。所以可能这个就类似视频的一个ID吧
    接下来我们的目标就是找到这个神秘的ID 7aSxScNP21JyavHnY
    蓦然回首,好一个家伙居然在分享地址上面,真是得来全不费功夫啊

总结步骤

从微视视频分享链接中通过解析URL获取类似视频ID的字段值,然后post请求
https://h5.qzone.qq.com/webapp/json/weishi/WSH5GetPlayPage?t=0.4185745904612037&g_tk=
加上参数 feedid = 7aSxScNP21JyavHnY
别忘了加上cookie和请求头就完美录到无码播放地址。

PHP代码实现

就是一个辣么简单,一个CURL搞定。下载Guzzle库并引入
composer require guzzlehttp/guzzle

require __DIR__.'/vendor/autoload.php';
$url = $_GET['url'] ?? '';
$url = urldecode($url);
$headers = [
        'Connection' => 'keep-alive',
        'User-Agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 Version/12.0 Safari/604.1'
    ];
$client = new GuzzleHttpClient(['timeout' => $timeout, 'headers' => $headers, 'http_errors' => false,]);

$data = [];
if ($headers) {
    $data['headers'] = $headers;
}
$jar  = new GuzzleHttpCookieCookieJar;
$data['cookies'] = $jar;
if (!$params) {
    $response = $client->request('GET', $url, $data);
} else {
    $data ['form_params'] = $params;
    $response             = $client->request('POST', $url, $data);
}
$body = $response->getBody();
if ($body instanceof Stream) {
    $body = $body->getContents();
}
$result = json_decode($body, true);
if ($result['ret'] == 0) {
$video               = $result['data']['feeds'][0];
$data['video_src']   = $video['video_url'];
$data['cover_image'] = $video['images'][0]['url'];
return $data;

搜索关注 《一只码》公众号发送 专栏微视 即可获取完整可运行源码

You May Also Like

About the Author: LaJun

发表评论

电子邮件地址不会被公开。 必填项已用*标注