youtube-dl

时间:2015-07-26 18:26:21

标签: subprocess typeerror youtube-dl

我尝试编写一个非常简单的脚本,该脚本传入一个.csv文件,并为文件中的每个链接运行youtube-dl(和指定的args),将文件保存到某个目录。

csv的格式是Artist; Title; 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")

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

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

我担心我不明白bufsize是如何传递除整数以外的东西。简单地说,我做错了什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

目前,您指定bufsize的subprocess.call的第二个参数是row.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"])