пакетная загрузка видео на youtube через командную строку python

Я использую скрипт из youtube-upload для загрузки видео на мой канал через командную строку.
Как запустить код для обработки всех файлов в определенной папке?
Как только я увидел пример в сети, показывая, как выгружать видео на YouTube с помощью этого же скрипта, а также получать заголовки, категории, описание и теги из файла excel csv, каждый из столбца, соответствующего имени файла в другом колонка. Я забыл сохранить этот пример, и теперь я не могу найти его или создать его самостоятельно.

кстати, я нахожусь в среде Windows 10, используя инструмент командной строки.

для загрузки одного видео, я использую этот скрипт;

youtube-upload \ --title="AS Mutter" --description="AS Mutter plays Beethoven" \ --category=Music \ --tags="mutter, beethoven" \ --recording-date="2011-03-10T15:32:17.0Z" \ --default-language="en" \ --default-audio-language="en" \ --client-secrets=client_secrets.json \ --credentials-file=client_secrets.json \ test.mp4 

Обновить

в файле csv будет одинаковое количество столбцов, так как у меня будут параметры в команде youtube-upload. Скажем, будут только заголовки, описания, категории, теги, и, конечно, первый столбец будет именем файла, если необходимо, я также добавлю местоположение файла.

 :: == ASSUMPTIONS == :: - this script is in the same directory as your CSV file :: - your CSV lines are in the following order: :: file_name;title;description;category;tags;recording_date :: - Your descriptions do not contain semicolons @echo off set video_folder="C:\path\to\your\video\folder" :: If your videos and csv file are in the same directory, you don't need the pushd or popd :: Also, I couldn't get line continuation to work inside of the for loop, so everything :: MUST be all on the same line. pushd %video_folder% for /f "tokens=1-6 delims=;" %%A in (vids.csv) do ( youtube-upload --title="%%~B" --description="%%~C" --category="%%~D" --tags="%%~E" --recording-date="%%~F" --default-language="en" --default-audio-language="en" --client-secrets=client-secrets.json --credentials-file=client_secrets.json "%%~A" ) popd pause 

Используя скрипт python, вы должны использовать модуль подпроцесса для вызова программы загрузки youtube. Вы можете написать небольшую полезность, используя это в сочетании с модулем csv и, возможно, сгладить.

Ядром программы является:

 import csv import subprocess def upload(csvfile): with open(csvfile') as f: for info in csv.DictReader(f): info.update({'client-secrets':'client_secrets.json', 'credentials-file':'client_secrets.json') subprocess.call(['youtube-upload'] + ['--{0}="{1}"'.format(k,v) for k,v in info.items()]}) 

Файл CSV должен быть экспортирован из Excel, чтобы запятые были указаны. Мы используем строку заголовка в CSV для определения параметров, которые будут переданы в командной строке на youtube-upload.

Вся утилита может выглядеть так:

 #!python """ Upload media files specified in a CSV file to YouTube using youtube-upload script. CSV File exported from Excel (ie commas properly quoted) First line contains upload parameters as column headers Subsequent lines contain per media file values for the corresponding options. eg file,description,category,tags... test.mp4,AS Mutter,AS Mutter plays Beethoven,Music,"mutter, beethoven" etc... """ import csv import subprocess def upload(csvfile): with open(csvfile) as f: for info in csv.DictReader(f): info.update({'client-secrets':'client_secrets.json', 'credentials-file':'client_secrets.json'}) commandline = ['youtube-upload'] + ['--{0}="{1}"'.format(k,v) for k,v in info.items()] #print commandline subprocess.call(commandline) def main(): import argparse p = argparse.ArgumentParser(description='youtube upload the media files specified in a CSV file') p.add_argument('-f', '--csvfile', default='vids.csv', help='file path of CSV file containing list of media to upload') args = p.parse_args() upload(args.csvfile) if __name__ == '__main__': main() 

После того, как вы попадете на Python, вам может понадобиться изучить YouTube API, к которому можно напрямую обращаться из Python .

Чтобы начать работу, я бы использовал тот факт, что youtube-upload действительно может быть загружена как модуль python, а вместо вызова subprocess вы можете import youtube-upload и вызвать youtube-upload.main(commandline) .