本人在github开源的“魔搜短视频解析小程”序有幸得到各位的支持,就此本文章将常见的问题都给说明,如有未能答到的,可以在文章下方联系本人微信反馈。开源地址
https://github.com/ithere/douyindownload-miniapp
基础问题不做回答,小白玩家请自行搜索如何申请小程序
基础问题不做回答,如有疑问请直接某度搜索如何搭建小程序.这里只给大家指出appid
各位填写自己申请的即可
在根目录的pages文件夹下有个app.json
根据你自己的喜好决定更改或者不更改appid
/pages/app.json
"navigateToMiniProgramAppIdList": [
"填写你的APPID"
],
本人没有其他视频解析的接口,只提供了某音的接口作为大家参考的例子,基于此。大家可直接在app.js
内更改接口地址即可
/pages/app.js
globalData: {
userInfo: null,
default: 'https://v.ataobao.vip/api/'
}
请前往小程序后台,开发设置内填写合法域名,如不确定是在哪个类型填写就直接4个类型都填上api解析地址,需要注意:前缀不同代表不同的地址,请注意区分
本地开发请在编辑器里勾选不校验域名信息
本条内容不适合小白观看,此类以代码思路为主,讲解如何投机使用合法域名或中转来达到下载。
// 比如解析出来的视频地址有 v1-dy v2-dy v3-dy ... v9-dy 将此9条或更多加入到自己小程序合法下载域名内
// 设置匹配数组
var matchArr = ['v1-dy.', 'v2-dy.', 'v3-dy.','v4-dy.', 'v5-dy.', 'v6-dy.','v7-dy.', 'v8-dy.', 'v9-dy.'];
var flag = 0
for (const i in matchArr) {
if (res.msg.url.indexOf(matchArr[i])) {
// 执行下载逻辑
// ... 下载逻辑
flag = 1
break
}
}
if (!flag) {
// 执行解析逻辑 继续解析接口 在匹配 直到匹配完成 或 匹配10次未成功则提示 请重新解析
}
此处以php为例 大家可以根据自己的技术栈自行编写
function GetMp4File($file) {
$size = filesize($file);
header("Content-type: video/mp4");
header("Accept-Ranges: bytes");
if(isset($_SERVER['HTTP_RANGE'])){
header("HTTP/1.1 206 Partial Content");
list($name, $range) = explode("=", $_SERVER['HTTP_RANGE']);
list($begin, $end) =explode("-", $range);
if($end == 0){
$end = $size - 1;
}
}else {
$begin = 0; $end = $size - 1;
}
header("Content-Length: " . ($end - $begin + 1));
header("Content-Disposition: filename=".basename($file));
header("Content-Range: bytes ".$begin."-".$end."/".$size);
$fp = fopen($file, 'rb');
fseek($fp, $begin);
while(!feof($fp)) {
$p = min(1024, $end - $begin + 1);
$begin += $p;
echo fread($fp, $p);
}
fclose($fp);
}
GetMp4File("demo.mp4");
注意,文中的“编写/修改”需有一定编程基础的童鞋操作。
以上方法可以解决出现的90%的问题 剩下的可以通过重启解决,如还不能解决可以考虑换个电脑.~
欢迎关注我的公众号“魔搜索”,原创技术/资源/活动文章先行推送。