0

我有这个用于下载 youtube 视频的脚本

from pytube import YouTube

yt = YouTube('https://www.youtube.com/watch?v=kAGacI3JwS4')
#yt.title
#yt.thumbnail_url
#yt.streams.all()
stream = yt.streams.first()
#stream
stream.download('C:\\Users\')

但我希望这基于用户提示模式发生。所以它应该要求用户输入 url,然后从那里进一步下载视频,所以我确实喜欢这个

>>> pk=input("Enter the url:")

Enter the url:https://www.youtube.com/watch?v=GhklL_kStto
>>> pk

'https://www.youtube.com/watch?v=GhklL_kStto'
>>> pk.title

<built-in method title of str object at 0x02362770>
>>> pk.stream()
 Traceback (most recent call last):
File "<pyshell#44>", line 1, in <module>
>>pk.stream()
AttributeError: 'str' object has no attribute 'stream'

所以这就是错误。有人可以帮我解决这个问题吗?

感谢您的支持!

4

1 回答 1

0

我希望这个答案还不算太晚,但问题是这pk是一个字符串,因此:

pk=input("Enter the url:")

pk在这里被分配给一个字符串(也就是你输入的任何内容),所以你不可能创建相关的Youtube对象。

输入时得到的描述pk.title证明了它是str object的内置方法。你甚至没有YouTube为它创建一个对象,甚至没有一个stream方法。

你可以像这样修复它:

url = input("Enter the url:")
pkl = YouTube(url)
pkl.stream()

希望这可以帮助

于 2018-07-27T14:23:50.313 回答