所以,我正在编写一个基本的python脚本,使用youtube dl从视频中下载高质量的缩略图。使用命令行youtube dl,您可以运行“youtube dl——列出缩略图[LINK]”,它将输出一个不同质量的链接列表,指向缩略图图像。通常,最高分辨率的链接中有“maxresdefault”。我希望能够使用wget从命令行下载此图像。这是我迄今为止实现它的代码。我不熟悉regex,但根据这个网站:regexr.com,它应该在链接中与“maxresdefault”匹配
import subprocess
import sys
import re
youtubeoutput = subprocess.call(['youtube-dl', '--list-thumbnails', 'https://www.youtube.com/watch?v=t2U2mUtTnzY'], shell=True, stdout=subprocess.PIPE)
print(str(youtubeoutput))
imgurl = re.search("/maxresdefault/g", str(youtubeoutput)).group(0)
print(imgurl)
subprocess.run('wget', str(imgurl))
我把打印语句放在那里,看看输出是什么。当我运行代码时,我可以看到youtube dl无法识别其中的链接youtube-dl: error: You must provide at least one url
。由于输出中没有链接,因此重新搜索将变为非类型,并给我一个错误。我不知道为什么youtube dl无法识别该链接。我甚至不确定它是否能识别--list-thumnails
。有人能帮忙吗
您要求
subprocess
使用shell(shell=True
),因此通常会将整个命令传递给call
,如下所示:但实际上,您可能不需要外壳。尝试以下方法:
注意
call
实际上并不返回程序的标准输出check_output
没有Reference
相关问题 更多 >
编程相关推荐