2017-09-12 5 views

答えて

0

このSO postanswerに従うことができます。 また

:: == 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にしているときに便利です。

Pythonを使用したら、YouTube API which can be accessed directly from Pythonを調べることをお勧めします。その後、私はユーチューブアップロードが実際に は、Pythonモジュールとしてロードすることができたという事実を使用すると思い始めるため

、代わりにサブプロセスを呼び出します はユーチューブアップロードをインポートして、ユーチューブ-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() 
関連する問題