【问题标题】:Show thumbnail of youtube video in canvas using pytube and tkinter使用 pytube 和 tkinter 在画布中显示 youtube 视频的缩略图
【发布时间】:2021-05-01 08:23:22
【问题描述】:

我想使用 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()

【问题讨论】:

  • 应该有对在函数中创建的图像的引用。在函数内说global image
  • 问题解决了 tnx

标签: python tkinter youtube pytube


【解决方案1】:

你可以用这个

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-25
    • 2020-02-17
    • 2011-11-11
    • 1970-01-01
    • 2020-12-09
    • 2015-03-26
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多