如何用python做一个视频搜索+播放器

2025-10-03 20:58:17

1、首先访问官网https://www.python.org/

2、点击downloads

如何用python做一个视频搜索+播放器

3、根据自己的电脑版本选择下载并安装

如何用python做一个视频搜索+播放器

4、根据 Windows 系统平台下载合适的安装程序(64 位的平台下载 64 位的安装程序,32 位的平台下载 32 位的安装程序),本教程以 64 位的安装程序为例,下载完成后得到 python-3.6.x-amd64.exe 安装文件。

双击 python-3.6.x-amd64.exe 文件,系统将会开启 Python 安装向导,如下图所示。

如何用python做一个视频搜索+播放器

5、勾选“Add Python 3.6 to PATH” 复选框,可以将 Python 命令工具所在目录添加到系统 Path 环境变量中;单击“Customize installation”,可以在安装时指定自定义的安装路径。单击该选项即可开始安装。

在接下来的安装界面中只要改变 Python 的安装路径(建议安装在指定盘符的根路径下,比如安装在 D:\Python\ 目录下),其他地方使用默认选项即可。

安装完成后,启动 Windows 的命令行程序,在命令行窗口中输入“python”命令(字母 p 是小写的),如果出现 Python 提示符(>>>),就说明安装成功了,如图下图 所示。

如何用python做一个视频搜索+播放器

6、之后在桌面上新建一个txt文件,文件名都无所谓了

如何用python做一个视频搜索+播放器

7、双击打开

如何用python做一个视频搜索+播放器

8、复制如下代码(在下一步骤里)

9、import urllib.request

import json

import requests

import re

import tkinter as tk

import tkinter.messagebox as message

import webbrowser

 

class Video:

    def __init__(self):

        self.url_list = []

        self.root = tk.Tk()

        self.root.title('视频播放器')

        # self.root.geometry('+100+100')

        self.root.minsize(500, 390)

        self.root.resizable(True, True)

        self.label = tk.Label(self.root, text='视频播放器', font=('', 30), width=20, height=2, relief='groove')

        self.label.grid(padx=100, row=0, columnspan=2)

        self.prompt_label = tk.Label(self.root, text='请输入您想查询的电视名称:', font=('', 12), width=35, height=2)

        self.prompt_label.grid(row=1, column=0)

        self.input = tk.Entry(font=('', 15), width=25)

        self.input.grid(row=1, column=1)

        self.label1 = tk.Label(self.root, height=1)

        self.label1.grid(row=2, columnspan=2)

        self.search = tk.Button(self.root, text='搜索', font=('', 12), width=15, height=1, command=self.search_button)

        self.search.grid(row=3, column=0)

        tk.Button(self.root, text='播放', font=('', 12), width=15, height=1, command=self.change_items).grid(row=3, column=1)

        self.label2 = tk.Label(self.root, height=1)

        self.label2.grid(row=4, columnspan=2)

        self.list_box = tk.Listbox(self.root, width=15, height=10, font=('', 12), selectmode='extended')

        self.list_box.grid(row=5, columnspan=2)

        self.list_box.insert(0, '空目录')

    def search_movie(self, name):

        html = ''

        if name != 'quit':

            search_url = 'https://api.okzy.tv/index.php/vod/search.html?wd={}&submit=search'.format(name)  # str格式化,将内容拼接到str中

            # print(search_url)

            response = requests.get(search_url)  # 发送http请求,返回信息

            html = response.text     # 获取网页内容

        else:

            exit()

        if len(re.findall(r'<div class="text">搜索功能关闭中</div>', html)) != 0:

            message.showinfo('提示', '操作频繁,请稍后重试')

            # print("操作频繁,请稍后重试")

        elif len(re.findall(r'<h1>没有找到匹配数据</h1>', html)) == 0:  # 根据正则在html中寻找匹配的内容,并返回list

            # print(html)

            sp_ids = re.findall(r'<span class="xing_vb4"><a href="/index.php/vod/detail/id/(.*?).html"', html)[0]  # 获取正则中()的内容

            self.get_record(sp_ids)

        else:

            message.showinfo('提示', '抱歉,未能找到你想要看的视频')

            # print('抱歉,未能找到你想要看的视频')

    def get_record(self, ids_url_c):

        num_list = []

        # 拼接需要整理的视频链接

        url = 'http://api.okzy.tv/api.php/provide/vod/?ac=detail&ids={}'.format(ids_url_c)

        response = urllib.request.urlopen(url)  # 打开url并返回网页数据

        content = response.read()  # 读取网页内容

        json_content = json.loads(content)

        content2 = json_content['list'][0]['vod_play_url']  # 获取指定的json内容

        content2_list = content2.split('$$$')[0]   # 0和1是不同的线路方式

        content2_list = content2_list.split('#')

        # print(content2_list)

        self.url_list.clear()

        for i in range(len(content2_list)):  # 获取内容数量

            url_str = content2_list[i]

            # print(url_str)

            # if '$$$' in url_str:

            #     loc = url_str.index('$$$')

            #     url_str = url_str[loc+3:]

            #     str1 = url_str.split('$')

            #     num_list.append(str1[0])

            #     self.url_list.append(str1[1])

            # elif 'index.m3u8' in url_str:

            str1 = url_str.split('$')

            num_list.append(str1[0])

            self.url_list.append(str1[1])

        self.video_list(num_list)

    def video_list(self, num_list):

        # nums = tk.StringVar()

        # nums.set(num_list)

        self.list_box.delete(0, 'end')

        for i in num_list:

            self.list_box.insert('end', i)

        # self.list_box = tk.Listbox(self.root, listvariable=nums, width=15, height=10, font=('', 12))

        # self.list_box.grid(row=5, columnspan=2)

    def change_items(self):

        indexs = self.list_box.curselection()

        # for i in range(len(indexs)):

        #     print('1', indexs[i])

        self.player_button(indexs)   # 选中的集都播放

    def player_button(self, indexs):

        for i in indexs:

            webbrowser.open("http://jx.sang0.com/?v={}".format(self.url_list[i]))

    def search_button(self):

        self.search_movie(self.input.get())

 

if __name__ == '__main__':

    video = Video()

    video.root.mainloop()

10、点击文件--保存

11、右键文件,让后把后缀名改为py,不会改后缀名的看这一篇

113如何修改文件后缀名

如何用python做一个视频搜索+播放器

12、双击打开就可以了

如何用python做一个视频搜索+播放器

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢