PHP 实现抖音视频去水印播放

简介: 该内容主要介绍了如何获取无水印的抖音视频播放地址。原理是通过替换播放地址中的参数来去除水印,首先提供了一个带水印和无水印的播放地址示例。接着,展示了一段PHP代码,该代码通过解析分享链接,获取视频ID,然后利用这些信息通过cURL发送请求,最终得到无水印的播放地址。需要注意的是,由于抖音对PC端的限制,可能需要模拟手机请求来实现。

原理

# 播放地址

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=。。。。。

# 无水印地址

https://aweme.snssdk.com/aweme/v1/play/?video_id=。。。。。

# 区别

参数 paly/playwm

# 注意

据推测,犹豫抖音对PC做了限制,现在只有模拟手机发送请求才可以实现无水印播放。

代码处理

[付费阅读]隐藏内容 - 管理员可见

/**

* 返回无水印播放地址

* @desc 使用方法 域名url=视频的分享地址

*/  

public function index()

{

  // 通过 url 获取到 解析后的地址

   $url = $_GET['url'];

   $res = $this->curl_http_exec($url);

   preg_match('/href="(.*?)">Found/', $res, $matches);

   $url_share = $matches[1];

  // 根据解析后的地址获取到 item_ids

   preg_match('/video\/(.*?)\//', $url_share, $matches);

   $item_ids = $matches[1];

  // 根据 item_ids 获取播放地址

   $arr = json_decode($this->curl_http_exec('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' . $matches[1]), true);

   $url_play = $arr['item_list'][0]["video"]["play_addr"]["url_list"][0];

  // 根据播放地址 获取到无水印播放地址

   $url_play_remove_mark = str_replace('playwm', 'play', $url_play);

   preg_match('/href="(.*?)">Found/', $this->curl_http_exec($url_play_remove_mark), $matches);

   $videoUrl = str_replace('&', '&', $matches[1]);

   echo $videoUrl;

}

/**

* 获取地址中的内容

* @param $url

* @return bool|string

*/

public function curl_http_exec($url)

{

  // $Header = array("User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");

   $Header = array("User-Agent:Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");

   $con = curl_init((string)$url);

   curl_setopt($con, CURLOPT_HEADER, false); # 启用时会将头文件的信息作为数据流输出。

   curl_setopt($con, CURLOPT_SSL_VERIFYPEER, false); # 禁用后cURL将终止从服务端进行验证。

   curl_setopt($con, CURLOPT_RETURNTRANSFER, true); # 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。

   curl_setopt($con, CURLOPT_HTTPHEADER, $Header); # 用来设置HTTP头字段的数组

   curl_setopt($con, CURLOPT_TIMEOUT, 5000); # 设置cURL允许执行的最长秒数。

   $result = curl_exec($con); # 抓取URL并把它传递给浏览器

   curl_close($con); # //关闭cURL资源,并且释放系统资源

   return $result;

}

目录
相关文章
|
编解码 数据安全/隐私保护
PHP-FFMpeg 操作音视频
快速掌握音视频操作神器
151 0
PHP-FFMpeg 操作音视频
|
小程序 PHP 数据安全/隐私保护
php图片加水印函数
这里分享下php给图片加水印的几个自定义函数 给图片加水印首先需要开启GD库。 用到的php函数是imagecopymerge () 和 imagecopy () imagecopymerge 函数可以支持两个图像叠加时,设置叠加的透明度
109 0
|
18天前
|
Linux PHP iOS开发
PHP-Raylib 视 频 游 戏 编 程 库
php-raylib 是基于 PHP-FFI 绑定的 raylib-v5.5 游戏开发库,让 PHP 开发者轻松实现视频游戏编程。相比仅支持 4.+ 版本的原库,本项目适配最新 5.5 版本,并提供友好文档与示例代码(如窗口初始化、文本绘制等)。支持 PHP 7.4+ 和多平台(Windows、Linux、macOS),可通过 Composer 快速安装。欢迎贡献和完善![查看文档](http://raylib.kllxs.top/) 或访问仓库(GitHub/Gitee/Gitcode)。
PHP-Raylib 视 频 游 戏 编 程 库
|
4月前
|
移动开发 小程序 Linux
PHP仿WX即时聊天源码,支持视频语音聊天
PHP仿WX即时聊天源码,支持视频语音聊天
231 65
|
9月前
|
前端开发 PHP 数据格式
【附带效果视频】php接口给前端返回流式数据,php使用event-stream进行数据推送,循环一次输出一次
【附带效果视频】php接口给前端返回流式数据,php使用event-stream进行数据推送,循环一次输出一次
356 0
|
11月前
|
PHP
php下载MP4视频
php下载MP4视频
223 0
|
编解码 前端开发 JavaScript
layui框架实战案例(5):基于PHP后端的layUI上传视频到七牛云对象储存并自动转码
layui框架实战案例(5):基于PHP后端的layUI上传视频到七牛云对象储存并自动转码
333 0
|
PHP 数据安全/隐私保护 计算机视觉
PHP给图片添加水印的底层原理是什么?
PHP给图片添加水印的底层原理是什么?
251 0
|
JavaScript
php-单张图片、多张图片、视频上传
php-单张图片、多张图片、视频上传
280 0
php-单张图片、多张图片、视频上传
|
8天前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
60 17
下一篇
oss创建bucket