youtubedl,作为子进程调用,无法识别链接

2022-01-19 00:01:05 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我正在编写一个基本的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。有人能帮忙吗