:: == 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
To get started I'd use the fact that youtube-upload could in fact be
loaded as a python module, then instead of calling subprocess you
could import youtube-upload and call youtube-upload.main(commandline).
核心计划如下:
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()
您可以在SO post中跟随answer。 a
此外,second answer在您进入python时也很有用。你知道吗
核心计划如下:
实用程序可以是这样的:
相关问题 更多 >
编程相关推荐