使用pytube和tkinter在画布中显示YouTube视频的缩略图



我想用tkinter和pytube显示一个yt视频的缩略图,但它不会工作。我的代码如下:

from tkinter import *
import urllib.request, io
from PIL import ImageTk, Image
from pytube import YouTube

sc= Tk()
def show_pic():
yt = YouTube('https://www.youtube.com/watch?v=sVPYIRF9RCQ')
raw_data = urllib.request.urlopen(yt.thumbnail_url).read()
im = Image.open(io.BytesIO(raw_data)).resize((200, 200))
image = ImageTk.PhotoImage(im)
c.create_image(0,0, anchor='nw', image=image)
c = Canvas(sc, width=200, height=200)
c.pack()
btn = Button(sc, text='Show', command=show_pic)
btn.pack()

sc.mainloop()

你可以使用

import tkinter as tk
from PIL import Image, ImageTk
import urllib.request
from io import BytesIO
root = tk.Tk()
URL = "https://www.youtube.com/watch?v=sVPYIRF9RCQ" #imageurl
u = urllib.request.urlopen(URL)
raw_data = u.read()
u.close()
canvas = Canvas(root, width = 300, height = 300)     
im = Image.open(BytesIO(raw_data))
im = im.resize((50,50),Image.ANTIALIAS)
photo = ImageTk.PhotoImage(im)
canvas.create_image(20,20, anchor=NW, image=photo)   
root.mainloop()

最新更新