惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
月光博客
月光博客
宝玉的分享
宝玉的分享
Recent Announcements
Recent Announcements
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
博客园 - 三生石上(FineUI控件)
A
About on SuperTechFans
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
IT之家
IT之家
Vercel News
Vercel News
量子位
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Visual Studio Blog
腾讯CDC
有赞技术团队
有赞技术团队

Hi, I Am I

[I Am I 年度简报] — 不知终日梦为鱼 初探 ESP32-CAM QQ 聊天记录 MHT 文件转 HTML [I Am I 年度简报] - 草木本无意,荣枯自有时。 Hexo 中实现 Live Photos 支持 写在当下 NKCTF 2024 1z_F0r3ns1c5 Writeup 春秋杯冬季赛 2023 Writeup [I Am I 年度简报] - 2023 某内网渗透内部赛 Writeup 强网拟态 2023 Writeup Github Actions 自动化部署 Hexo 浅析CobaltStrike流量解密 陇剑杯 2023 Writeup CTF线下赛AWDP总结 ISCC 2023 Writeup ISCC 2023 实战题 Writeup CISCN 2023 Writeup 福建闽盾杯网络空间安全大赛 2023 Writeup 天一永安杯宁波市网络安全大赛 2023 Writeup 贵阳大数据及网络安全精英对抗赛 2023 Writeup 红明谷杯 2023 Writeup Confetti 带来有仪式感的鼓励 记一次 JS 逆向密码加密 [I Am I 年度简报] – 2022 PHP 读取 Excel 文件内容并写入数据库 从0开始的 MoeCTF 开发之路 观安杯 2022 Writeup 利用微信服务号实现早安自动化 Cloudflare批量拉黑IP脚本
从0开始写一个短视频去水印接口
2020-07-22 · via Hi, I Am I

最近有人问我如何写一个短视频无水印解析的接口,这里博主为大家提供一下思路。由于平常刷 皮皮虾 比较多 所以这里拿 皮皮虾 做演示 其他短视频去水印思路也 大致相同

所需工具

  • 皮皮虾APP
  • 电脑
  • 浏览器

获取链接

首先,在 皮皮虾 中获取视频的分享链接,这一步非常简单。

获取分享链接

获取到的链接类似于:https://h5.pipix.com/s/hukXsy

打开链接

使用 Edge浏览器 打开获取的视频链接(其他浏览器同样适用,我选择 Edge 因为其开发者工具是中文,对新手友好)。注意到地址栏发生了变化,说明链接进行了一次跳转。此时的链接变成了:

https://h5.pipix.com/item/6706391587317881095?app_id=1319&app=super&timestamp=1561611874&user_id=52595782540&carrier_region=cn&region=cn&language=zh&utm_source=weixin

链接跳转

开始抓包

按下 F12 键唤出 开发者工具,选择 网络(Network) 选项卡并勾选 保留日志(Preserve log),然后刷新页面。此时,我们可以捕获到所有网页发送的请求。

抓包

得到接口

按下键盘 Ctrl+F 检索 视频标题 我们会看到一个 请求链接 (看到这个链接可爱的博主眉头一皱发现了一个惊天秘密)

获取请求

https://h5.pipix.com/bds/webapi/item/detail/?item_id=6706391587317881095&source=share

双击或者右键 打开这个链接 你会发现出现一堆 JSON (一般官方接口大都是返回JSON格式) 。你可以在 JSON在线解析及格式化验证 对其进行格式化,便于查看。

官方接口

格式化校验

格式化后,使用 Ctrl+F 搜索 video 等关键字,就能找到无水印的视频链接了。

无水印视频

无水印视频

写成接口

思路

// 获取的分享链接
https://h5.pipix.com/s/hukXsy
// 跳转后的链接
https://h5.pipix.com/item/6706391587317881095?app_id=1319&app=super&timestamp=1561611874&user_id=52595782540&carrier_region=cn&region=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 中间就得到了无水印的视频下载地址呢?

这样岂不是可以省掉中间抓包的繁琐 (一瞬间博主感觉智商比肩爱因斯坦) 有了思路后博主用世界上最好的语言写出了一个接口

演示代码

<?php
header("Access-Control-Allow-Origin: *");
// 既然是接口肯定得允许跨域
$url = @$_GET['url']; 
// 获取get传过来的参数
$loc = get_headers($url, true)["location"]; 
// 这里我们用PHP内置函数获取HTTP请求中重定向location的内容 也就是跳转后的链接
// get_headers() 是PHP系统级函数,他返回一个包含有服务器响应一个 HTTP 请求所发送的标头的数组。
preg_match('/cell_id=([^&]+)/', $loc, $id);
// 通过正则匹配出`cell_id=`后面的数字
$data =curl('https://h5.pipix.com/bds/webapi/item/detail/?item_id='.$id[1]);
// curl请求官方接口赋值给$data
$arr = json_decode($data,true);
// 把JSON转换成数组

$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/,就会返回如下数据

{
    "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="
}

写在后面

有些其他短视频会直接把真实地址输出在网页源代码里 直接用正则匹配即可正则就是一把梭 输入(.*?)就是干有什么不懂的留言即可

此文章仅供学习交流,如有侵权请联系博主删除