别走
再看看

PHP实现抖音无水印视频解析下载

原理:其实抖音原视频的都是没有水印的,水印都是下载的时候自动加上的,这就是为什么我们在抖音app上看视频的时候没有水印,但下载视频的时候会有水印。
 
我们可以通过找视频真实地址的方法下载无水印抖音视频。
 
步骤一:
首先在抖音app上随便选个视频,复制视频的分享链接,复制的链接格式都是像下面图中这样,都是由一些文字和一条链接组成我们只需要其中的链接就行了 https://v.douyin.com/8rmc2PU/,复制链接到浏览器打开
 
步骤二:
按F12 打开浏览器开发者模式,并模拟切换到手机,如下图
 
 
 
找到抖音app的json接口,https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids= ,这边的item_ids的值就是videoid ,也就是我们打开的网页上面的链接最后的一串数字
所以这个视频的完整链接就是https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6957891939144322307
 
步骤三:
每个视频打开的链接 这串数字都不一样,我们只需要找到上面json接口就行,如下图
 
我们可以点击它,然后在响应 看json返回数据具体内容
可以看到,json返回数据中 有视频作者昵称、账号id、视频文案、视频配乐相关信息,背景音乐mp3和视频的链接都可以找到。
点开video键,里面的内容如上图,都有关视频的信息,视频链接就是我圈起来的,但这是有水印的视频链接,无水印的视频链接要把上面链接中的playam 改成play,其他的不变,就获得无水印视频的链接了。链接如下
https://aweme.snssdk.com/aweme/v1/play/?video_id=v0d00fg10000c27mbkt7s8grhfvkrsgg&ratio=720p&line=0
上面这个链接在浏览器访问会进行重定向,在network这个标签下可以看到请求过程,不出意外是302重定向,表示跳转到视频真实地址,大家可以把这条链接复制到浏览器就能下载到无水印视频了。

那么如何用php代码模拟请求链接呢?
 
下面是方法
我们第一步就是要取得这个重定向地址,仔细观察network标签下的请求响应数据,重定向地址在location里面,并且只有1个不是数组。
(1)获取跳转的地址
$header = get_headers('https://v.douyin.com/8rmc2PU/',1);
$realurl = $header['Location'][1]; //获取真实链接

用var_dump看返回结果,结果像这样:https://www.douyin.com/share/video/6957891939144322307,我们只需要取后面数字就行,然后拼接成json接口链接

https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6957891939144322307

我们只需要取后面数字就行,然后拼接到json接口链接 https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6957891939144322307

(2)请求json通过观察视频的真实链接就知道,每个视频地址 只有video_id这个字段的值不一样,其他都相同,所以我们只需要在json的返回数据中获取video_id就行,也就是uri,如下图可以看出,它和video_id值是一样的

json请求代码:

$getvid = json_decode('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6957891939144322307', true);
$dy_vid= $getvid['item_list'][0]['video']['vid'];//得到vid

其实获取无水印链接的方式有很多,比如我们还直接获取url_list里面的链接,如下面这链接,它是有水印的视频链接

 https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0d00fg10000c27mbkt7s8grhfvkrsgg&ratio=720p&line=0 ,我们只需要使用str_replace() 函数替换字符串,将上面链接中的playwm 替换成 play,即可得到无水印的视频链接。

大家都学会了吗?

附上我做好的抖音无水印视频解析接口供大家使用,接口地址:https://www.hmily.vip/api/dy/?url=

使用方法:在接口地址后面加上你要下载的抖音视频链接就行了,返回的是json数据

赞(15) 打赏
未经允许不得转载:H深夜笔记 » PHP实现抖音无水印视频解析下载

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    您好,我是一个php初学者,看了文章感觉很棒,但是自己动手就无从下手,能给我看看dyjx.php这个的源码么

    Lieang2年前 (2022-07-09)回复
  2. #2

    楼主的解析接口现在不能用了,能否修复一下?

    hi2年前 (2022-08-11)回复
    • 没问题呀,能正常使用的。我最近改了一下json返回结果的字段名,你注意跟着修改一下就行。

      包含字段名:code,nickname,inique_id,desc,author_tx,video_cover,music_url,video_url,real_url

      Hmily2年前 (2022-08-11)回复
  3. #3

    非常感谢,很有帮助

    tv0021年前 (2022-10-08)回复

H深夜笔记 爱分享 爱生活

联系我联系我

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏