我们遇到了一个意外的限制,即视频'标签'属性中记录的最多500个字符,无论是在交互式地直接输入标签到YouTube UI还是使用Data API v3视频资源片段对象时。
我们正在使用YouTube Data API v3与来自ASP.Net C#网络应用程序的YouTube进行交互,该应用程序使用适用于.NET的Google API客户端库。
在测试过程中,我们注意到只有单个关键字标签支持500个字符,但是当关键字中遇到任何空格时,例如人们的名称,每个空格似乎都有开销和结果意外地超过了500个字符的限制。
YouTube文档指出,标签最多可以包含500个字符,并且标签字段包含以逗号分隔的列表,列表中的项目之间的逗号和标记之间的空格中的逗号计入限制。< / p>
虽然没有提到空格的确切处理方式,但是单个空格字符似乎将整个字段大小计算为多个非空白字符,从而有效地减少了可以支持的标记长度。涉及空间。
有人可以就上述问题提出建议吗?
答案 0 :(得分:1)
如果标记包含空格,则API服务器会处理标记值,就好像它用引号括起来一样,并且引号计入字符限制。因此,出于字符限制的目的,标签Foo-Baz包含七个字符,但标签Foo Baz包含九个字符。
答案 1 :(得分:1)
Youtube为每个带空格的单词添加两个引号
example: hello world // 10 letters + 1 space + 2 quotation marks = 13chars.
hello,world // 10 letters + 1 comma = 11chars.
在javascript中我会进行下一次验证来控制:
function tagsValidator (values) {
//calculate num spaces (youtube add 2 quotes mark by space)
var numSpaces = values.replace(/[^\s]/g,'').length,
numTags = values.split(",").length,
numChars = (numTags+(numSpaces*2));
if(numChars>500) return false;
return true;
}
答案 2 :(得分:0)
这对我来说似乎很好
const tagsOverMaxLength = (tags) => {
let length = 0
for (const tag of tags) {
length += tag.length
// each tag adds 1 char for the seperator
length += 1
// if the tag contains spaces it adds 2 chars
// because it gets wrapped in quotes
if (tag.match(' ')) {
length += 2
}
}
if (length > 500) {
return true
}
}