找回密码
  注册[Register]
查看: 620|回复: 7

Pyqt5写带GUI的抖音无水印下载程序

[复制链接]
发表于 2020-8-7 16:57 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

最近开始学习用Pyqt写GUI

论坛有前辈发了一份抖音去水印的教程

修改了部分代码,利用Pyqt加了个界面打包成exe程序。
165651slz8iqvflozb1y41.jpg

成品蓝奏云链接:
游客,如果您要查看本帖隐藏内容请回复



  1. # -*- coding: utf-8 -*-

  2. # Form implementation generated from reading ui file 'g:\2019_PYTHON\QJBM8\NEW\main.ui'
  3. #
  4. # Created by: PyQt5 UI code generator 5.15.0
  5. #
  6. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  7. # run again.  Do not edit this file unless you know what you are doing.

  8. import sys
  9. import re
  10. import requests
  11. from PyQt5 import QtCore, QtGui, QtWidgets
  12. from PyQt5.QtWidgets import QApplication, QWidget,QMessageBox


  13. class Ui_MainWindow(QtWidgets.QMainWindow):

  14.     def __init__(self):
  15.         super(Ui_MainWindow,self).__init__()
  16.         self.setupUi(self)
  17.         self.retranslateUi(self)
  18.          
  19.          


  20.     def setupUi(self, MainWindow):
  21.         MainWindow.setObjectName("MainWindow")
  22.         MainWindow.resize(500, 162)
  23.         self.centralwidget = QtWidgets.QWidget(MainWindow)
  24.         self.centralwidget.setObjectName("centralwidget")
  25.         self.pushButton = QtWidgets.QPushButton(self.centralwidget)
  26.         self.pushButton.setGeometry(QtCore.QRect(410, 60, 75, 31))
  27.         self.pushButton.setObjectName("pushButton")
  28.         self.label = QtWidgets.QLabel(self.centralwidget)
  29.         self.label.setGeometry(QtCore.QRect(10, 25, 81, 31))
  30.         self.label.setObjectName("标签")

  31.         self.label1 = QtWidgets.QLabel(self.centralwidget)
  32.         self.label1.setGeometry(QtCore.QRect(380, 2, 160, 30))
  33.         self.label1.setObjectName("BY")

  34.         self.label2 = QtWidgets.QLabel(self.centralwidget)
  35.         self.label2.setGeometry(QtCore.QRect(10, 115, 440, 30))
  36.         self.label2.setObjectName("说明")

  37.         self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
  38.         self.lineEdit.setGeometry(QtCore.QRect(30, 60, 361, 31))
  39.         self.lineEdit.setObjectName("lineEdit")
  40.         MainWindow.setCentralWidget(self.centralwidget)
  41.         self.statusbar = QtWidgets.QStatusBar(MainWindow)
  42.         self.statusbar.setObjectName("statusbar")
  43.         MainWindow.setStatusBar(self.statusbar)

  44.         self.retranslateUi(MainWindow)
  45.         QtCore.QMetaObject.connectSlotsByName(MainWindow)   

  46.     def retranslateUi(self, MainWindow):
  47.         _translate = QtCore.QCoreApplication.translate
  48.         MainWindow.setWindowTitle(_translate("MainWindow", "抖音无水印下载"))
  49.         self.pushButton.setText(_translate("MainWindow", "下载"))
  50.         self.label.setText(_translate("MainWindow", "短视频链接:"))
  51.         self.label1.setText(_translate("MainWindow", "大牛破解  小心boss"))
  52.         self.label2.setText(_translate("MainWindow", "说明: 复制短视频的分享链接到输入框后点击下载,视频保存在程序执行目录下"))

  53.     def Button_Click(self):
  54.         if self.lineEdit.text() == '' :
  55.             QMessageBox.information(self,
  56.                                     '提示:',
  57.                                     '请检查分享链接是否正确'        )
  58.             
  59.         else:
  60.             sender = self.sender()
  61.             url = self.lineEdit.text()
  62.             down(url)

  63. def down(url):

  64.     headers = {
  65.         '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',
  66.     }
  67.     url = re.findall(r'http(.*)/',url)
  68.     url = 'http' + url[0]  
  69.     title = url.split('/')[-1]
  70.     response = requests.get(url, headers=headers)
  71.     now_url = response.url
  72.     pat_item_ids = '/video/(.*?)/'
  73.     item_ids = re.compile(pat_item_ids, re.S).findall(now_url)

  74.     pat_dytk = 'dytk: "(.*?)"'
  75.     dytk = re.compile(pat_dytk, re.S).findall(response.text)

  76.     url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/'
  77.     params = {
  78.         'item_ids': item_ids,
  79.         'dytk': dytk
  80.     }
  81.     response = requests.get(url, headers=headers, params=params).json()
  82.     true_url = response['item_list'][0]['video']['play_addr']['url_list'][0]
  83.     true_url = true_url.replace('playwm','play')
  84.     response = requests.get(true_url, headers=headers)
  85.     # true_url = response.url
  86.     # print(true_url)

  87.     with open( str(title) + '.MP4', 'wb+')as t:
  88.             t.write(response.content)

  89. if __name__ == "__main__":
  90.     app = QApplication(sys.argv)
  91.     ex = Ui_MainWindow()
  92.     ex.show()
  93.     ex.pushButton.pressed.connect(ex.Button_Click)
  94.     sys.exit(app.exec_())
复制代码


如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2020-8-7 16:57 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 16:57 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 17:01 | 显示全部楼层
谢谢大牛
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 20:33 | 显示全部楼层
谢谢分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 20:47 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 21:52 | 显示全部楼层
这个可以用来吸引流浪啊
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2020-8-7 22:02 | 显示全部楼层
谢谢大佬
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|广告投放|大牛论坛

GMT+8, 2024-5-31 03:27 , Processed in 0.038731 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表