|
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。
最近开始学习用Pyqt写GUI
论坛有前辈发了一份抖音去水印的教程
修改了部分代码,利用Pyqt加了个界面打包成exe程序。
成品蓝奏云链接:
- # -*- coding: utf-8 -*-
-
- # Form implementation generated from reading ui file 'g:\2019_PYTHON\QJBM8\NEW\main.ui'
- #
- # Created by: PyQt5 UI code generator 5.15.0
- #
- # WARNING: Any manual changes made to this file will be lost when pyuic5 is
- # run again. Do not edit this file unless you know what you are doing.
-
- import sys
- import re
- import requests
- from PyQt5 import QtCore, QtGui, QtWidgets
- from PyQt5.QtWidgets import QApplication, QWidget,QMessageBox
-
-
- class Ui_MainWindow(QtWidgets.QMainWindow):
-
- def __init__(self):
- super(Ui_MainWindow,self).__init__()
- self.setupUi(self)
- self.retranslateUi(self)
-
-
-
-
- def setupUi(self, MainWindow):
- MainWindow.setObjectName("MainWindow")
- MainWindow.resize(500, 162)
- self.centralwidget = QtWidgets.QWidget(MainWindow)
- self.centralwidget.setObjectName("centralwidget")
- self.pushButton = QtWidgets.QPushButton(self.centralwidget)
- self.pushButton.setGeometry(QtCore.QRect(410, 60, 75, 31))
- self.pushButton.setObjectName("pushButton")
- self.label = QtWidgets.QLabel(self.centralwidget)
- self.label.setGeometry(QtCore.QRect(10, 25, 81, 31))
- self.label.setObjectName("标签")
-
- self.label1 = QtWidgets.QLabel(self.centralwidget)
- self.label1.setGeometry(QtCore.QRect(380, 2, 160, 30))
- self.label1.setObjectName("BY")
-
- self.label2 = QtWidgets.QLabel(self.centralwidget)
- self.label2.setGeometry(QtCore.QRect(10, 115, 440, 30))
- self.label2.setObjectName("说明")
-
- self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
- self.lineEdit.setGeometry(QtCore.QRect(30, 60, 361, 31))
- self.lineEdit.setObjectName("lineEdit")
- MainWindow.setCentralWidget(self.centralwidget)
- self.statusbar = QtWidgets.QStatusBar(MainWindow)
- self.statusbar.setObjectName("statusbar")
- MainWindow.setStatusBar(self.statusbar)
-
- self.retranslateUi(MainWindow)
- QtCore.QMetaObject.connectSlotsByName(MainWindow)
-
- def retranslateUi(self, MainWindow):
- _translate = QtCore.QCoreApplication.translate
- MainWindow.setWindowTitle(_translate("MainWindow", "抖音无水印下载"))
- self.pushButton.setText(_translate("MainWindow", "下载"))
- self.label.setText(_translate("MainWindow", "短视频链接:"))
- self.label1.setText(_translate("MainWindow", "大牛破解 小心boss"))
- self.label2.setText(_translate("MainWindow", "说明: 复制短视频的分享链接到输入框后点击下载,视频保存在程序执行目录下"))
-
- def Button_Click(self):
- if self.lineEdit.text() == '' :
- QMessageBox.information(self,
- '提示:',
- '请检查分享链接是否正确' )
-
- else:
- sender = self.sender()
- url = self.lineEdit.text()
- down(url)
-
- def down(url):
-
- headers = {
- 'User-Agent': 'User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16D57 Version/12.0 Safari/604.1',
- }
- url = re.findall(r'http(.*)/',url)
- url = 'http' + url[0]
- title = url.split('/')[-1]
- response = requests.get(url, headers=headers)
- now_url = response.url
- pat_item_ids = '/video/(.*?)/'
- item_ids = re.compile(pat_item_ids, re.S).findall(now_url)
-
- pat_dytk = 'dytk: "(.*?)"'
- dytk = re.compile(pat_dytk, re.S).findall(response.text)
-
- url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/'
- params = {
- 'item_ids': item_ids,
- 'dytk': dytk
- }
- response = requests.get(url, headers=headers, params=params).json()
- true_url = response['item_list'][0]['video']['play_addr']['url_list'][0]
- true_url = true_url.replace('playwm','play')
- response = requests.get(true_url, headers=headers)
- # true_url = response.url
- # print(true_url)
-
- with open( str(title) + '.MP4', 'wb+')as t:
- t.write(response.content)
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- ex = Ui_MainWindow()
- ex.show()
- ex.pushButton.pressed.connect(ex.Button_Click)
- sys.exit(app.exec_())
复制代码
|
|