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

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'

搜索功能关闭中
', html)) != 0:

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

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

elif len(re.findall(r'

没有找到匹配数据

', html)) == 0: # 根据正则在html中寻找匹配的内容,并返回list

# print(html)

sp_ids = re.findall(r'

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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值