我尝试编写一个非常简单的脚本,该脚本传入一个.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是如何传递除整数以外的东西。简单地说,我做错了什么,我该如何解决?
答案 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"])