从0开始写一个短视频去水印接口
最近有人问我如何写一个短视频无水印解析的接口,这里博主为大家提供一下思路。由于平常刷 皮皮虾
比较多 所以这里拿 皮皮虾
做演示 其他短视频去水印思路也 大致相同
所需工具
获取链接
首先,在 皮皮虾
中获取视频的分享链接,这一步非常简单。
获取到的链接类似于:https://h5.pipix.com/s/hukXsy
。
打开链接
使用 Edge浏览器
打开获取的视频链接(其他浏览器同样适用,我选择 Edge 因为其开发者工具是中文,对新手友好)。注意到地址栏发生了变化,说明链接进行了一次跳转。此时的链接变成了:
1
| https://h5.pipix.com/item/6706391587317881095?app_id=1319&app=super×tamp=1561611874&user_id=52595782540&carrier_region=cn®ion=cn&language=zh&utm_source=weixin
|
开始抓包
按下 F12
键唤出 开发者工具
,选择 网络(Network)
选项卡并勾选 保留日志(Preserve log)
,然后刷新页面。此时,我们可以捕获到所有网页发送的请求。
得到接口
按下键盘 Ctrl+F
检索 视频标题
我们会看到一个 请求链接
(看到这个链接可爱的博主眉头一皱发现了一个惊天秘密)
1
| https://h5.pipix.com/bds/webapi/item/detail/?item_id=6706391587317881095&source=share
|
双击或者右键 打开这个链接
你会发现出现一堆 JSON
(一般官方接口大都是返回JSON
格式) 。你可以在 JSON在线解析及格式化验证 对其进行格式化,便于查看。
格式化后,使用 Ctrl+F
搜索 video
等关键字,就能找到无水印的视频链接了。
写成接口
思路
1 2 3 4 5 6
| // 获取的分享链接 https://h5.pipix.com/s/hukXsy // 跳转后的链接 https://h5.pipix.com/item/6706391587317881095?app_id=1319&app=super×tamp=1561611874&user_id=52595782540&carrier_region=cn®ion=cn&language=zh&utm_source=weixin // 我们抓到的官方接口 https://h5.pipix.com/bds/webapi/item/detail/?item_id=6706391587317881095&source=share
|
聪明的博主看到这里一拍大腿 6706391587317881095
这串神秘的数字 难道存在某些不为人知的秘密?这一切究竟是道德的沦丧 还是人性的扭曲 欢迎收看今晚…
是不是我们获取跳转后的链接 item/
和 ?app_id
中的这串数字,填写到官方接口 item_id=
和 &source
中间就得到了无水印的视频下载地址呢?
这样岂不是可以省掉中间抓包的繁琐 (一瞬间博主感觉智商比肩爱因斯坦) 有了思路后博主用世界上最好的语言写出了一个接口
演示代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <?php header("Access-Control-Allow-Origin: *");
$url = @$_GET['url'];
$loc = get_headers($url, true)["location"];
preg_match('/cell_id=([^&]+)/', $loc, $id);
$data =curl('https://h5.pipix.com/bds/webapi/item/detail/?item_id='.$id[1]);
$arr = json_decode($data,true);
$Json = array( "title" => $arr["data"]["item"]["video"]["text"], "cover" => $arr["data"]["item"]["origin_video_download"]["cover_image"]["url_list"]["0"]['url'], "url" => $arr["data"]["item"]["origin_video_download"]["url_list"]['0']['url'], ); $Json = json_encode($Json,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); echo stripslashes($Json); return $Json;
function curl($url) { $con=curl_init((string)$url); curl_setopt($con,CURLOPT_HEADER,False); curl_setopt($con,CURLOPT_SSL_VERIFYPEER,False); curl_setopt($con,CURLOPT_RETURNTRANSFER,true); curl_setopt($con,CURLOPT_TIMEOUT,5000); $result = curl_exec($con); return $result; } ?>
|
测试请求
访问链接 你的域名/?url=https://h5.pipix.com/s/hukXsy/
,就会返回如下数据
1 2 3 4 5
| { "title":"标题交给你们了。", "cover":"https://p9-ppx.byteimg.com/img/mosaic-legacy/2ab8400068ec7576befea~272x480_q80.jpeg", "url":"http://v3-ppx.ixigua.com/35c007900ce2fabfe64f00734bfb639b/5f16f7aa/video/tos/hxsy/tos-hxsy-ve-0076/41064fc495f04f029e8629421b1352fd/?a=1319&br=1041&bt=347&cr=0&cs=0&dr=3&ds=1&er=&l=20200721211141010014043146120A948E&lr=&mime_type=video_mp4&qs=0&rc=anl4PGd0bDl4bjMzZGYzM0ApZGk1NTRpNjs5N2k4NDxnZGctYGsucWdjNDVfLS0yMS9zczMxLV82XjA0NDA0XzMuY2I6Yw%3D%3D&vl=&vr=" }
|
写在后面
有些其他短视频会直接把真实地址输出在网页源代码里 直接用正则匹配即可正则就是一把梭 输入(.*?)就是干有什么不懂的留言即可
此文章仅供学习交流,如有侵权请联系博主删除