YouTube 数据 API 一些视频没有 return 频道
YouTube Data API some videos do not return channel
我使用 YouTube 数据 API 从查询结果(视频)中获取一些信息。
大多数视频 return 其数据正确。但是有些视频没有 return 频道标题(所有其他字段 return 都是正确的)。
com.google.api.services.youtube.YouTube.Search.List search = youtube.search().list("id,snippet");
search.setKey(getString(R.string.APIKEYYOUTUBE));
search.setQ("hi");
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/medium/url,snippet/channelTitle,snippet/publishedAt)");
search.setMaxResults(7);
[...]
String vId = rId.getVideoId();
String test = singleVideo.getSnippet().getChannelTitle();
示例:
第二个视频return编辑:
vId = "Kgw9xKQX-dI"
test = "htmailru"
第三个视频 returned :
vId = "Q_6XNufgvA4"
test = ""
但是如果我证明了 youtube 中的第三个视频 ID,它(正如预期的那样)有一个频道标题。
有什么想法吗?
这个问题好像是两年前的报道了,可惜 Google 还没有回复。记者表示,只要频道标题包含space,channelTitle
就会返回空白。 (在您的示例中,Q_6XNufgvA4 的频道标题是 "World's Best Videos,",其中确实包含 space。)
https://code.google.com/p/gdata-issues/issues/detail?id=6104
幸运的是,作为一种解决方法,channelTitle
在从 videos.list
and channels.list
返回时似乎可以正确填充。
videos.list:
使用搜索响应中的 videoId
GET https://www.googleapis.com/youtube/v3/videos?part=snippet&
id=Q_6XNufgvA4&
fields=items%2Fsnippet%2FchannelTitle&
key={YOUR_API_KEY}
returns
{
"items": [
{
"snippet": {
"channelTitle": "World's Best Videos"
}
}
]
}
channels.list:
您可以从您的搜索响应 (items/snippet/channelId
) 中获取 channelId
并按如下方式发送请求。
GET https://www.googleapis.com/youtube/v3/channels?part=snippet&
id=UCHqBLGGOvojeQswyJptjukA&
fields=items%2Fsnippet%2Ftitle&
key={YOUR_API_KEY}
returns
{
"items": [
{
"snippet": {
"title": "World's Best Videos"
}
}
]
}
我使用 YouTube 数据 API 从查询结果(视频)中获取一些信息。
大多数视频 return 其数据正确。但是有些视频没有 return 频道标题(所有其他字段 return 都是正确的)。
com.google.api.services.youtube.YouTube.Search.List search = youtube.search().list("id,snippet");
search.setKey(getString(R.string.APIKEYYOUTUBE));
search.setQ("hi");
search.setType("video");
search.setFields("items(id/kind,id/videoId,snippet/title,snippet/thumbnails/medium/url,snippet/channelTitle,snippet/publishedAt)");
search.setMaxResults(7);
[...]
String vId = rId.getVideoId();
String test = singleVideo.getSnippet().getChannelTitle();
示例:
第二个视频return编辑:
vId = "Kgw9xKQX-dI"
test = "htmailru"
第三个视频 returned :
vId = "Q_6XNufgvA4"
test = ""
但是如果我证明了 youtube 中的第三个视频 ID,它(正如预期的那样)有一个频道标题。
有什么想法吗?
这个问题好像是两年前的报道了,可惜 Google 还没有回复。记者表示,只要频道标题包含space,channelTitle
就会返回空白。 (在您的示例中,Q_6XNufgvA4 的频道标题是 "World's Best Videos,",其中确实包含 space。)
https://code.google.com/p/gdata-issues/issues/detail?id=6104
幸运的是,作为一种解决方法,channelTitle
在从 videos.list
and channels.list
返回时似乎可以正确填充。
videos.list:
使用搜索响应中的 videoId
GET https://www.googleapis.com/youtube/v3/videos?part=snippet&
id=Q_6XNufgvA4&
fields=items%2Fsnippet%2FchannelTitle&
key={YOUR_API_KEY}
returns
{
"items": [
{
"snippet": {
"channelTitle": "World's Best Videos"
}
}
]
}
channels.list:
您可以从您的搜索响应 (items/snippet/channelId
) 中获取 channelId
并按如下方式发送请求。
GET https://www.googleapis.com/youtube/v3/channels?part=snippet&
id=UCHqBLGGOvojeQswyJptjukA&
fields=items%2Fsnippet%2Ftitle&
key={YOUR_API_KEY}
returns
{
"items": [
{
"snippet": {
"title": "World's Best Videos"
}
}
]
}