如何检查YouTube频道是否处于活动状态

如何检查YouTube频道是否处于活动状态,youtube,youtube-api,Youtube,Youtube Api,无论用户是否创建了频道,youtube api都会返回该特定用户的频道 Java API YouTube.Channels.List search = youTube.get().channels().list("id); search.setPart("id"); ChannelListResponse res = search.execute(); List<Channel> searchResultList = search.getItems() Channel channel

无论用户是否创建了频道,youtube api都会返回该特定用户的频道

Java API

YouTube.Channels.List search = youTube.get().channels().list("id);
search.setPart("id");
ChannelListResponse res = search.execute();
List<Channel> searchResultList = search.getItems()
Channel channel = searchResultList.get(0); // there is always a channel
对于经过身份验证的用户,该频道似乎存在,但当转到YouTube配置文件时,它表示您必须创建一个频道才能上载视频。创建一个频道,或者如果在用户未经身份验证的情况下访问url,它会说该频道目前不可用。请稍后再试


如何检查youtube频道是否处于活动状态。我必须尝试上传到它吗

有两种方法可以做到这一点:

当您进行播放列表管理或视频上传等API调用时,如果没有链接的频道,API将抛出GoogleJsonResponseException。下面是一段代码片段,它显示了在没有频道的情况下尝试调用播放列表更新API时发生的情况:

try {
    yt.playlistItems().insert("snippet,contentDetails", playlistItem).execute();
} catch (GoogleJsonResponseException e) {
    GoogleJsonError error = e.getDetails();
    for(GoogleJsonError.ErrorInfo errorInfo : error.getErrors()) {
        if(errorInfo.getReason().equals("youtubeSignupRequired")) {
        // Ask the user to create a channel and link their profile   
        }
     }
}
当您将youtubeSignupRequired作为错误的原因时,您会想做些什么

另一种方法是提前检查。拨打一个频道。列出通话列表并检查项目/状态。您要查找的布尔值被链接为等于true。请注意,我在此示例代码中插入了强制转换,因为在此示例的版本中,客户端返回的是字符串值,而不是类型化的布尔值:

YouTube.Channels.List channelRequest = youtube.channels().list("status");
channelRequest.setMine("true");
channelRequest.setFields("items/status");
ChannelListResponse channelResult = channelRequest.execute();
List<Channel> channelsList = channelResult.getItems();
for (Channel channel : channelsList) {
    Map<String, Object> status = (Map<String, Object>) channel.get("status");
    if (true == (Boolean) status.get("isLinked")) {
        // Channel is linked to a Google Account
    } else {
        // Channel is NOT linked to a Google Account
    }
}

有两种方法可以做到这一点:

当您进行播放列表管理或视频上传等API调用时,如果没有链接的频道,API将抛出GoogleJsonResponseException。下面是一段代码片段,它显示了在没有频道的情况下尝试调用播放列表更新API时发生的情况:

try {
    yt.playlistItems().insert("snippet,contentDetails", playlistItem).execute();
} catch (GoogleJsonResponseException e) {
    GoogleJsonError error = e.getDetails();
    for(GoogleJsonError.ErrorInfo errorInfo : error.getErrors()) {
        if(errorInfo.getReason().equals("youtubeSignupRequired")) {
        // Ask the user to create a channel and link their profile   
        }
     }
}
当您将youtubeSignupRequired作为错误的原因时,您会想做些什么

另一种方法是提前检查。拨打一个频道。列出通话列表并检查项目/状态。您要查找的布尔值被链接为等于true。请注意,我在此示例代码中插入了强制转换,因为在此示例的版本中,客户端返回的是字符串值,而不是类型化的布尔值:

YouTube.Channels.List channelRequest = youtube.channels().list("status");
channelRequest.setMine("true");
channelRequest.setFields("items/status");
ChannelListResponse channelResult = channelRequest.execute();
List<Channel> channelsList = channelResult.getItems();
for (Channel channel : channelsList) {
    Map<String, Object> status = (Map<String, Object>) channel.get("status");
    if (true == (Boolean) status.get("isLinked")) {
        // Channel is linked to a Google Account
    } else {
        // Channel is NOT linked to a Google Account
    }
}

我是艾伦。如果这是最好的答案,如果你将这个问题设置为已回答,那么当我在寻找帮助的人时,它不会出现在我的提要中,这将非常有帮助!我也很想,但我还不太适应。当我尝试通过Java和api资源管理器时,没有返回任何通道。当我尝试为经过身份验证的用户获取通道列表时,状态从未填充。我能够重现“youTubeSignupRequired”异常。再次感谢你,艾伦。如果这是最好的答案,如果你将这个问题设置为已回答,那么当我在寻找帮助的人时,它不会出现在我的提要中,这将非常有帮助!我也很想,但我还不太适应。当我尝试通过Java和api资源管理器时,没有返回任何通道。当我尝试为经过身份验证的用户获取通道列表时,状态从未填充。我能够重现“youTubeSignupRequired”异常。再次感谢。