使用YouTube Data API,我可以使用"search“API找到一个频道:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=Alexander+condrashov&type=channel&key=YOUR_API_KEY这在我的items数组中提供了一个对象。
但这是一个“搜索”API,而不是一个“频道”API。
我认为找到频道的正确方法是使用“channel : list”API。
尝试通过用户名查找频道时,我的items数组中没有任何对象:
https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&forUsername=Alexander+kondrashov&key=YOUR_API_KEY有没有人成功地使用了"Channels: list“和"forUsername”来查找频道?
发布于 2018-10-09 01:19:28
我知道这很古老,你可能已经想出了一些办法,但不幸的是,YouTube的Channels API不能很好地可靠地找到除频道ID以外的任何频道。作为一种变通方法,我将这两种方法结合起来,以获得可靠的结果(尽管它需要两次查询,并且需要更多的配额,这是很糟糕的做法)。
例如(在使用Google SDK的C#中):
public async Task<Channel> GetChannelByUsername(string username)
{
try
{
var channel = default(Channel);
var searchRequest = this.youtubeService.Search.List("snippet");
searchRequest.Q = username;
searchRequest.Type = "channel";
var searchResults = await searchRequest.ExecuteAsync();
if (searchResults != null && searchResults.Items.Count > 0)
{
var searchResult = searchResults.Items.FirstOrDefault(i => i.Snippet.ChannelTitle.ToLower() == username);
if (searchResult != null && searchResult.Snippet != null)
{
var channelSearchResult = searchResult.Snippet;
var channelListRequest = this.youtubeService.Channels.List("snippet");
channelListRequest.Id = channelSearchResult.ChannelId;
var channelListResult = await channelListRequest.ExecuteAsync();
if(channelListResult != null)
{
channel = channelListResult.Items.FirstOrDefault();
}
}
}
return channel;
}
catch (Exception ex)
{
// Handle Exception
}
}https://stackoverflow.com/questions/52242887
复制相似问题