youtube-dl 的子进程命令中出现类型错误

TypeError in subprocess command for youtube-dl

我正在尝试编写一个非常简单的脚本,它传入一个 .csv 文件和文件中每个 link 的 运行s youtube-dl(和指定的参数)-将文件保存到某个目录。

csv 格式为艺术家;标题;Link。和脚本:

import pandas as pd
import subprocess

def get_music(csv):

df = pd.read_csv(csv, sep=";", skipinitialspace=True)

for _, row in df.iterrows():        
    subprocess.call(['youtube-dl', "x",
                    "--output ~/mydir/%(title)s.%(ext)s",
                    "--extract-audio", "--youtube-skip-dash-manifest",
                    "--prefer-ffmpeg", "--audio-format", "mp3"], row.Link)


get_music("CSV.csv")

当我 运行 但是,我收到以下错误:

"raise TypeError("bufsize 必须是整数") TypeError: bufsize 必须是一个整数"

恐怕我不明白 bufsize 是如何传递整数以外的东西的。简而言之,我做错了什么,我应该如何解决?

目前,您指定 bufsize 的 subprocess.call 的第二个参数是 row.Link,这似乎是您要下载的 URL。传入实际的 link,而不是 "x"。此外,没有选项 "--output ~/mydir/%(title)s.%(ext)s",因为选项名称不包含空格。很可能,你想要

subprocess.call(['youtube-dl', row.Link,
                 "--output", "~/mydir/%(title)s.%(ext)s",
                 "--extract-audio", "--youtube-skip-dash-manifest",
                 "--prefer-ffmpeg", "--audio-format", "mp3"])