YouTube上传v3 - 400错误请求



我注意到当我试图通过上传视频时,我得到了相当多的HTTP 400失败:https://developers.google.com/youtube/v3/docs/videos/insert

我正在使用Go SDK从谷歌:code.google.com/p/google-api-go-client

上传失败的共同点是在视频片段数据(标题/描述)的某个地方有像<, >这样的字符。如果我删除冲突字符,视频上传会很好。

我似乎在文档中找不到,但是我是否需要做一些消毒?HTML转义吗?移除所有^A-Za-z0-9的东西?<(如<3)的非html用法如何?那么unicode字符呢?我困惑。

编辑:为了回答我的问题,这里是我写的一个小技巧,以对抗谷歌讨厌>, <字符的问题。我只是用看起来相似的不同UNICODE字符替换它们。

// < and > need to be stripped out, or the upload will throw 400 error
// https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:description
sanitize := func(val string) string {
    replacements := map[string]string{
        "<": "≺",
        ">": "≻",
    }
    for k, v := range replacements {
        val = strings.Replace(val, k, v, -1)
    }
    return val
}

一个问题是:

这些是从Google Discovery自动生成的Go库可用的"新风格"Google服务的JSON描述文件api。

通知电子邮件:http://groups.google.com/group/golang-nuts/browse_thread/thread/6c7281450be9a21e

状态:相对于其他Google API客户端,这个库是标记为α。一些高级功能可能无法工作。请归档bug如果发现任何问题。

由于它们是从JSON服务定义自动生成的,因此它们可能错过了适当的翻译。根据API文档,假设您正在使用http协议,视频信息将作为JSON blob发送。

Go将为您转换特殊字符。因此<>,等成为JSON有效的unicode转义序列。Google可能不喜欢转义序列,所以您可能想尝试发送文字字符。但我真的怀疑这是问题所在。

也,因为你提到<> youtube不会让你把HTML,所以如果这是你正在做的,或者看起来像HTML的东西,这可能是你无效字符错误的原因。你需要清除任何看起来像html.

的内容。

看这篇文章:

https://groups.google.com/forum/!主题/youtube-api-gdata EcYPPlHjllY

显示golang生成unicode转义序列:

http://play.golang.org/p/hv2h7PA0tr

相关内容

  • 没有找到相关文章

最新更新