from urllib import parseimport tkintermessagebox as msgboximport tkinter as tkimport webbrowserimport reclass APP # 魔术方法 # 初始化用的 def __init__self width=500 height=300 selfw = width
from urllib import parse import tkinter.messagebox as msgbox import tkinter as tk import webbrowser import re import requests
class APP: # 魔术方法 # 初始化用的 def init(self, width=500, height=300): self.w = width self.h = height self.title = 'vip视频破解助手' # 软件名 self.root = tk.Tk(className=self.title)
# vip视频播放地址 StringVar() 定义字符串变量
self.url = tk.StringVar()
# 定义选择哪个播放源
self.v = tk.IntVar()
# 默认为1
self.v.set(1)
# Frame空间
frame_1 = tk.Frame(self.root)
frame_2 = tk.Frame(self.root)
# 控件内容设置
group = tk.Label(frame_1, text='暂时只有一个视频播放通道:', padx=10, pady=10)
tb = tk.Radiobutton(frame_1, text='唯一通道', variable=self.v, value=1, width=10, height=3)
lable = tk.Label(frame_2, text='请输入视频连接:')
# 输入框声明
entry = tk.Entry(frame_2, textvariable=self.url, highlightcolor='Fuchsia', highlightthickness=1, width=35)
play = tk.Button(frame_2, text='播放', font=('楷体', 12), fg='Purple', width=2, height=1, command=self.video_play)
download = tk.Button(frame_2, text='下载', font=('楷体', 12), fg='Purple', width=2, height=1, command=self.video_download)
# 控件布局 显示控件在你的软件上
frame_1.pack()
frame_2.pack()
# 确定控件的位置 wow 行 column 列
group.grid(row=0, column=0)
tb.grid(row=0, column=1)
lable.grid(row=0, column=0)
entry.grid(row=0, column=1)
# ipadx x方向的外部填充 ipady y方向的内部填充
play.grid(row=0, column=3, ipadx=10, ipady=10)
download.grid(row=0, column=4, ipadx=10, ipady=10)
def video_play(self):
# 视频解析网站地址
port = 'https://jx.jsonplayer.com/player/?url='
# 正则表达式判定是否为合法连接
if re.match(r'^https?:/{2}\w.+$', self.url.get()):
# 拿到用户输入的视频网址
ip = self.url.get()
# 视频连接加密
ip = parse.quote_plus(ip)
# 用浏览器打开网址
webbrowser.open(port + ip)
else:
msgbox.showerror(title='错误', message='视频链接地址无效,请重新输入!')
def video_download(self):
# 正则表达式判定是否为合法连接
if re.match(r'^https?:/{2}\w.+$', self.url.get()):
# 拿到用户输入的视频网址
ip = self.url.get()
# 发送请求获取视频下载链接
response = requests.get(ip)
# 解析视频下载链接
download_url = self.parse_download_url(response.text)
if download_url:
# 发送请求下载视频
response = requests.get(download_url)
# 获取视频文件名
filename = self.get_filename(download_url)
# 保存视频文件
with open(filename, 'wb') as f:
f.write(response.content)
msgbox.showinfo(title='下载成功', message='视频下载成功!')
else:
msgbox.showerror(title='下载失败', message='无法解析视频下载链接,请重试!')
else:
msgbox.showerror(title='错误', message='视频链接地址无效,请重新输入!')
def parse_download_url(self, html):
# 使用正则表达式解析视频下载链接
pattern = r'srcUrl="(.*?)"'
match = re.search(pattern, html)
if match:
return match.group(1)
else:
return None
def get_filename(self, url):
# 从下载链接中获取文件名
filename = url.split('/')[-1]
return filename
# 启动GUI程序的函数
def loop(self):
self.root.resizable(True, True)
self.root.mainloop()
if name == "main": app = APP() app.loop(
原文地址: http://www.cveoy.top/t/topic/iViH 著作权归作者所有。请勿转载和采集!