我试图制作一个脚本来运行youtube-dl包,以便直接从youtube视频中提取mp3。
我可以使用os.system()
这样做:
#! /usr/bin/env python3
import os
#getting the youtube video link
vlink = input('Enter the youtube video link: ')
cmd = "youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 " + vlink
os.system(cmd)
我想尝试使用subprocess.call()
/ subprocess.Popen()
来完成此操作。
我尝试过在函数中输入参数的许多变体,但它们都返回错误,希望有人能指导我,谢谢!
答案 0 :(得分:0)
通常,您可以使用shlex.split
来分割参数:
import shlex
import subprocess
subprocess.call(shlex.split("youtube-dl --extract-audio --audio-format mp3 --audio-quality 0 " + vlink))
但是,您可能也不需要它:
import shlex
import subprocess
subprocess.call([
"youtube-dl",
"--extract-audio",
"--audio-format",
"mp3",
"--audio-quality",
"0",
vlink])
请注意,默认情况下,subprocess
会绕过您的shell,因此如果您在shell配置文件中对环境进行路径修改,则可能需要指定特定的env
。