用Python下载抖音无水印视频
分享学习Python爬虫、数据分析、数据挖掘的点滴。
最近发现了抖音无水印视频的下载方法。
# 抖音接口
「url」参数值就是从抖音上复制的链接。
##Python下载
首先来看一下,直接访问抖音链接得到的结果。
妥妥的水印…
接下来打开浏览器的开发者工具,看看视频的地址。
可以发现「playAddr」就是视频的地址,复制然后访问。
链接会重定向到以「v9」开头的链接,然而还是有水印。
接下来就是重点了,首先你需要让你的浏览器能够修改UA,即爬虫经常用到的「User-Agent」。
我用的是Mac+谷歌浏览器,就说说我自己怎么修改的。
Windows的请自行百度~
首先在电脑的文稿中创建一个文件夹。
这个文件夹的路径如下。
/Users/star-river/Documents/MyChrome
并且在根目录的终端运行下面这段代码。
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/star-river/Documents/MyChrome
如此我的谷歌浏览器就能成功更换UA啦!
还是直接访问抖音的链接,可以看到结果和最初的不一样。
就在这个模式下查找接口。
发现「?item_ids」开头的这个接口就包含了我们想要的无水印抖音视频。
就是「play_addr」下的列表中的那两个链接。
其中「?item_ids」开头的这个接口有两个参数需要我们在另一个接口中获取。
这样「item_ids」和「dytk」参数值我们也知道了。
不过我们直接用浏览器访问获取到的那两个链接是不会直接出现视频的,需要和上面的一样。
也改变一下UA,这里的链接如果还用「iPhone X」这个UA访问,会失败。
什么原因,小F就不得而知了…
把浏览器UA改为「Responsive」即可访问,链接会重定向。
这样无水印的抖音视频就搞定了。
不过要是每个视频都需要这么下载,就太麻烦了。
所以写了用Python就可以下载视频的代码。
import requests
import json
import reheaders = {'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.urlprint(redirect)# 视频是二进制,需要这种下载办法video = requests.get(url_video, headers=headers).contentvideo_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)
无水印视频完美下载。
##接口下载
既然知道了如何用Python下载视频。
那么小F想让大家下载的更方便一点,所以将程序部署到了服务器上。
你只需要通过小F的接口即可下载视频,代码如下。
from flask import Flask, request, send_file
import requests
import json
import reapp = Flask(__name__)# 只接受get方法访问
@app.route("/douyin/", methods=["GET"])
def check():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',}# 默认返回内容return_dict = {'code': 1, 'result': False, 'msg': '请求成功'}# 判断入参是否为空if request.args is None:return_dict['return_code'] = '504'return_dict['return_info'] = '请求参数为空'return json.dumps(return_dict, ensure_ascii=False)# 获取传入的参数get_data = request.args.to_dict()url = get_data.get('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)# 获取视频相关的信息# data = {}# 视频的描述# data['videoDesc'] = content['item_list'][0]['desc']# 视频的封面图,小图# data['dynamiCoverUrl'] = content['item_list'][0]['video']['dynamic_cover']['url_list'][0]# 视频的封面图,大图# data['staticCoverUrl'] = content['item_list'][0]['video']['origin_cover']['url_list'][0]# 视频的评论数# data['comments'] = content['item_list'][0]['statistics']['comment_count']# 视频的点赞数# data['prise'] = content['item_list'][0]['statistics']['digg_count']# 视频接口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)# 视频的下载链接# data['videoPlayAddr'] = redirect# 返回视频的信息# return_dict['result'] = data# 返回结果# return json.dumps(return_dict, ensure_ascii=False)video = requests.get(url=redirect, headers=headers).contentvideo_name = "douyin.mp4"with open(video_name, 'wb') as f:f.write(video)f.flush()return send_file('douyin.mp4')if __name__ == "__main__":# 本地调试app.run(debug=True)# 部署上线# app.run(host='127.0.0.1', port=443)
如果本地安装了Flask以及Requests库,这个程序是可以直接运行。
并且能够下载到你所想要的无水印抖音视频。
# 本地接口
http://127.0.0.1:500/douyin/?url=https://v.douyin.com/CoQBx1/
部署到服务器上的话,则需要使用443端口。
文末
您的点赞收藏就是对我最大的鼓励!
欢迎关注我,分享Python干货,交流Python技术。
对文章有何见解,或者有何技术问题,欢迎在评论区一起留言讨论!
用Python下载抖音无水印视频相关推荐
- 用Python下载抖音无水印视频!
不知不觉距离小F最开始写的一篇抖音文章,时间也过了一年. 用Python全自动下载抖音视频! 上面这一篇阅读量是所有文章中阅读量最高的,当然还有另外两篇相关的. 用Python生成抖音字符视频! 用数 ...
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...
- python无水印下载视频_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- 抖音上的python课程_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- python下载抖音无水印视频
只要一刷抖音视频,基本上就是停不下来,看到一些喜欢的视频,就想下载下来,但是通过正常手段下载的视频都会带有抖音的水印,今天就一起来使用非正常手段来看看怎么获取无水印抖音视频. 1.获取视频链接地址 这 ...
- python抖音github_使用 Python 下载抖音无水印视频
抖音 APP 中保存到本地就是无水印版本的,所以头条的服务器肯定是保存有无水印版本的抖音视频的,所以只要找到接口地址就可以搞定.先在网上搜罗了一圈,确实有人已经做了解析,还提供了收费解析服务. 搜索之 ...
- 使用Python下载抖音无水印视频
抖音 APP 中保存到本地就是无水印版本的,所以头条的服务器肯定是保存有无水印版本的抖音视频的,所以只要找到接口地址就可以搞定.先在网上搜罗了一圈,确实有人已经做了解析,还提供了收费解析服务. 搜索之 ...
- Python批量下载 抖音无水印视频!
导读: 本文 介绍了如何使用简单的Python爬虫爬取抖音上你喜欢的拍客的所有视频(包含 有水印和 无水印两种 ). 代码已上传至公众号后台,回复: 抖音 即可获得. 一.获取你喜欢的拍客的视频url ...
- python批量下载抖音无水印视频,附软件
网上很多那种抖音视频解析,去水印下载的网站,不过都只可以下单个,下下来大多数标题还是乱码.一点都不geek. 咱们懒人找资源的粉丝最大的优点就是懒,这种重复性的活python帮咱们搞定. 批量下载抖音 ...
- python下载b站视频_【python】抖音无水印视频下载和b站视频下载
本帖最后由 370125229 于 2020-3-27 17:38 编辑 萌新一枚,拿这个练练手 用python写的,部分视频可能还是会有水印 抖音 蓝奏: https://www.lanzous.c ...
最新文章
- css水平垂直居中_css 如何实现水平居中、垂直居中(超全面)
- 分布式监控报警平台Centreon之:Centreon安装(1)
- 开发日记-20190622 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- class-感知机Perception
- 用c语言绘制自定义图形,Android使用自定义View绘图
- [转]CISCO IOS命名规则
- 原 jQuery基础修炼圣典—DOM篇
- 安装在电脑上的网络测试软件,iperf3 网络测试工具
- 1. 概述--从零起步实现基于Html5的WEB设计器Jquery插件
- Python Tkinter Grid布局管理器详解
- Android Span 进阶
- 电子书籍下载第一强贴
- 初级计算机硬件试题,初级计算机考试题库
- 不写代码,把网站速度优化 10 倍~~
- Frank Pfenning
- 简单谈谈ActiveMQ的两种消费方式
- iMeta | 黄源/邓越/苏展豪/辛凤姣-心血管疾病与肠道微生物组专刊征稿
- 华为大搞5G光通信,火星人快步紧跟
- realsense python 操作摄像头
- 保监会:保险机构应坚持长期投资
热门文章
- 苹果的文件传输服务器叫我们名字,苹果:即使是我们也无法对设备传输数据解密...
- Python爬虫实战之爬取链家广州房价_01简单的单页爬虫
- 对称加密与非对称加密算法
- 音视频基础:H264、H265、MPEG-4、VP8、VP9编码基础知识
- 快排,归并(日常复习)
- 嵌入式网络和数据库管理系统
- android组合键截图原理,步步高vivo x7怎么截屏 组合键截图方法教程
- PDF不能编辑怎么办?捷速PDF编辑器快速编辑!
- 计算机一级考试题库基础知识,计算机一级考试题库(含答案)
- ubuntu下安装matlab