怎么使用Python下载抖音无水印视频(python,开发技术)

时间:2024-05-04 23:08:13 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Python下载

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

怎么使用Python下载抖音无水印视频

妥妥的水印...

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

怎么使用Python下载抖音无水印视频

可以发现「playAddr」就是视频的地址,复制然后访问。

怎么使用Python下载抖音无水印视频

链接会重定向到以「v9」开头的链接,然而还是有水印。

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

我用的是Mac+谷歌浏览器,就说说我自己怎么修改的。

Windows的请自行百度~

首先在电脑的文稿中创建一个文件夹。

怎么使用Python下载抖音无水印视频

这个文件夹的路径如下。

/Users/star-river/Documents/MyChrome

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

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

如此我的谷歌浏览器就能成功更换UA啦!

怎么使用Python下载抖音无水印视频

还是直接访问抖音的链接,可以看到结果和最初的不一样。

就在这个模式下查找接口。

怎么使用Python下载抖音无水印视频

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

就是「play_addr」下的列表中的那两个链接。

其中「?item_ids」开头的这个接口有两个参数需要我们在另一个接口中获取。

怎么使用Python下载抖音无水印视频

怎么使用Python下载抖音无水印视频

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

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

也改变一下UA,这里的链接如果还用「iPhone X」这个UA访问,会失败。

什么原因,小F就不得而知了...

把浏览器UA改为「Responsive」即可访问,链接会重定向。

怎么使用Python下载抖音无水印视频

这样无水印的抖音视频就搞定了。

不过要是每个视频都需要这么下载,就太麻烦了。

所以写了用Python就可以下载视频的代码。

importrequestsimportjsonimportreheaders={'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/ajpg,*/*;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;Android6.0;Nexus5Build/MRA58N)AppleWebKit/537.36(KHTML,likeGecko)Chrome/78.0.3904.108MobileSafari/537.36',}defdownload(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"withopen(video_name,'wb')asf:f.write(video)f.flush()print("下载完成")if__name__=='__main__':#抖音链接url='https://v.douyin.com/XJj85H/'download(url)

无水印视频完美下载。

接口下载

既然知道了如何用Python下载视频。

那么小F想让大家下载的更方便一点,所以将程序部署到了服务器上。

你只需要通过小F的接口即可下载视频,代码如下。

fromflaskimportFlask,request,send_fileimportrequestsimportjsonimportreapp=Flask(__name__)#只接受get方法访问@app.route("/douyin/",methods=["GET"])defcheck():headers={'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/ajpg,*/*;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;Android6.0;Nexus5Build/MRA58N)AppleWebKit/537.36(KHTML,likeGecko)Chrome/78.0.3904.108MobileSafari/537.36',}#默认返回内容return_dict={'code':1,'result':False,'msg':'请求成功'}#判断入参是否为空ifrequest.argsisNone:return_dict['return_code']='504'return_dict['return_info']='请求参数为空'returnjson.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#返回结果#returnjson.dumps(return_dict,ensure_ascii=False)video=requests.get(url=redirect,headers=headers).contentvideo_name="douyin.mp4"withopen(video_name,'wb')asf:f.write(video)f.flush()returnsend_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下载抖音无水印视频

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:怎么使用Python下载抖音无水印视频的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:如何绘制UML用例图下一篇:

19 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18