2

好的,我正在尝试制作一个简单的脚本来使用pafy. 目前我对video用于存储pafy.new('url')返回值的全局变量有疑问。这是我使用的两个函数:

video = {};

def downloadVideo():

    options = {};
    options['initialdir'] = 'C:\\';
    options['mustexist'] = False;
    options['title'] = 'Download folder';

    dir_path = tkinter.filedialog.askdirectory(**options);
    global video;
    video.getbest(preftype="mp4").download(quiet=True, filepath=dir_path);

def get():
    url = url_entry.get();

    if url == '':
        return

    global video;
    video = pafy.new(url);

    # Some code to display video info

首先,我使用get()函数来获取来自url_entrytkinter Entry 小部件的视频。到目前为止一切顺利,但是当我打电话时,downloadVideo()我收到了这个错误:

AttributeError:“NoneType”对象没有属性“下载”

4

1 回答 1

2

发现这一行的问题:

video.getbest(preftype="mp4").download(quiet=True, filepath=dir_path);

这个:

video.getbest(preftype="mp4")

实际上返回了一个NoneType对象,因为它不包含任何mp4流。所以,这不完全是一个问题,这只是我在打电话之前应该检查的东西download()。现在我只需获取所有流video.streams并下载我需要的内容,或者只是让它下载最好的video.getbest().download()

于 2016-07-20T21:27:51.533 回答