我正在用tkinter和pytube创建一个youtube下载程序,一切都很好,直到我去下载文件,然后我得到

2024-05-22 00:00:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用tkinter和pytube创建一个youtube下载程序,一切正常,直到我下载文件,然后我得到错误:

"AttributeError: 'Entry' object has no attribute 'streams'"

如果有人能解释一下我做错了什么,我将不胜感激

   import pytube
   from tkinter import *
   from pytube import YouTube
   from tkinter import messagebox




   def click():
       yt = Entry(window, width=20, bg="white")
       yt.pack()

       print(yt.streams.all())
       stream = yt.streams.first()
       stream.download()

  window = Tk()
  window.title("tubemaker")
  window.geometry("500x500")
  window.configure(background="black")


  l1 = Label(window, text="blank", bg="black", fg="white", font="none 12 bold")
  l1.pack()

  b1 = Button(window, text="Press the button to begin downloading your video", 
  width=70, command=click)
  b1.pack()

  window.mainloop()

Tags: fromimportstreamtkinterwindowwidthpackstreams
2条回答

不确定您想用yt = Entry(...做什么,但是您应该用pytube下载如下:

yt = YouTube(LINK_TO_VIDEO) 
vid = yt.streams.first() 
vid.download(YOUR_FILENAME) # downloads into this file

编辑:对于您的情况,您需要创建条目并使用get()

import pytube
from tkinter import *
from pytube import YouTube
from tkinter import messagebox

def click():
    inp = input.get()
    yt = YouTube(inp)
    print(yt.streams.all())
    stream = yt.streams.first()
    stream.download()

window = Tk()
window.title("tubemaker")
window.geometry("500x500")
window.configure(background="black")


input = Entry(window)
input.pack()

l1 = Label(window, text="blank", bg="black", fg="white", font="none 12 bold")
l1.pack()

b1 = Button(window, text="Press the button to begin downloading your video",
width=70, command=click)
b1.pack()

window.mainloop()

我终于明白了,谢谢你的帮助。问题是我没有把tkinter输入转换成一个str对象(str(YT)

相关问题 更多 >