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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录