Python youtubeupload打开文件对话框

2024-06-25 07:11:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 文件ofthecmdchain键入titleyoutube
1条回答
网友
1楼 · 发布于 2024-06-25 07:11:25

您可以在SO post中跟随answer。 a

:: == 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时也很有用。你知道吗

Once you are into Python you might like to investigate the YouTube API which can be accessed directly from Python.

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

相关问题 更多 >