抖音无水印解析PHP源码

仅限学习使用

输出为标准的格式化json数据

ajax直接调用即可

原生的ajax的调用方法看底部

<?php
$url = @$_GET[‘url‘];
if (strstr($url,"douyin.com")) {
//获取301跳转真实地址
function getrealurl($url){ $header = get_headers($url,1);
if (strpos($header[0],‘301‘) || strpos($header[0],‘302‘))
{if(is_array($header[‘Location‘])) {return $header[‘Location‘][count($header[‘Location‘])-1];
}else{return $header[‘Location‘];}}else{return $url;}};
$url = getrealurl($url);
//模拟苹果手机访问
$UserAgent = ‘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‘;
// 截取ID
function GetBetween($content,$start,$end) {
$r = explode($start, $content);
if (isset($r[1])) {
$r = explode($end, $r[1]);
return $r[0];
}
return ‘‘;
}
$b = ‘https://www.iesdouyin.com/share/video/‘;
$c = ‘/?‘;
$id = GetBetween($url,$b,$c);
$d =‘https://api-hl.amemv.com/aweme/v1/aweme/detail/?aid=1128&app_name=aweme&version_code=251&aweme_id=‘.$id;
//curl
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $d);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, ‘‘);
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl);
$a = $data;
curl_close($curl);
header(‘Content-type:text/json‘);
$Array = json_decode($a,true);
$name = $Array["aweme_detail"]["author"]["nickname"];
$title = $Array["aweme_detail"]["share_info"]["share_title"];
$videourl= $Array["aweme_detail"]["video"]["play_addr"]["url_list"][0];
$cover = $Array["aweme_detail"]["video"]["origin_cover"]["url_list"][0];
$des = $Array["aweme_detail"]["desc"];
if($videourl==""){
	$status = "0";
}else{
	$status="1";
}
$Json = array(‘status‘=>$status,‘name‘=>$name,‘title‘=>$title,‘des‘=>$des,‘cover‘=>$cover,‘videourl‘=>$videourl);
$turl=json_encode($Json,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE);
echo stripslashes($turl);
} else
{
echo ‘请输入抖音分享的地址,如:http://v.douyin.com/eRcTtj/‘;
}
?>
<script>
        function  setValue()
        {
        var v =  document.getElementById("input1").value;//取得参数
          		var reg=/^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([A-Za-z0-9-~]+)\.)+([A-Za-z0-9-~\/])+$/;
 if(!reg.test(v)){md.showWarning(‘top‘,‘right‘);}
 else{      var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.open("GET","/douyin/?url="+v,false);
            xmlhttp.send();
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;//获取数据
	var jsonObj = JSON.parse(xmlhttp.responseText);  // 初始化!!!
        //document.getElementById("input1").value= jsonObj.url; //注释解析
        document.getElementById("v1").src = jsonObj.url;
        document.getElementById("media").load();
        md.showNotification(‘top‘,‘right‘);//
        }
    }
</script>

网站输出视频必须是https协议

原文地址:https://www.cnblogs.com/fdffgfg/p/12000266.html

时间: 2024-11-05 20:48:04

抖音无水印解析PHP源码的相关文章

抖音无水印视频解析php源码

[Code] <?php /* 雪自纯阳落白衫:https://www.cnblogs.com/L1079991001/ */ if (!empty($_GET['url'])) { $url = $_GET['url']; $str = GET($url, 1); preg_match("/video_id=(.*?)&/i", $str, $arr); if (count($arr) >= 1) { $str = GET("https://aweme.

十行代码获取抖音无水印视频地址

Videoparse(https://www.videoparse.cn) 提供视频去水印解析接口,下面代码中的appId和appSecret可以在开发者后台获得. PHP代码实例如下: //开发者后台生成的appid $appId = ''; //开发者后台生成的appsecret $appSecret = ''; //需要解析的url $url = ''; $param = [ 'appid' => $appId, 'appsecret' => $appSecret, 'url' =>

Python解析器源码加密系列之(二):一次使用标准c的FILE*访问内存块的尝试

摘要:由于近期打算修改Python解释器以实现pyc文件的加密/解密,出于保密的要求,解密之后的数据只能放在内存中,不能写入到文件中.但是后续的解析pyc文件的代码又只能接受FILE*作为入参,所以就提出了一种把通过FILE*来访问内存的需求,下文是针对这个需求的几个方面的尝试及其结论. 以下尝试的前提是:Win7 + VS2010. 在vc中,FILE其实就是_iobuf,定义如下: struct _iobuf { char *_ptr; //文件输入的下一个位置 int _cnt; //当前

GlusterFS源码解析 —— GlusterFS 源码安装

安装环境: CentOS6.2 glusterfs-3.4.3 GlusterFS 挂载需要 fuse 支持,如果你的内核版本低于 2.6.16 则需要下载fuse的源码包自行编译安装,也可下载 fuse 的rpm包.安装fuse的方法我就不说了,不会源码安装的直接去rpmfind.net上下载rpm即可.高于此版本的内核中已经有了fuse.ko的模块,需要的时候可以执行以下命令进行加载: modprobe -b fuse 1.下载GlusterFS的源码包,目前已经有更新版本 : wget h

Android中图片加载框架Glide解析2----从源码的角度理解Glide的执行流程

转载地址:http://blog.csdn.net/guolin_blog/article/details/53939176 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一张图片只需要一行代码就能实现,如下所示: Glide.with(this).load(url).into(i

HtmlAgilityPack --解析Html源码

最近项目需要从网络上抓取一下数据解析Html源码,奈何正则表达式难写,于是网上搜索找到了“ HtmlAgilityPack”类库,敏捷开发,果然效率非同寻常. 在此做笔记,写下心得,顺便给自己总结一下. 1. HtmlAgilityPack使用的是XPath进行路径搜索,如果对XML路径搜索很熟悉,用起来会得心应手 <?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book

用Beautiful Soup解析html源码

#xiaodeng #python3 #用Beautiful Soup解析html源码 html_doc = """ <html> <head> <title>The Dormouse's story</title> </head> <body> <b>测试</b> <p class="title"> <b>The Dormouse's

EventBus框架原理解析(结合源码)(下)

上一篇文章EventBus框架原理解析(结合源码)(上),给大家讲述了EventBus中实体类的封装和register()的具体代码. 接下来我们看另外一个重要方法post(),这个方法显然是要根据传入的参数类型,从subscriptionsByEventType取出对应的subscription /** Posts the given event to the event bus. */ public void post(Object event) {//event就是参数 PostingTh

C语言解析JSON源码

2020-01-09 关键字:cJSON.linux JSON解析 JSON 是一种在互联网领域内很常用的轻量级数据交换协议. 它与 XML 的地位差不多,但就笔者而言,笔者更喜欢 JSON 的风格,因为它更符合我们的思维习惯,同样一份数据,JSON 格式的就是比 XML 要清晰明了一些. 最近笔者需要在 C语言 上解析 JSON 格式,在网上一顿找,找到一份很不错的开源代码.经过一阵研究与修改以后,终于变成了让笔者用的很顺手的 C语言 版 JSON 解析器. 现将这份经笔者小小修改过的代码记录