Python实现超简单【抖音】无水印视频批量下载 2022-11-20 19:56 90阅读 0赞 ## 前言 ## 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:python乱炖 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取`http://t.cn/A6Zvjdun` ## 01 获取你喜欢的拍客的视频url ## 即抖音用户主页的url,我将以罗永浩的主页连接为例(本人第一次下载抖音就是冲着罗永浩去的,所以也只关注了他一个人) **1. 获取主页链接** 打开抖音,点进用户的主页面,点击右上角的三个点: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70] 选择分享: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 1] 再点击复制链接即可,我们可以获取如下`url:https://v.douyin.com/JJ8b6Hq/` **2. 获取重定向链接** 我们只需要将上面这个链接粘贴到chrome浏览器,就可以获取到重定向链接 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 2] 重定向后的链接: https://www.iesdouyin.com/share/user/4195355415549012?u_code=c23d6456gli&sec_uid=MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r×tamp=1590603009&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin * 1 现在我们需要记住url中/user后面的一串数字,也就是`4195355415549012`,这是我们的用户id。以后只要有了这样的用户ID,直接替换进url即可(时间戳也需要修改一下) ## 02 获取用户下面的所有的视频id ## 我们刚刚获取了视频主页的链接,现在我们要通过主页链接来获取当前页面下的所有视频。为了方便我们观看和调试,我们将Chrome开成iPhone模式。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 3] **1. 获取请求链接** 将Network设置成XHR,重新刷新一下页面,获取请求内容: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 4] 我们可以看到上面选中的那个请求,返回的是一串json,我们将内容复制下来看看,搜索返回的json中有关video的字段,通过下图我们就可以看到video里面有个url\_list,里面有两个不同的url,这两个url其实就是视频相关的地址了,但是还有点问题,这两个url点进去并不能直接看到视频。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 5] **2. 获取视频链接** 这里我们需要将url做一点点修改。我们将/play修改成/playmw就可以了,这个时候我们发现,这两个视频地址被重定向成正常的视频地址了。(下面来说为什么要加mw,这个代表什么) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 6] 这样我们就相当于顺利拿到视频的地址了,我们可以去json中获取所有的视频url链接: pattern = re.compile('"(https://aweme.snssdk.com/aweme/v1/play/.*?)"') result = pattern.findall(data) result = [i.replace("/play/", "/playwm/") for i in result] for i in result: print(i) * 1 * 2 * 3 * 4 * 5 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 7] **3. 水印问题** 关于水印问题,看了简书上有篇文章有介绍,水印与无水印之间的区别,这边我就不作详细介绍了。其实我们一开始拿到的url就是无水印的,但是链接本身并没重定向到无水印的视频,加上wm之后,url会重定向到有水印的视频。 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 8] ## 完整代码 ## import re import requests import os header = { "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding": "gzip, deflate, sdch, br", "accept-language": "en-US,en;q=0.8,zh-CN;q=0.6,zh;q=0.4", "cache-control": "no-cache", "x-tt-logid": "202005280227480100140460221A4FD1CF", "x-tt-trace-host": "01ec7cfa064a667fc06b9359628310d7439e62ebd3f237434a2ab55522586ad295c69c0af06484df374b32e14ddb3f000f9912025769ad3b7c6273355e56a9332d1901cddf01df6db00b0b6f4b3f159082", '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', 'cookie': 'tt_webid=6831576518742705677; _ba=BA0.2-20200528-5199e-qC83gMfiQQZIHGPAbWkc; _ga=GA1.2.1655972543.1590600365; _gid=GA1.2.843249182.1590600365' } data = { "sec_uid": "MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r", "count": "21", "max_cursor": "0", "aid": "1128", "_signature": "1rexVRAciIE-bZMoZ46qv9a3sU", "dytk": "96ad80961288263ad9d1cff2895d0636" } url = "https://www.iesdouyin.com/web/api/v2/aweme/post" url = "https://www.iesdouyin.com/share/user/4195355415549012?u_code=c23d6456gli&sec_uid=MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r×tamp=1590603009&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin" response = requests.get(url, headers=header) data = response.text pattern = re.compile('"(https://aweme.snssdk.com/aweme/v1/play/.*?)"') result = pattern.findall(data) result = [i.split("&ratio")[0] for i in result] result2 = [i.replace("/play/", "/playwm/") for i in result] for i in result: print(i) headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36', } if not os.path.exists("无水印"): os.mkdir("无水印") if not os.path.exists("水印"): os.mkdir("水印") count = 0 for res1 in result: count += 1 videoBin = requests.get(res1, timeout=5, headers=headers) with open(f'无水印/{count}.mp4', 'wb') as fb: fb.write(videoBin.content) count = 0 for res2 in result2: count += 1 videoBin = requests.get(res2, timeout=5, headers=headers) with open(f'水印/{count}.mp4', 'wb') as fb: fb.write(videoBin.content) [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70]: /images/20221120/720d012bb3114a6c809c25fc8d216e23.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 1]: /images/20221120/3ecd6c4dcdbb47e8822d4017391d0b0f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 2]: /images/20221120/ac47970e0d4742b0b5c35ae86ed9da6f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 3]: /images/20221120/9ab8830e519644ca9da2fdbbbcff48df.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 4]: /images/20221120/b26b23e68e3247408945223aef6c82f6.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 5]: /images/20221120/6e53335bd1974ac5a84caf60527955a7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 6]: /images/20221120/d4fb3e80df234582bc6c41ac00078c4a.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 7]: /images/20221120/fe0250d045b340d39de2d1d90008775c.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA_size_16_color_FFFFFF_t_70 8]: /images/20221120/81ad042b698d4dcbb386016bcbb14230.png 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 python3 抖音短视频链接去水印下载视频到本地 > 基于近段时间对抖音,快手,秒拍等视频抓取一直想搞一下。加了个QQ群,里面全是自媒体,就是抖音、快手、秒拍的视频搬运工,把一个平台搬到另外一个平台上,去除水印。降低被干掉的危 £神魔★判官ぃ/ 2021年09月15日 23:42/ 0 赞/ 347 阅读
相关 Python3之抖音无水印视频解析脚本 `因为服务器太渣,链接就不放出来了。记住返回的这个数据结构就可以了!` 在抖音,记录美好生活智商不在线的一瞬间 http://v.douyin.com/U3a3QD/ ╰半夏微凉°/ 2021年10月24日 08:11/ 0 赞/ 520 阅读
相关 用Python全自动下载抖音视频! 为什么写这篇文章,主要也是因为看了网易云课堂的一篇软广。 「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+ 刺骨的言语ヽ痛彻心扉/ 2022年02月02日 17:15/ 0 赞/ 361 阅读
相关 抖音去掉水印 一、想法由来 个人一直比较喜欢抖音上面有创意的小视频,但无奈水印太多,故想去之留片干净的土地! 二、具体操作 (1)复制抖音app原始链接,例如[这个][Link 青旅半醒/ 2022年04月02日 18:52/ 0 赞/ 178 阅读
相关 抖音快手去水印 抖音快手去水印 分享一个小程序 可以很方便的去抖音、快手这俩短视频的水印,然后一键保存到手机相册里 try——try——— ![小程序:小红 左手的ㄟ右手/ 2022年08月31日 17:46/ 0 赞/ 98 阅读
相关 python去除(京东,抖音,小红书等等)视频水印 1.安装FFmpeg [Download FFmpeg][] ![19397e750f089789088a5b3b30b40a0f.png][] ![06fcf644 ﹏ヽ暗。殇╰゛Y/ 2022年09月12日 08:57/ 0 赞/ 117 阅读
相关 一篇文章教会你使用Python下载抖音无水印视频 今天小编要跟大家分享的是,利用Python如何下载抖音无水印的视频;大家可能要问了,这个有什么用呢?当然有用了。那么有什么用呢?下面小编跟大家详细说说。 众所周知,由于如今短 偏执的太偏执、/ 2022年11月05日 11:06/ 0 赞/ 69 阅读
相关 Python实现超简单【抖音】无水印视频批量下载 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:python乱炖 PS:如有需要P 短命女/ 2022年11月20日 19:56/ 0 赞/ 91 阅读
相关 Python爬虫:短视频平台无水印下载(上) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 心已赠人/ 2022年11月29日 11:05/ 0 赞/ 43 阅读
相关 Python简单实现批量下载无版权图片 ![format_png][] 有时候我们有一些获取图片素材的需求,比如写博客或者公众号文章时,需要的插图和封面,当然这些图片必须是没有版权的免费图片,比较常用网站有pexe 偏执的太偏执、/ 2022年12月11日 17:26/ 0 赞/ 28 阅读
还没有评论,来说两句吧...