抖音视频去水印小程序
static getNoWatermarkUrl(itemId) {
return new Promise((resolve, reject)=>{
const api = `${videoInfoApi}${itemId}`;
request.get(api, async (err, res) => {
if(JSON.parse(res.body).item_list.length) {
const noWatermarkUrl = JSON.parse(res.body).item_list[0].video.play_addr.url_list[0];
const linkStr = noWatermarkUrl.replace('playwm', 'play');
const link = await this.getRealNoWatermarkLink(linkStr);
resolve({
link,
originLink: linkStr
});
} else {
resolve('');
}
})
});
}
2、Node如何获取重定向的url
2.1 安装并引入依赖
npm install puppeteer@2.1.1 --save
const puppeteer = require('puppeteer');
2.2 使用获取url
getNoWatermarkVideoLink(linkStr){
return new Promise(async (resolve, reject) => {
const browser = await puppeteer.launch({
headless: false, // 部署到服务器时需要设置成true
// executablePath: ‘....’, // 部署到服务器时需要配置chrome在服务器中的安装位置
slowMo:30,
args: ['--no-sandbox', '--disable-setuid-sandbox']
});
const page = await browser.newPage();
await page.goto(linkStr);
const link = page.url();
await browser.close();
resolve(link);
});
}
在配置抖音无水印视频的合法域名时抖音无水印视频怎么下载,发现抖音有N多个二级域名。 显然抖音无水印视频怎么下载,不可能将抖音的所有二级域名都添加到微信小程序的合法域名配置中。
所以考虑是否可以使用自己的服务器作为中转站? 方案是可行的,但是会增加个人开发的成本,所以pass就丢了。
通过多次请求获取抖音视频信息接口,发现获取到的无水印地址会发生变化,于是想到了解决方案,只需要配置一部分合法域名,通过多次请求直到匹配到合法域名配置。 可以返回域名给前端下载
代码:
const linkArr = [
'https://v26-cold.douyinvod.com',
'https://v83-016.douyinvod.com',
'https://v1-cold1.douyinvod.com',
'https://v5-g.douyinvod.com',
'https://v95-p.douyinvod.com',
'https://v95-p-cold.douyinvod.com',
'https://v5-coldb.douyinvod.com',
'https://v9.douyinvod.com',
'https://v6-cold.douyinvod.com',
'https://v3-cold1.douyinvod.com',
'https://v3-cold2.douyinvod.co',
'https://v27-cold.douyinvod.com',
'https://v95-zj-cold.douyinvod.com',
'https://v95-zj.douyinvod.com',
...
]
这里我只配置了四十多个二级域名
// 域名重置到合法域名内
do {
linkResult = await DouyinDelWatermark.getNoWatermarkUrl(itemId);
domainArr = linkResult.link.split('com/');
domain = domainArr.length ? domainArr[0]+'com' : '';
result = linkArr.indexOf(domain) > -1;
count --; // 控制循环次数以免死循环
} while (count > 0 && !result);
if(linkResult.link && result) {
count = 15;
throw new global.errs.Success('成功去除水印', 0, {
link: linkResult.link,
originLink: linkResult.originLink
})
} else if(linkResult.link && !result) {
count = 15;
throw new global.errs.NotFound('该链接无法去除水印');
} else {
count = 15;
throw new global.errs.NotFound('未获取到有效资源');
}
以上就是抖音视频去水印小程序开发的全过程,希望对大家有所帮助。
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1744513473@qq.com 举报,一经查实,本站将立刻删除。
THE END
二维码
共有 0 条评论