用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

微信小程序实现去抖音视频水印

Rolan 2019-11-11 00:52

先放效果图可以扫码或者微信搜索 “ 和水印说拜拜 ” 小程序体验一下。有效再继续往下看吧。实现原理抖音视频上传后,是有2个视频地址,(长视频还会多一个),一个是无水印的,一个是有水印的,万能的网友经过爬虫 ...

先放效果图

可以扫码或者微信搜索 “ 和水印说拜拜 ” 小程序体验一下。有效再继续往下看吧。

实现原理

抖音视频上传后,是有2个视频地址,(长视频还会多一个),一个是无水印的,一个是有水印的,万能的网友经过爬虫后,拿到了这个链接,那就可以实现保存无水印的视频了(去水印)。

先上代码

1、里面是一个PHP文件,把你输入的抖音链接,转为无水印的链接输出。不建议把这个转换算法写死在本地,因为这个转换算法随时会变,所以用PHP实现,然后客户端或者微信小程序调用。

  1. <?php
  2. header('Content-type: application/json');
  3. $_u = $_GET['_u'];
  4. function _g($_u, $_n = 0) {
  5. $_h = curl_init();
  6. curl_setopt($_h, CURLOPT_URL, $_u);
  7. curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($_h, CURLOPT_HEADER, false);
  9. curl_setopt($_h, CURLOPT_HTTPHEADER, array(
  10. 'user-agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Mobile Safari/537.36'
  11. ));
  12. if ($_n == 1) {
  13. curl_setopt($_h, CURLOPT_NOBODY, 1);
  14. curl_setopt($_h, CURLOPT_FOLLOWLOCATION, 1);
  15. curl_exec($_h);
  16. $_r = curl_getinfo($_h, CURLINFO_EFFECTIVE_URL);
  17. } else {
  18. $_r = curl_exec($_h);
  19. }
  20. curl_close($_h);
  21. return $_r;
  22. }
  23. if (strpos($_u, 'com') !== false) {
  24. $_u = _g(_g($_u, 1));
  25. preg_match('/class=\"video-player\" src=\"(.*?)\" preload/is', $_u, $_m);
  26. $_m = str_replace("line=0", "line=1", str_replace("playwm", "play", $_m[1]));
  27. $_v = _g($_m, 1);
  28. if ($_v == '') {
  29. $_c = 0701.1;
  30. $_s = 'error';
  31. } else {
  32. $_c = 0;
  33. $_s = 'success';
  34. }
  35. } else {
  36. $_c = 0701.2;
  37. $_s = 'url does not match';
  38. }
  39. echo json_encode(array(
  40. "code" => $_c,
  41. "errMsg" => $_s,
  42. "videoUrl" => $_v,
  43. "tmp" => time()
  44. ) , JSON_UNESCAPED_SLASHES);
  45. ?>

把这个PHP文件丢到你的服务器,然后访问https://xxxx.com/douyin.php?_u=https://sss抖音链接 然后就会返回对应的信息,例如:

  1. {
  2. "code": 0,
  3. "errMsg": "success",
  4. "videoUrl": "https://aweme.snssdk.com/aweme/v1/play/?s_vid=93f1b41336a8b7a442dbf1c29c6bbc56827bba338da58fff9d414d5e0e891260a1c391d356de42072e5c7b4c15e93325052710f7923662532737d5c3f25a856e&amp;line=1",
  5. "tmp": 1568018629
  6. }

这个videoUrl就是无水印的视频地址,可以直接在小程序 标签里面播放,但是在小程序里面,这个是保存不了的,很奇怪,我试了很多次,都是提示类型无效。所以,我是直接让用户复制这个链接,然后在QQ浏览器打开,就能下载视频。(如果有人知道小程序怎样能保存这个视频,请联系我,我做了一个微信小程序的代码片段,你们可以拿去试下。地址:https://developers.weixin.qq.com/s/f5e4RbmR7kbH

如果是客户端使用的话,是可以直接保存的,后缀名为mp4,能直接下载保存。

核心代码

  1. $_u = _g(_g($_u, 1));
  2. preg_match('/class=\"video-player\" src=\"(.*?)\" preload/is', $_u, $_m);
  3. $_m = str_replace("line=0", "line=1", str_replace("playwm", "play", $_m[1]));
  4. $_v = _g($_m, 1);

上面的PHP,其实主要就是这里,把接收的抖音链接,进行一个正则转换替换字符,然后再输出链接。

最后说几句

这个转换的算法,应该是抖音随时更换的,不保证永远有效,但截至发帖,都是有效的,建议大家去扫一下小程序,看看能不能转换,能的话,即表明还能用。

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: 在寻找雪见的景天 来自: 简书