【发布时间】:2014-04-02 23:38:10
【问题描述】:
我一直在尝试制作一个将 YouTube 视频上传到我的频道的脚本,我希望在上传时有一个进度条,因此我一直在尝试修改此脚本,而不是直接使用 YouTube API:@987654321 @ 允许直接从另一个脚本而不是命令行调用。
你可以在这里查看我当前版本的脚本:http://pastebin.com/3BpTHBXm
我得到的错误:
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(keywords, "UTF-8")
我认为这可能与编码有关的另一个原因是我昨天在我的 Windows 机器上运行脚本非常好,但它在我目前使用的 Linux 机器上不起作用(我不几天无法访问我的 Windows 机器,所以我无法确认它是否仍然可以在 Windows 机器上运行,我可能从那时起不小心编辑了代码?我不认为我这样做了)。所以我在想这可能与 Linux 与 Windows 相比如何编码东西有关?只是一个疯狂的猜测。
P.S 我在 pastebin 上编辑的脚本的唯一内容是用户名和密码,所以所有其他数据仍然是相同的,如标题、描述和关键字。
非常感谢任何帮助,如果您需要我提供更多信息,请告诉我。
【问题讨论】:
-
我讨厌乞求,但是有什么想法吗?我已经盯着代码看了好几个小时,只是不知道从哪里开始。
标签: python youtube youtube-api gdata-api