python - 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/@#@ $>?
请注意,这里我更改了原始网址。
解决方案
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)
推荐阅读
- angular - Angular:强制验证模板驱动的表单
- python - (Python) Windows 中的 Tesseract 安装问题
- flutter - Flutter web - 向下滚动时淡入
- css - 在后台使用时 SVG 模式不起作用
- windows - 使用 vcpkg 和修改的 setup.h 配置文件重建 wxWidgets 安装
- c++ - 在单线程环境中具有可重入函数的意义是什么?
- linux - 以非 root 身份运行容器化应用程序 - 健全性检查
- database - 无法连接到服务器:超时已过期
- javascript - 当我在 async/await 中捕获错误时,我遇到了问题。try中的语句不会被执行而是直接跳转到error
- python - 在pygame中移动蛇