2015-07-26 6 views
0

Я пытаюсь написать очень простой скрипт, который проходит в CSV-файле и запускает youtube-dl (и указанные аргументы) для каждой ссылки в файле, сохраняя файлы на определенный каталог.TypeError в команде subprocess для youtube-dl

Формат csv - Исполнитель, название, ссылка. А сценарий:

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

В настоящее время ваш второй аргумент subprocess.call, который определяет bufsize, равен row.Link, который, по-видимому, является URL-адресом, который вы хотите загрузить. Вместо "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"]) 
+0

Danke sehr Phillip! Очень признателен. Это работало как шарм. – Tikiyetti

 Смежные вопросы

  • Нет связанных вопросов^_^