【python小白】抖音无水印视频下载小工具(windows)
无水印视频的方法大家都已经知道了,我很早之前也写了一个脚本。最近学习了一下下pyside2,所以我用python写了一个小工具。
运行图:
from PySide2.QtWidgets import QApplication, QMessageBox,QFileDialog
from PySide2.QtUiTools import QUiLoader
import requests
import re
import json
import os
from PySide2.QtGui import QIconclass Download:def __init__(self):self.ui = QUiLoader().load('抖音无水印.ui')os.remove('抖音无水印.ui')self.ui.search.clicked.connect(self.find_share)self.ui.search_2.clicked.connect(self.find_hot)self.ui.download.clicked.connect(self.save2)self.ui.download_2.clicked.connect(self.save)self.ui.findpath.clicked.connect(self.findpath)self.path =os.getcwd()self.ui.path.setText(self.path)def findpath(self):filePath = QFileDialog.getExistingDirectory(self.ui, "选择存储路径")if filePath == None or filePath == '':passelse:self.path = filePathself.ui.path.setText(self.path)def find_share(self):def find_url(share_url):headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Mobile Safari/537.36'}if share_url.find('v.douyin.com') < 0:return share_urlresponse = requests.get(url=share_url, headers=headers,allow_redirects=False) # allow_redirects = False 不允许跳转url = response.headers['Location']p = re.compile(r"/playwm")url = p.sub('/play', url, count=1)p2 = re.compile(r"/video/(.+?)/")vid = p2.findall(url)[0]headers = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"}api = '''https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={}'''.format(vid)response = requests.get(api, headers=headers)html = response.textdata = json.loads(html)video_name = data["item_list"][0]["share_info"]["share_title"]return url, video_namedef find_play(url):headers = {'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36"}response = requests.get(url, headers=headers)html = response.textp = re.compile(r'playAddr: [\'\"](https.+?)[\'\"]')v_url = p.findall(html)return v_url[0]def save_vid(url, name,filePath,ui):p = re.compile(r"/playwm")url = p.sub('/play', url, count=1)headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Mobile Safari/537.36'}response = requests.get(url, headers=headers)r = response.contentwith open(filePath+r'\{}.mp4'.format(name), 'wb') as f:f.write(r)QMessageBox.about(self.ui,'提示','{}\n下载完成!'.format(name))#ui.url_input.clear()def main(share_url,ui):b = find_url(share_url)url = b[0]name = b[1]play_url = find_play(url)save_vid(play_url, name, self.path,ui)share_url = self.ui.url_input.toPlainText()p = re.compile(r"(https://v.douyin.com/.+?/)")share_urls = p.findall(share_url)if share_urls == []:QMessageBox.about(self.ui,'警告','并没有找到分享链接\n或者\n分享链接可能有误!')else:for i in share_urls:main(i,self.ui)def find_hot(self):url_list = []names_list = []url = 'https://www.iesdouyin.com/web/api/v2/hotsearch/billboard/aweme/'headers = {'uesr-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36','referer': 'https://www.iesdouyin.com/share/billboard/?id=0&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin'}response = requests.get(url, headers=headers)html = response.textdata = json.loads(html)['aweme_list']error = ['/', '"', '\\', '|', '*', '>', '<', ':']for i in data:url = i['aweme_info']['video']["play_addr"]["url_list"][0]url_list.append(url)name = i['aweme_info']['share_info']['share_title']for each in error:if each in name:name = name.replace(each, ' ')names_list.append(name)self.url_list = url_listself.names_list = names_listself.ui.listWidget.clear()self.data = {}count = 0for i in self.names_list:self.ui.listWidget.addItem(i)self.data[i] = self.url_list[count]count += 1def save(self):try:item = self.ui.listWidget.currentItem().text()except:QMessageBox.about(self.ui,'警告','请先查询并选择!!')url = self.data[item]headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Mobile Safari/537.36'}response = requests.get(url, headers=headers)r = response.contentwith open(self.path+r'\{}.mp4'.format(item), 'wb') as f:f.write(r)QMessageBox.about(self.ui,'提示','下载完成!')def save2(self):try:item = self.ui.listWidget.currentItem().text()except:QMessageBox.about(self.ui,'警告','请先查询并选择!!')url = self.data[item]p = re.compile(r"/playwm")url = p.sub('/play', url, count=1)headers = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Mobile Safari/537.36'}response = requests.get(url, headers=headers)r = response.contentwith open(self.path+r'\{}.mp4'.format(item), 'wb') as f:f.write(r)QMessageBox.about(self.ui,'提示','下载完成!')png = b'图片的二进制数据'#这个数据我删了,太大了,你可以随便放一个图片的路径就好
bit_ui = b'ui的二进制数据'#这个UI的数据我也给删掉了,其实就是自己用qt画的,你可以自己随便画一个。with open('logo_3958666.png', 'wb') as g:g.write(png)
with open('抖音无水印.ui', 'wb') as f:f.write(bit_ui)
app = QApplication([])
app.setWindowIcon(QIcon('logo_3958666.png'))
os.remove('logo_3958666.png')
d = Download()
d.ui.show()
app.exec_()
本帖最后由 丶霁灵 于 2020-5-11 15:48 编辑
第一次发帖,没有什么经验,如果违规了请大家赶紧提醒我,我直接删除。 对于安全问题请大家放心,就我这python的能力,有危险的东西我也写不出来。
[Python] 纯文本查看 复制代码
?
软件大小44M,有点大。其实我的脚本很小很小,但是我用pyinstaller打包出了110M的文件,然后又用Enigma Virtual Box打包压缩成单文件。 我只是作为一个业余爱好者分享一个学习python过程中的小作品,希望大家多多包涵~ 我其实最在意的是,发布这东西应该不违法吧?(滑稽) 蓝奏云:https://lanzous.com/iccvi4h |
【python小白】抖音无水印视频下载小工具(windows)相关推荐
- python下载b站视频_【python】抖音无水印视频下载和b站视频下载
本帖最后由 370125229 于 2020-3-27 17:38 编辑 萌新一枚,拿这个练练手 用python写的,部分视频可能还是会有水印 抖音 蓝奏: https://www.lanzous.c ...
- Python 抖音无水印视频下载
引言 上篇文章讲到抖音首页视频的爬取和下载,于是我想到能不能下载特定的视频.网上搜索一番,发现有网站提供抖音无水印视频的下载,但是试了几个,发现下载下来都还是有水印的视频.上篇文章已经实现了首页无水印 ...
- 抖音无水印视频下载方法
- 用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 很多人学 ...
- python无水印下载视频_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- 抖音上的python课程_用 Python 下载抖音无水印视频
说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下. 首先,我 ...
- 用Python下载抖音无水印视频!
不知不觉距离小F最开始写的一篇抖音文章,时间也过了一年. 用Python全自动下载抖音视频! 上面这一篇阅读量是所有文章中阅读量最高的,当然还有另外两篇相关的. 用Python生成抖音字符视频! 用数 ...
- python下载抖音无水印视频
只要一刷抖音视频,基本上就是停不下来,看到一些喜欢的视频,就想下载下来,但是通过正常手段下载的视频都会带有抖音的水印,今天就一起来使用非正常手段来看看怎么获取无水印抖音视频. 1.获取视频链接地址 这 ...
- python实现抖音无水印下载,从手动到脚本实现 2020
工具下载链接:https://www.lanzous.com/ia4vgfg 视频创作不易,希望各位小伙伴尊重他人的作品哦 -------------------------------------- ...
最新文章
- NC:植物与根际微生物之间的通路被破解,通过合成生物学利用微生物固氮!...
- 「内容即服务」市场正在井喷
- 【CF应用开发大赛】微博社交简历
- Win64 驱动内核编程-12.回调监控进线程创建和退出
- cad导出pdf_通过CAD导出的文件或者由CAD导出的PDF文件打印慢
- 当C++爬山壁纸——C++山寨版
- inc指令是什么意思_mips指令集与cpu架构(一)
- 今天专攻POWERSHELL获取本机CPU,内存消耗
- 根据经纬度显示地图轨迹
- Redis缓存那点破事 , 绝杀面试官 25 问
- 神奇的 SQL 之团结的力量 → JOIN
- c java python go 哪种编程语言接近编程的本质_一图看懂编程语言迁移模式:终点站是Python、Go、JS...
- Seldom2.0: 如何更简单的实现HTTP接口测试
- 斯坦福大学的Gss Audio Codec 调试分析
- eplan2.7在win10安装教程
- WPF下关于NotifyIcon的使用
- 蓝牙打印机CPCL编程手册~汉印HM-A300
- 十三、商城 - 商城架构-分布式Dubbo(1)
- 传奇脚本关于!Setup.txt 详细介绍
- 计算机存储单元ASCI,在计算机存储器中,存储英文字母\quot;A\quot;时,存储的是它的( ) A.输入码B.ASCII码C - 作业在线问答...