2017-09-12 77 views

回答

0

您可以按照此SO post中的answer。 一個

:: == 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 

此外,當你進入蟒蛇second answer是非常有用的。

一旦進入Python,您可能會喜歡調查YouTube API which can be accessed directly from Python

要開始我使用的YouTube上傳實際上可以 加載一個Python模塊,然後,而不是調用子你 可以導入YouTube的上傳和呼叫的YouTube-upload.main(命令行)的事實。

核心方案將是這樣的:

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()]}) 

和公用設施可能是這樣的:

#!python 
""" 
Upload media files specified in a CSV file to YouTube using youtube-upload script. 

CSV File exported from Excel (i.e. commas properly quoted) 
First line contains upload parameters as column headers 
Subsequent lines contain per media file values for the corresponding options. 
e.g. 
file,description,category,tags... 
test.mp4,A.S. Mutter,A.S. 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()