gpt4 book ai didi

Python pafy global 无法跨函数调用边界工作

转载 作者:太空宇宙 更新时间:2023-11-03 16:20:50 26 4
gpt4 key购买 nike

好吧,我正在尝试制作一个简单的脚本来使用 pafy 下载 YouTube 视频。目前,我使用全局变量 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_entry 获取视频,这是一个 tkinter Entry 小部件。到目前为止一切顺利,但是当我调用 downloadVideo() 时,我收到此错误:

AttributeError: 'NoneType' object has no attribute 'download'

最佳答案

在这一行发现问题:

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

这个:

video.getbest(preftype="mp4")

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

关于Python pafy global 无法跨函数调用边界工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38485103/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com