精华内容
下载资源
问答
  • 抖音去水印小程序前后端源码Web接口版
  • 微信有很多这样的去水印小程序,但每天限制只能免费下载一个,不然你就得开会员 想了个法子为什么不自己用Python爬呢? 第一步 首先看一下直接访问抖音得到的结果 接下来打开浏览器的开发者工具,看看视频的...

    对于做抖音短视频的爸爸们,肯定少不了每天下载几个无水印的视频来借鉴。

    微信有很多这样的去水印小程序,但每天限制只能免费下载一个,不然你就得开会员

    想了个法子为什么不自己用Python爬呢?

    第一步

    首先看一下直接访问抖音得到的结果

    接下来打开浏览器的开发者工具,看看视频的地址。 

    接下来就是重点了,首先你需要让你的浏览器能够修改UA,即爬虫经常用到的「User-Agent」。 

    在电脑上创建一个文件夹

     

    这个是文件夹的路径 

    C:\Users\111\Music\MV

    并且在根目录的命令行运行下面这段代码。

    open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/star-river/Documents/MyChrome

    这样就成功换成UA啦

     

    回到抖音页面的开发者模式

    发现「?item_ids」开头的这个接口就包含了我们想要的无水印抖音视频。

    这样「item_ids」和「dytk」参数值我们也知道了。

    不过我们直接用浏览器访问获取到的那两个链接是不会直接出现视频的,需要和上面的一样。

    最终Python代码实现:

    import requests
    import json
    import re
    
    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'cache-control': 'max-age=0',
        # 这个貌似很重要
        'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',
    }
    
    
    def download(url):
        """
        下载抖音无水印视频
        """
        # 获取接口参数
        html = requests.get(url=url, headers=headers)
        title = re.findall('itemId: "(.*?)",', html.text)[0]
        dytk = re.findall('dytk: "(.*?)" }', html.text)[0]
    
        # 拼接接口
        url_item = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + title + '&dytk=' + dytk
    
        # 获取抖音无水印视频链接
        html_item = requests.get(url=url_item, headers=headers)
        # 字符串转字典
        content = json.loads(html_item.text)
    
        # 视频接口
        url_video = content['item_list'][0]['video']['play_addr']['url_list'][1]
        response = requests.get(url_video, headers=headers, allow_redirects=True)
    
        # 获取重定向后的链接,这个也是无水印视频的下载链接,不过本次没用
        redirect = response.url
        print(redirect)
    
        # 视频是二进制,需要这种下载办法
        video = requests.get(url_video, headers=headers).content
        video_name = "douyin.mp4"
        with open(video_name, 'wb') as f:
            f.write(video)
            f.flush()
        print("下载完成")
    
    
    if __name__ == '__main__':
        # 抖音链接
        url = 'https://v.douyin.com/XJj85H/'
        download(url)

     

    记得带走我~

    展开全文
  • 先上小程序截图 (已放至个人公众号——多放香菜,欢迎食用): 原理 ①:先从抖音复制一条分享链接 3.3 vS:/ 认真的男人真帅气 %易烊千玺 %1104梦 https://v.douyin.com/ehX71Ks/ 复製此链接,打鐦Dou音搜索,矗接...

    先上小程序截图 (已放至个人公众号——多放香菜;或者直接小程序搜索——香菜自制去水印,欢迎食用):

    在这里插入图片描述

    原理

    ①:先从抖音复制一条分享链接

    3.3 vS:/ 认真的男人真帅气  %易烊千玺  %1104梦  https://v.douyin.com/ehX71Ks/ 复製此链接,打鐦Dou音搜索,矗接观kan视频!
    

    ②:过滤得到里面的网址

    https://v.douyin.com/ehX71Ks/ 
    

    用浏览器打开,现在是有水印的视频
    在这里插入图片描述

    ③:F12,调整为手机模式,发现链接重定向了

    在这里插入图片描述

    https://www.iesdouyin.com/share/video/6915316958011411720/?region=CN&mid=6891220646659918599&u_code=151h104f5&titleType=title&did=MS4wLjABAAAA8GYjYEmaRwC5VpDfQhXnToDK14cflTUq-8SNCVy0IMs&iid=MS4wLjABAAAAEi7dOTM-MR0caMQPnNN8FlX-Q97ML8q_0CMDxraPFaKz7Wq4tWeIwKDRNWg-x6nS&with_sec_did=1&utm_source=copy_link&utm_campaign=client_share&utm_medium=android&app=aweme&scheme_type=1
    

    ④:打开上面的链接地址,通过?item_ids=****************发现一个新的链接
    在这里插入图片描述

    https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6915316958011411720
    

    ⑤:打开步骤④所获得的链接,找到 play_addr 里面的 url_list ,就能获取到链接地址了
    在这里插入图片描述

    https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f560000bvs288eh0e8teji6ted0&ratio=720p&line=0
    

    ⑥:此时获取到的视频 还是有水印的,把链接其中的 playwm 替换成 play,就能得到无水印的原视频了

    https://aweme.snssdk.com/aweme/v1/play/?video_id=v0200f560000bvs288eh0e8teji6ted0&ratio=720p&line=0
    

    (ps,这里得到的链接,在电脑端可以直接,在微信小程序里面需要再重定向一次)

    源代码

    提供了电脑端直接下载 和 用微信小程序下载两种方式 ,也可以从 http://host:port/deWaterAndDown 直接用postman下视频

    源码已经上传到github了,欢迎stars([添加链接描述](https://github.com/yanhui-l/DouYinDeWater))

    展开全文
  • 一、开发前奏 1.背景 近几年短视频行业的兴起,涌现出抖音快手等优秀的app,...技术选型采用微信小程序做开发,一来是微信小程序发布后在android和ios都可以使用,二来是去水印只是个简单的小功能,没必要再开发一个

    一、开发前奏

    1.背景

    近几年短视频行业的兴起,涌现出抖音快手等优秀的app,但是在app上发现优秀视频想要下载到本地时,又奈何总是全程有水印又末尾有平台独白,搜索众多app和小程序大部分要嘛广告众多烦人,要嘛每天有解析次数限制,要嘛超过次数就要收费的。刚好本人是个码农,我想,那何不自己开发一个小程序解决自己需求的同时,又能够帮助他人呢(当初没想到竟然能盈利)。

    2.选型

    技术选型采用微信小程序做开发,一来是微信小程序发布后在android和ios都可以使用,二来是去水印只是个简单的小功能,没必要再开发一个单独的app。

    3.取名及logo

    因为需求就是为了解析抖音和快手的无水印视频,因此取名为抖快点去水印。而本人刚好又会一点PS,就省下了logo设计费,模仿抖音logo的设计思路,由dk两个字母设计出的logo,如下图:

    抖快点去水印

    二、抖快点去水印介绍

    1.主页面

    主页面

    2.解析抖音

    解析抖音

    3.解析快手

    解析快手

    三、运营及盈利

    1.发布上线

    功能界面还是比较简单的,就一个文本域、一个视频组件以及几个按钮,所以大概三两天就开发完成了,难点是通过视频分享的url解析出没有水印的视频,这一点跟踪一下http请求,解析一下结果也能够得出(原理在文末),刚好有个闲置的服务器虽然1C2G而已不过也够用了,因此开发到发布上线过审一切都很顺利。

    2.开通流量主

    一开始小程序只是为了满足个人的需求,所以也没想着去推广,过了大半个月登录后台一看,用户数竟然已经够开通流量主了,想着能补贴一点是一点那就个广告试试吧,所以在首页顶部加了个视频广告,没想到光靠个视频广告就能够产生收益。

    ps:没有添加激励广告、插屏广告等等,也不会强制要求用户需要点广告比如解析几次弹出激励视频必须看完之类的,毕竟初衷就是因为普遍去水印程序充满这类广告而自行开发,必然不会去做类似他们这种行为。

    数据统计

    3.产生收益

    据明细统计分析,曝光量的收益不高,点击量产生的收益占大部分。

    广告明细

    4.抛砖引玉

    虽然只是个工具类的小程序,每天访问人数也不多,但是每天也能有几块钱的收益。可想而知当小程序具有丰富内容,能够吸引足够的用户,靠小程序赚钱月入上万应该也不是梦。而且难点不在于技术,而是在于创意,如何开发出一个有意思的小程序,如何能够吸引用户带来足够的流量才是需要斟酌需要考虑的。

    四、抖音去水印原理

    1.获取分享地址

    一般来说,从平台分享复制链接,我们获取到的不仅仅是链接,还会包含视频信息等等,比如 复制信息 https://v.douyin.com/JrAm8N8/ 打开抖音看【#cos #带着抖音逛漫展 #二次元 】 ,那么第一步我们就需要利用正则表达式从一串文字中,提取出我们要的分享地址

    const url = '复制信息 https://v.douyin.com/JrAm8N8/ 打开抖音看【#cos #带着抖音逛漫展 #二次元 】'
    const reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
    if (reg.test(url)) { // 是否包含url链接
        // 获取链接
       const originUrl = url.match(reg)[0]
       ...
    }
    

    2.获取接口内容

    第一步,获取id

    我们将获取到的地址直接放到浏览器执行观察可得,分析地址只是个短链接,其会跳转到ResponseHeaders中的location地址上,并且注意链接中/share/video/后方跟随的一串数字6861797660169489671
    获取id

    第二步,获取接口

    再次观察接口,发现在该https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6861797660169489671接口中,返回了视频的所有数据,而视频的播放地址俨然在其中
    数据接口

    第三步,测试接口

    因此我们直接访问接口https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=${id},也就是https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=6861797660169489671,此时发现已经可以获取到数据了,那我们只需要解析该接口返回的数据获得我们想要的视频地址即可
    image.png

    第四步,地址替换

    当我们访问获得的视频地址发现,视频仍然是有水印的,不慌此时我们只需要将地址https://aweme.snssdk.com/aweme/v1/playwm/中的playwm替换成play 即可

    完结撒花

    测试中发现有时无法正确获得数据,此时只需要仿造成手机端访问接口即可,即加上请求头{"user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1"},再也没有出现过无法获取数据的情况。

    展开全文
  • spring 实现小程序抖音去水印后台 由于网上大量源码都是使用php实现的,大部分加密或者压缩,本人不懂php也不想学习php 实现原理 由于微信小程序服务端,必须使用https 进行解析,这就说明域名必须是备案的,想要...

    spring 实现小程序抖音去水印后台

    由于网上大量源码都是使用php实现的,大部分加密或者压缩,本人不懂php也不想学习php

    实现原理

    由于微信小程序服务端,必须使用https 进行解析,这就说明域名必须是备案的,想要获得不错的延时,那就必须使用国内的服务器,那就说明服务器也要备案。
    觉得比较麻烦的小伙伴可以,尝试玩耍,切勿较真。
    本教程针对于小程序后台实现

    说明

    • 在网上随便找个支持解析抖音无水印解析的网站,根据需求获得想要的json数据
      在这里插入图片描述
    • 使用小程序实现,那就有一个避不开的问题,下载地址必须是 https 而且 【抖音无水印解析地址】并不是固定的,大部是CDN链接,过了10min左右就会失效。所以必须换成自己搭建的固定的备案域名。
      在这里插入图片描述

    在这里插入图片描述

    后台实现思路

    • 【前台小程序】获取无水印下载链接返回给【后台】
    • 通过redis 缓存唯一标识符 并返回给小程序(用于小程序特定下载API)
    • 响应前台下载请求,通过小程序特定的下载API,响应下载并缓存到手机
    /**
     * @author Amewin
     * @date 2020/11/7 20:57
     * @description : 去水印类
     */
    @RestController
    @RequestMapping("/report")
    public class ReportController {
    
    	 @Autowired
        private JedisPool jedisPool;
        
        private static String contentType = "video/mp4";
        private static String disposition = "attachment;filename=003.mp4";
        /**
         * 将无水印保存进入redis
         * @param url 无水印解析地址
         * @return
         */
        @RequestMapping("/setPath")
        public String setPath(@RequestBody Map url) {
            String uuid = UUID.randomUUID().toString();
            String urlName = (String) url.get("url");
            //获取redis 连接对象
            Jedis resource = jedisPool.getResource();
            //切換Redis資料庫
            resource.select(2);
            //设置缓存 key-vaule
            resource.set(uuid, urlName);
            //获取指定范围随机时间
            int expiryTime= ThreadLocalRandom.current().nextInt(180, 270);
            //设置缓存失效时间
            resource.expire(uuid, expiryTime);
            return uuid;
        }
        /**
         * 去水印文件下载
         * @param response 写入请求头用于回调
         * @param uuid 
         * @return
         */
        @RequestMapping("/getFile")
        private String getFile(HttpServletResponse response, String uuid) {
            Jedis resource = jedisPool.getResource();
            resource.select(2);
            String urlPath = resource.get(uuid);
            String file = null;
            if (StringUtils.isEmpty(urlPath)) {
                file = this.getFile(response, urlPath, contentType, disposition);
            }
            return file;
        }
    	/**
         * @param response
         * @param url         下载路径
         * @param contentType 下载响应头 --> 响应格式 audio/mpeg | video/mp4 | image/jpeg
         * @param disposition 下载响应头 --> 响应文件名称 attachment;filename=003.jpg | 003.MP4| 003.mp3
         * @return
         */
        private String getFile(HttpServletResponse response, String url, String contentType, String disposition) {
            OutputStream out = null;
            InputStream inputStream = null;
            try {
                UrlResource urlResource = new UrlResource(url);
    
                response.reset();
                inputStream = urlResource.getInputStream();
                byte[] bytes = IOUtils.toByteArray(inputStream);
                if (bytes.length > 61440) {
                    //61440 60mb
                    out.close();
                    inputStream.close();
                    return "下载文件过大";
                }
                out = response.getOutputStream();
    
    //            response.setContentType("audio/mpeg");
    //            response.setHeader("content-Disposition", "attachment;filename=music.mp3");
    //            response.setContentType("video/mp4");
    //            response.setHeader("content-Disposition", "attachment;filename=video.mp4");
    //            response.setContentType("image/jpeg");
    //            response.setHeader("content-Disposition", "attachment;filename=003.jpg");
                response.setContentType(contentType);
                response.setHeader("content-Disposition", disposition);
                out.write(bytes);
                out.flush();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (out != null) {
                        out.close();
                    }
                    if (inputStream != null) {
                        inputStream.close();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
      }
    
    

    小程序后台实现js

    //获取应用实例
    var app = getApp(),
      n = ''
    Page({
      data: {
        videoSrc: '',
        dataUrl: ''
      },
      onLoad: function() {
        this.getdataUrl('dataUrl')
        this.setData({
          videoSrc: app.globalData.videoSrc,
          dataUrl: this.getdataUrl('dataUrl')
        })
      },
      download: function() {
        var t = this,
          e= t.data.dataUrl 
        wx.request({
          url: 'http://localhost:82/report/setPath.do',
          method: 'post',
          data: {
            url: e
          },
          success: function(p) {
            if (p.data !=null) {
              wx.showLoading({
                title: '保存中 0%'
              }), (n = wx.downloadFile({
                url: 'http://localhost:82/report/getFile.do?url=' + p.data,
                success: function (o) {
                  wx.hideLoading(), wx.saveVideoToPhotosAlbum({
                    filePath: o.tempFilePath,
                    success: function (o) {
                      t.showToast('保存成功,返回!', 'success', 1000), setTimeout(function () {
                        wx.setClipboardData({
                          data: null,
                        })
                      }, 1000)
                    },
                    fail: function (o) {
                      t.showToast('保存失败')
                    }
                  })
                },
                fail: function (o) {
                  n = null, wx.hideLoading(), t.showToast('下载失败')
                }
              })).onProgressUpdate(function (o) {
                100 === o.progress ? '' : wx.showLoading({
                  title: '保存中 ' + o.progress + '%'
                })
              })
            }
          },
          fail: function(t) {
            wx.hideLoading(), a.showToast('解析失败')
          }
        })
      },
      showToast: function(o) {
        var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 'none',
          n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1500
        wx.showToast({
          title: o,
          icon: t,
          duration: n
        })
      }
    })
    
    展开全文
  • 抖音去水印node预设代码 背景:之前用了第三方接口很快就挂了,收费之后也没理会了很长一段时间;最近发现市面又出现了很多去水印功能的小程序,第三方接口按调用收费很多,问了几个老哥说给钱就知道原理,所以自己...
  • 抖音视频是在下载的时候才加水印的,播放的时候无水印,所以原理就是利用PHP或其它语言去抓取这个用于播放的无水印的视频地址(大概走了 3 次重定向); 二、PHP 实现如下 ```php <?php // 测试地址 $url = ...
  • 给大家分享一个签到版去水印小程序源码. 再分享一个解析接口 接口地址填后台就行了 接口目前稳定运行 接口地址:https://www.0do.cn/api/dsp/325B9F6E5D1E8A3153E85387031D0E84ECED0912D5C0FDD8DC/202036986/?url= ...
  • 之前都是需要下载软件或者扫描小程序才行,现在发现一个在线的网站,http://douyin.dont996.com/ 直接打开,手机电脑都能用,里面输入抖音的分享链接,就能自动获取到抖音无水印视频,和背景音乐,就是有的浏览器点...
  • 网页版的登入:http://dsp.33333.icu 微信小程序:蜜柚去水印 直接扫码进入 支持解析下载:抖音、快手、今日头条、火山、微视、西瓜视频、微博、秒拍、小咖秀、晃咖、美拍、网易云音乐、陌陌、皮皮虾、小影、映客、...
  • 解析接口是普通接口只能解析短视频 其中用到了读取剪辑版数据和相册保存 剪辑版数据 wx.getClipboardData({ success: res => { var str = res.data.trim() if (str) { that.setData({ defaultUrl: str ...
  • mosousuo.com 抖音视频去水印微信小程序 记得替换你的appid 解析接口是普通接口只能解析短视频 其中用到了读取剪辑版数据和相册保存 download 合法域名设置 小程序后台先加入合法域名 剪辑版数据 wx....
  • 程序亲测可用 去除授权了,后台可以自己替换解析接口 需要微擎框架,请自行寻找框架,(也可提供一键搭建服务) 后端 正常安装在微擎,看图 -配置自己的信息即可 前端 用微信开发者工具打开修改 siteinfo.js文件内的...
  • 1.抖音(批量视频去水印,单个视频去水印) 2.快手 (单个视频去水印) 二、开发语言 前端:微信小程序 后端:node.js 三、完成功能 1.微信授权登录 2.获取视频内容 3.保存去水印视频到本地 4.减少用户下载次数 四、...
  • 一、小程序内部截图 二、无水印视频截图 三、使用方法 复制视频链接到小程序内解析→保存视频到相册即可 四、关注微信公众号点击去水君进入小程序,或微信扫描二维码进入小程序 五、本小程序完全免费使用,有时...
  • 已取消授权,任何站点都可安装,自己改了前端界面,看起来更舒服。 自带接口,可调用别人的接口和自己的接口。
  • 去水印接口 请求地址:http(s)????/www.0do.cn/api/dsp/{clientSecretKey}/{clientId}/?url={短视频链接,记住是纯链接} 接口申请地址: www.0do.cn 请求方式:GET clientId:(必填)请在/getapi.html查看 ...
  • 今天给大家推荐一个抖音,快手去水印小程序,去水印完成后,可以直接保存抖音,快手,火山无水印视频到相册,并且是免费的。 去水印效果如下,使用方式,微信扫下面的小程序码就可以打开使用了,非常简单: ...
  • 今天给大家找到了两个免费的去水印工具,一款是微信小程序,一款是app,都是完全免费免费的,喜欢的可以下载收藏。 第一个是微信小程序:全网一键去水印工具 微信扫描下面的小程序码,即可轻松使用。
  • 2021增强版短视频去水印源码 去水印微信小程序源码网站 去水印软件源码 安装环境(需要材料):备案域名–服务器安装宝塔-安装 Nginx 或者 Apache php5.6 以上-安装 sg11 插件 小程序已自带解析接口,支持全网...
  • 短视频在线解析网站PHP源码,是一款支持解析任何抖音视频去水印还原最初视频的网站,只需要获取抖音小视频的视频链接,然后复制到网站进行解析,即可获取无水印抖音视频!! 使用方法: 打开抖音短视频APP,点开某个...
  • 去水印小程序好做吗?赚钱吗?

    千次阅读 2020-10-06 11:29:34
    今天我们来说说去水印小程序,有的人已经利用去赚了很多钱,我自己呢?其实我自己做的小程序一天能达到800吧!那么今天就来讲下,去水印到底怎么去赚钱,好不好搭建! 我们先讲一下怎么做吧!只是一个简单的讲述,...
  • 小程序无需服务器搭建,内含接口,支持抖音,快手图集,皮皮虾等平台源码开源无加密, 另外内支持视频压缩,视频裁剪等等功能!
  • [抖音短视频APP里虽然有保存视频的按钮,但这种方式保存的视频右下角有抖音的水印](http://www.webcc.vip/douyin) 所以,写这篇文章来分享如何下载没有水印的抖音视频到本地。 且不需要安装任何软件和插件。...
  • 推荐一个简单好用的去水印小程序,目前还不会限制使用次数,支持抖音、火山、快手、头条等各大小视频去水印,快来试试吧!
  • 抖音视频自己保存的都带有抖音的logo和视频片尾,让一些做自媒体和搬运工的朋友感到不爽,想要搬运还有水印,于是网上出现好多视频无水印解析的网站,包括微信小程序和公众号都在做,引流也确实可以,但是大部分都是...
  • 抖音去水印的方法

    千次阅读 2019-01-30 16:48:08
    今天小编要和大家分享的是快速去除抖音短视频里面的水印的方法 快捷方便 无需无需下载任何软件 微信打开扫一扫下列... 接下来打开微信小程序页面 搜索:“去水印小神器” 对应的小程序   然后...
  • 全新QQ去水印小程序源码 支持短视频例如支持腾讯视频,爱奇艺,抖音,快手,微视,皮皮虾,小咖秀,最右等等,一键解析视频,去除水印视频,关键可以直接保存到相册,或者复制链接到浏览器下载,这点非常好用,里面...

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 240
精华内容 96
关键字:

抖音去水印小程序