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;

}

目录
相关文章
|
6月前
|
小程序 PHP 数据安全/隐私保护
php图片加水印函数
这里分享下php给图片加水印的几个自定义函数 给图片加水印首先需要开启GD库。 用到的php函数是imagecopymerge () 和 imagecopy () imagecopymerge 函数可以支持两个图像叠加时,设置叠加的透明度
54 0
|
1月前
|
PHP
php下载MP4视频
php下载MP4视频
20 0
|
11月前
|
编解码 前端开发 JavaScript
layui框架实战案例(5):基于PHP后端的layUI上传视频到七牛云对象储存并自动转码
layui框架实战案例(5):基于PHP后端的layUI上传视频到七牛云对象储存并自动转码
219 0
|
PHP 数据安全/隐私保护 计算机视觉
PHP给图片添加水印的底层原理是什么?
PHP给图片添加水印的底层原理是什么?
163 0
|
JavaScript
php-单张图片、多张图片、视频上传
php-单张图片、多张图片、视频上传
224 0
php-单张图片、多张图片、视频上传
|
数据安全/隐私保护 索引
php-上传图片加水印(文字水印图片水印)
php-上传图片加水印(文字水印图片水印)
201 0
php-上传图片加水印(文字水印图片水印)
|
PHP 数据安全/隐私保护
ueditor php版本 上传图片添加水印
在文章编辑的时候,使用ueditor上传图片加水印需要修改ueditor部分PHP的源码,我这里大概记录一下。
197 0
ueditor php版本 上传图片添加水印
|
PHP 数据安全/隐私保护
PHP利用GD库给图片添加水印
利用GD库给图片添加水印
426 0
|
PHP CDN
如何使用PHP实现视频点播的鉴权
本文主要介绍如何使用PHP实现视频点播的鉴权。