我一直在尝试制作一个将YouTube视频上传到我的频道的脚本,我想在上传中设置一个进度条,而不是直接使用YouTube API,我一直在尝试修改此脚本:{{ 3}}允许直接从另一个脚本而不是命令行调用。
您可以在此处查看我当前的脚本版本:http://code.google.com/p/youtube-upload/wiki/Readme
我得到的错误:
Traceback (most recent call last):
File "youtube_upload.py", line 606, in <module>
print upload_youtube_video("youtube@email.com", "password", "This is a test title", "this is a test description", "Games", "test tag, I like tagging, tagging is fun", "/root/test video.mp4")
File "youtube_upload.py", line 594, in upload_youtube_video
url = upload_from_script(email, password, title, description, category, keywords, file_path)
File "youtube_upload.py", line 588, in upload_from_script
return run_main(parser, options, args)
File "youtube_upload.py", line 454, in run_main
url = upload_video(youtube, options, video_path, len(args), index)
File "youtube_upload.py", line 371, in upload_video
data = youtube.get_upload_form_data(*args, **kwargs)
File "youtube_upload.py", line 204, in get_upload_form_data
post_url, token = self.service.GetFormUploadToken(entry)
File "/usr/local/lib/python2.7/dist-packages/gdata/youtube/service.py", line 721, in GetFormUploadToken
raise YouTubeError(e.args[0])
gdata.youtube.service.YouTubeError: {'status': 400, 'body': "<?xml version='1.0' encoding='UTF-8'?><errors><error><domain>yt:validation</domain><code>invalid_character</code><location type='xpath'>media:group/media:keywords/text()</location></error></errors>", 'reason': 'Validation Failed'}
我一直在试图弄清楚它有什么问题,而且我从错误信息中收集的内容中,关键字中存在无效字符,但打印关键字值只是按照您的预期显示标记。没有无效字符(Youtube文档说明允许所有有效的UTF-8字符)
我认为这可能与编码有关。虽然我尝试将字符串转换为UTF-8并没有区别(但也许我做错了?我使用了unicode(关键字,“UTF-8”)
我认为可能与编码有关的另一个原因是我昨天在我的Windows机器上完全运行了脚本,但它在我现在使用的Linux机器上不起作用(我不是我可以访问我的Windows机器几天,所以我无法确认它是否仍然可以在Windows机器上运行,我可能不小心编辑了代码?我不认为我做了)。所以我想也许这与Linux编码的东西相比有什么关系?只是一个疯狂的猜测。
P.S我在pastebin上编辑脚本的唯一事情就是用户名和密码,所以所有其他数据仍然与标题,描述和关键字相同。
如果您需要我提供更多信息,请随时与我们联系。
答案 0 :(得分:0)
想出来,只需要剥去引号。