Python youtube-upload打开文件对话框

时间:2017-09-12 04:04:26

标签: python youtube-api

当我在我的cmd上键入youtube-upload --title="The Chain ~ The Guardians Of The Galaxy Vol. 2" The_Chain.mp4时,会打开一个文件对话框。我已经正确安装了youtube-upload。请帮忙

1 个答案:

答案 0 :(得分:0)

您可以关注此answer中的SO post。 一个

:: == 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时,second answer也很有用。

  

进入Python后,您可能需要调查YouTube API which can be accessed directly from Python

     

要开始使用,我会使用youtube-upload实际上可以使用的事实   作为python模块加载,然后而不是调用subprocess你   可以导入youtube-upload并调用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()