首页 > 解决方案 > Python 脚本只从 url 列表中下载第一个视频

问题描述

我制作了一个 python 脚本来使用 youtube-dl 下载一些视频。当我运行脚本时,它会下载第一个视频,然后继续打印已经为所有其他视频下载的视频。

这是脚本:

import re , os
formula = re.compile(r'https.+')

os.chdir('/home/ubuntu/Desktop/TO MASTER THIS VACATION')
urls = []
with open('Python necessary videos.txt' , 'r') as f:
    for line in f:
        mo = formula.findall(line)
        if mo:
            urls.append(mo[0])
cmd = 'youtube-dl -f 22 '
for i in urls:
    print("Video url : "+str(i))
    cmd = cmd + str(i)
    os.system(cmd)

我究竟做错了什么??

附言

因为它被要求分享一些“Python必要的videos.txt”行。在这里,我分享其中的几行...

Python教程 1 https://youtu.be/ *$!@&_

Python教程 2 https://youtu.be/@#@ $>?

请注意,这里我更改了原始网址。

标签: pythonregexyoutube-dl

解决方案


cmd = cmd + str(i)

您不断将新的 URL 附加到命令中,因此在您调用的第一次迭代中

youtube-dl -f 22 url1

在下一次迭代中

youtube-dl -f 22 url1 url2

等等。

您应该为基本命令使用不同的变量名称,以便cmd每次都创建新的,而不是重复使用以前的 URL。

例如:

base_cmd = 'youtube-dl -f 22 '
# ...
cmd = base_cmd + str(i)

推荐阅读