抖音无水印解析下载原理以及代码分享

作者 : admin 本文共4649个字,预计阅读时间需要12分钟 发布时间: 2020-08-31 共153人阅读
抖音无水印视频下载原理:

本站已经整理好了接口,供大家免费使用:https://www.360mb.net/shuiyin

暂支持抖音丶快手丶火山丶微视等四类解析,后续还会增加。敬请期待...

打开视频APP,点开某个视频,点击分享按钮,在分享弹框中点击复制链接或通过分享到微信QQ等获取分享链接

将复制的分享链接粘贴到输入框进行解析

本站可以解析99%以上的视频。但如果视频作者上传的视频本身就有水印,这种水印暂时无法去除。

目前该功能处于测试阶段,可能具有不稳定因素,敬请谅解!

视频被删除、被设置成私密、或在审核中都有可能导致解析失败。

1.首先我们要用$_GET方式接收抖音的分享链接:

$url = @$_GET['url']; //建议用GET方式,原理自行百度。

2.然后我们要解析抖音分享链接的html源码,我们用常用的curl的方式来访问抖音的分享链接获取源码:

$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
//加UA那是必须的
$curl = curl_init();
//创建一个新的CURL资源
curl_setopt($curl, CURLOPT_URL, $url);
//设置URL和相应的选项
curl_setopt($curl, CURLOPT_HEADER, 0);
//0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设定是否显示头信息,1显示,0不显示。
//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
//设置编码格式,为空表示支持所有格式的编码
//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。
 
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
$data = curl_exec($curl);
//获取的源码
//echo $data;
curl_close($curl);
//关闭cURL资源,并释放系统资源
最后输出解析的相关信息:
//输出前端解析内容
//判断是否是抖音的链接
if (strstr($url,"douyin.com")) {
echo ""."分享用户:".$name."<HR></br>";
echo ""."<img src=\"".$namejpg."\" \"height=\"200\" width=\"200\"/><HR></br>";
echo ""."分享说明:". " ". $txt. "<HR></br>";
$time = date('YmdHis'); //获取当前时间
echo ""."视频地址:". " <textarea readonly=\"readonly\" cols=\"100%\" rows=\"1\" id=\"biao1\"style=\"color:#666;background-color: #ffffff00;text-align: center;margin-top: 10px;\">". $surl. '</textarea> <a href="'.$surl.'"target="_blank"style=" color:#666;">播放</a> <a href="'.$surl.'"target="_blank"style=" color:#666;"download="抖音_'.$name.'_'.$time.'">下载</a> <a href="javascript:void(0);" onclick="copyUrl2();"style=" color:#666;">复制链接</a> ';
} else
{
echo '请输入抖音分享的地址,如:http://v.douyin.com/eRcTtj/';
}

整个思路大致就是获取抖音分享链接的源码取出视频链接去除水印就行了

参考代码如下:

<?php
$url = @$_GET['url'];
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
//创建一个新的CURL资源
curl_setopt($curl, CURLOPT_URL, $url);
//设置URL和相应的选项
curl_setopt($curl, CURLOPT_HEADER, 0);
//0表示不输出Header,1表示输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设定是否显示头信息,1显示,0不显示。
//如果成功只将结果返回,不自动输出任何内容。如果失败返回FALSE
 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
//设置编码格式,为空表示支持所有格式的编码
//header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。
 
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
 
$data = curl_exec($curl);
//echo $data;
 
curl_close($curl);
//关闭cURL资源,并释放系统资源
//取出播放链接
$a = $data;
$b = "playAddr: \"";
$c = "\"";
$s = GetBetween($a,$b,$c);
function GetBetween($content,$start,$end) {
$r = explode($start, $content);
if (isset($r[1])) {
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}
$surl = str_replace("playwm",'play' ,$s);
//去水印的关键所在,删出url中的wm就行了
 
$b = '<p class="name nowrap">';
$c = '</p>';
$name = GetBetween($a,$b,$c);
//取出作者昵称
 
function unicodeDecode($name) {
$json = '{"str":"'.$name.'"}';
$arr = json_decode($json,true);
if (empty($arr)) return '';
return $arr['str'];
}
$name = unicodeDecode($name);
//作者昵称转码
 
$b = "desc\">";
$c = "<";
$txt = GetBetween($a,$b,$c);
//取出说明文字
$txt = unicodeDecode($txt);
//说明文字转码
 
$b = "/aweme/100x100/";
$c = "\"";
$namejpg = GetBetween($a,$b,$c);
$namejpg = 'https://p3.pstatp.com/aweme/200x200/'.$namejpg;
//取出作者头像
 
//输出前端解析内容
//判断是否是抖音的链接
if (strstr($url,"douyin.com")) {
echo "<div style=\"text-align: center;\">分享用户:".$name."<HR></br>";
echo "<img src=\"".$namejpg."\" \"height=\"200\" width=\"200\"/><HR></br>";
echo "分享说明: ". $txt. "<HR></br>";
$time = date('YmdHis');
//取当前时间
echo '视频地址: <textarea readonly="readonly" id="biao1"cols="100%" rows="1" style="color:#666;background-color: #ffffff00;text-align: center;margin-top: 10px;">'. $surl. '</textarea> <a href="'.$surl.'"target="_blank"style=" color:#666;">播放</a> <a href="'.$surl.'"target="_blank"style=" color:#666;"download="抖音_'.$name.'_'.$time.'">下载</a> <a href="javascript:void(0);" onclick="copyUrl2();"style=" color:#666;">复制链接</a></div>
<script type="text/javascript">
function copyUrl2() {
var Url2 = document.getElementById("biao1");
Url2.select();
document.execCommand("Copy");
alert("已复制好,可贴粘。");
}
</script>';
} else
{
echo '请输入抖音分享的地址,如:http://v.douyin.com/eRcTtj/';
}
?>
注:

以上代码新建保存到php utf-8编码然后 域名/php文件名?url=抖音分享链接

例如:https://api.mlwei.com/dy/douyin.php?url=http://v.douyin.com/eRcTtj/
1. 本站所有源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
2. 本站提供的所有资源不免费提供个人需要的资源修改、美化、功能定制!
3. 如遇需要解压密码,则解压密码为"www.360mb.net"!
4. 由于源码属于可复制性产品,发货后禁止买家以各种理由退款!!
5. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
6. 如用于商业或者非法用途,与本站无关,一切后果请用户自负!
7. 本站提供资源如遇源码失效,功能异常等等可提供退款服务,可参考退款规则!

360模板吧 » 抖音无水印解析下载原理以及代码分享

发表评论