我正在使用Python 2.7和pafy从youtube下载音频文件
import pafy
video = pafy.new("https://www.youtube.com/watch?v=dcNlEn1LrrE")
print video.m4astreams
filename = video.m4astreams[0].download(quiet=False)我得到以下错误:
Traceback (most recent call last):
File "E:\work\Python\2017\pafy\work_with_pafy.py", line 27, in <module>
filename = video.m4astreams[0].download(quiet=False)#.encode('utf-8')
File "c:\python27\lib\site-packages\pafy\backend_shared.py", line 586, in download
filename = self.generate_filename(meta=meta, max_length=256-len('.temp'))
File "c:\python27\lib\site-packages\pafy\backend_shared.py", line 458, in generate_filename
return xenc(filename)
File "c:\python27\lib\site-packages\pafy\util.py", line 63, in xenc
return utf8_replace(stuff) if not_utf8_environment else stuff
File "c:\python27\lib\site-packages\pafy\util.py", line 57, in utf8_replace
txt = txt.encode(sse, "replace").decode(sse)
TypeError: encode() argument 1 must be string, not None请帮帮我!提前谢谢。
发布于 2017-03-11 19:59:16
我已经找到了解决方案。通过替换util.py文件C:\Python27\Lib\site-packages\pafy\util.py中的一个字符串即可解决此问题。我在util.py中替换了该字符串:
txt = txt.encode(sse, "replace").decode(sse)通过这一条:
txt = txt.encode('utf-8')之后,文件成功下载,没有任何问题。
https://stackoverflow.com/questions/42730212
复制相似问题