-1
當我在我的cmd上鍵入youtube-upload --title="The Chain ~ The Guardians Of The Galaxy Vol. 2" The_Chain.mp4
時,它會打開一個文件對話框。我已經正確地安裝了youtube-upload。請幫助Python youtube-upload打開文件對話框
當我在我的cmd上鍵入youtube-upload --title="The Chain ~ The Guardians Of The Galaxy Vol. 2" The_Chain.mp4
時,它會打開一個文件對話框。我已經正確地安裝了youtube-upload。請幫助Python 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
此外,當你進入蟒蛇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()