一、前言
翻了翻爬虫代码存货,决定把抖音APP视频批量下载的代码拿出来做个文章。

二、实战背景
抖音越来越火,越刷越上瘾,总感觉下一个视频一定会更精彩,根本停不下来。想将抖音里喜欢的小哥哥/×××姐的视频全部存到电脑硬盘里该如何操作?不想有抖音的视频水印该如何处理?

当初写完代码的截屏:

python一键去抖音视频水印工具,请勿用于学习以外的用途!

三、实战
首先,希望你已经具备手机APP抓包分析的能力。

1、带水印视频下载

先说说带水印的视频如何抓去吧。在定好爬取目标的时候,我们应该知道自己需要那些步骤完成这项任务。比如本文中提到的任务:抖音APP固定用户的视频批量下载。

思考过程:

想要批量下载视频首先要获得这些视频的链接;
想要获得这些视频链接可以通过用户的主页进行查看,想进用户主页,我得知道用户主页链接;
用户主页链接可以通过抖音APP的搜索功能获取,那么搜索功能接口如何获取?当然是抓包看看喽!
瞧,这样思考下来,问题是不是梳理的很清楚?

搜索接口:

那么接下来就是抓包分析了,抓包过程请自行尝试。步骤是这样的:

配置好Fiddler,即确定Fiddler可以对手机APP进行抓包;
在手机APP搜索框中输入用户信息,点击搜索;
在Fiddler找到搜索接口;
分析这个接口传递参数规则;
写代码生成相应查询接口。
通过分析你会发现,我们通过搜索接口返回的JSON数据可以找到用户主页信息,接下里用同样的方法抓取主页用户信息再分析一波,这时候就遇到问题了,你会发现用户主页链接使用了as和cp参数进行了加密,这该如何是好?比如链接如下:

https://aweme.snssdk.com/aweme/v1/aweme/post/?user_id=63386731255&max_cursor=0&count=20...&as=a18575a0311bfa0c2d&cp=55bba65311d10ccde1
上述链接省略号部分是一些手机信息,这部分不是必须参数,可以省略。user_id是用户id可以通过上个搜索接口获取,count是用户视频数量,同样可以通过上个搜索接口获取。那最后的as和cp参数怎么办?

我没有逆向抖音APP,就是小小测试了一下,看看能不能绕过这个加密接口?抖音APP自带视频分享功能,分享链接格式如下:

https://www.douyin.com/share/video/6511132370416962829/?region=CN...share_iid=28037626243
中间参数都不重要,在此省略。www.douyin.com域名下存放的是分享的视频,那么这个用户主页信息是否可以通过这个域名进行访问呢?小小测试一下你会发现,完全没有问题!

https://www.douyin.com/aweme/v1/aweme/post/?user_id=63386731255&max_cursor=0&count=20

这就是没有加密的接口,惊不惊喜,意不意外?根据这个用户主页接口,我们就可以轻松获取用户主页所有的视频链接了。

2、无水印视频下载

方法一:

无水印视频下载很简单,有一个通用的方法,就是使用去水印平台即可。

我使用的去水印平台是:http://douyin.iiilab.com/

在输入框中输入视频链接点击视频解析,就可以获得无水印视频链接。

这个网站当初我写代码的时候是好使的,当初用这个网站下了一些无水印视频,不过写这篇文章的时候发现这个取水印平台无法正常解析了,等它修复好了再用这个功能吧。

这个平台不仅包括抖音视频去水印,还支持火山、快手、陌陌、美拍等无水印视频。所以做一个这个网站的接口还是很合适的。

简单测试了一下,这个网站的API是需要付费解析的,如果通过模拟请求的方式有些困难,因此决定上浏览器模拟器Splinter。

这里使用方法就不累述,不过有一点可以说的是,我们可以配置headless参数,来将Splinter配置为无头浏览器,啥事无头浏览器呢?就是运行Splinter不调出浏览器界面,直接在后台模拟各种请求,很是方便。

这部分的代码很简单,无非就是填充元素,确定解析按钮位置,点击按钮,获取视频下载链接即可。这点小问题,就自行分析吧。

整体代码:

python一键去抖音视频水印工具,请勿用于学习以外的用途!

方法二:

这个方法是通过网友的反馈得知的,对下载链接直接修改即可得到无水印下载链接。

download_url = video_html['video']['play_addr']['url_list'][0].replace('playwm','play')
方法简单粗暴,很好用。好处就是处理速度飞快,缺点是这种方法通用性不强,不同视频发布平台的打码方法可能有不同,需要自行分析。

四、总结
玩爬虫的日子还是很有意思的,好久没有那种舒爽感了。还有,找工作也是蛮心累的事。

python一键去抖音视频水印工具,请勿用于学习以外的用途!

转载于:https://blog.51cto.com/13313971/2315263

python一键去抖音视频水印工具,请勿用于学习以外的用途!相关推荐

  1. 如何去掉抖音短视频水印----全网最好用的去抖音视频水印方法

    抖音视频去水印最方便的方法是什么呢?就是直接保存.用去水印版的安装包,安装好之后,喜欢的视频直接保存就可以去水印,全网最好用的方法.不需要复制链接,解析视频再下载等一系列烦琐操作. 视频版操作方法在这 ...

  2. 手写一个抖音视频去水印工具,千万别刚一个程序员

    百因必有果 说一下我为什么要做个抖音视频去水印工具,其实是因为我的沙雕女友,她居然刚我~ 有天晚上她在抖音看见一个非常具有 教育意义 的视频,"男人疼媳妇就该承包全部家务活",然后 ...

  3. python爬取抖音用户数据_使用python爬取抖音视频列表信息

    如果看到特别感兴趣的抖音vlogger的视频,想全部dump下来,如何操作呢?下面介绍介绍如何使用python导出特定用户所有视频信息 抓包分析 Chrome Deveploer Tools Chro ...

  4. 【python小白】抖音无水印视频下载小工具(windows)

    无水印视频的方法大家都已经知道了,我很早之前也写了一个脚本.最近学习了一下下pyside2,所以我用python写了一个小工具. 运行图: from PySide2.QtWidgets import ...

  5. python批量下载抖音无水印视频,附软件

    网上很多那种抖音视频解析,去水印下载的网站,不过都只可以下单个,下下来大多数标题还是乱码.一点都不geek. 咱们懒人找资源的粉丝最大的优点就是懒,这种重复性的活python帮咱们搞定. 批量下载抖音 ...

  6. 抖音视频剪辑工具有哪些?有没有教程?

    现在年轻人最火的是什么娱乐,详细很多人都毫无疑问的说抖音短视频.同时也有很多年轻人也习惯用短视频去记录自己的生活,但是想要做出好的视频就要学会运用好视频剪辑软件,今天牛商网就给大家分享最全的抖音视频剪 ...

  7. Python爬虫之抖音视频批量提取术

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

  8. 【Python 字符视频】Python 实现将抖音视频转换成字符视频

    以前就在抖音上看到过字符视频,直到昨天才突然想自己动手做一个,然后就利用各种博客,自己总结 兼 借鉴,终于完成了字符视频的制作 一.思路: 众所周知,视频是一帧一帧的图片组成的,所以我想的就是将抖音的 ...

  9. Python批量下载 抖音无水印视频!

    导读: 本文 介绍了如何使用简单的Python爬虫爬取抖音上你喜欢的拍客的所有视频(包含 有水印和 无水印两种 ). 代码已上传至公众号后台,回复: 抖音 即可获得. 一.获取你喜欢的拍客的视频url ...

最新文章

  1. 聊聊Cassandra的FailureDetector
  2. 【百家稷学】深度学习计算机视觉生产实习(山西农业大学暑期实训)
  3. react安装_超全面详细一条龙教程!从零搭建React项目全家桶(上篇)
  4. Vue报错:Elements in iteration expect to have ‘v-bind:key‘ directives的解决办法
  5. PRML-系列一之1.2
  6. 解析对象体内与方法体内引用内部方法的不同
  7. ARCHLINX设置静态ip使用
  8. 【原创】StackDocklet 完美攻略
  9. 多线段几何图形—— 简单几何图形(多边形三角形化)
  10. 网站实现GNSS数据批量下载
  11. 大学为什么没有UI设计专业
  12. 微信小程序---快速上手云开发
  13. 少儿编程pythonppt-五年级的孩子学编程有没有意义?
  14. 2021第五届航交会暨全球物流博览会向航运物流产业链人士发出邀约!金秋十月,共聚宁波!
  15. js中元素样式设置的六种方法
  16. 【狂神说Java】JavaWeb入门到实战(学习笔记)
  17. 【Mybatis源码】源码分析
  18. 【java 】 for循环中冒号作用
  19. 迷路的奶牛 Farmer John C++
  20. 什么是黑客?黑客伦理和信息时代的精神

热门文章

  1. ExpandableListView的使用以及更换前边的图片
  2. 数字中国·星火文集 | 架构师的修炼
  3. WPF使用Emgu.CV播放RTSP视频可编辑视频显示大小
  4. linux下将qt程序打包成appimage程序
  5. 计算机考研复试计算机网络常见面试题
  6. DMSQL程序设计相关
  7. jquery-操作元素
  8. ios微信浏览器动态修改title
  9. GDP-Fucose,GDP-Fuc,cas15839-70-0,GDP-L-岩藻糖
  10. 底层优化(一) sum += fuc(x)