youtube v3 api获取频道ID

时间:2017-06-21 05:48:15

标签: api youtube youtube-data-api android-youtube-api youtube-channels

我正在学习使用youtube data api v3来显示播放列表列表,并进一步显示来自以下链接的每个播放列表的视频列表 https://developers.google.com/youtube/v3

我能够获得频道ID的播放列表。还有每个播放列表,视频列表。

在此之前我需要通道ID来完成其余的操作。输入将是频道的名称,输出应该是包含唯一频道ID的详细信息。 下面是我尝试的代码片段,但我总是得到null结果。代码的其他部分(通过硬编码通道id)效果很好。

    public class GetChannelInfoAsyncTask extends AsyncTask<String, Void, ChannelListResponse> {
private static final String YOUTUBE_CHANNELLIST_PART = "snippet";
private static final String YOUTUBE_CHANNELLIST_FIELDS = "items(id,snippet(title))";

private YouTube mYouTubeDataApi;

public GetChannelInfoAsyncTask(YouTube api) {
    mYouTubeDataApi = api;
}

@Override
protected ChannelListResponse doInBackground(String... params) {
    final String channelName = params[0];

    ChannelListResponse channelListResponse = null;

    try {
        channelListResponse = mYouTubeDataApi.channels()
                .list(YOUTUBE_CHANNELLIST_PART)
                .setForUsername(channelName)
                .setAlt(ApiKey.YOUTUBE_API_KEY)
                .execute();
    } catch (IOException e) {
        e.printStackTrace();
    }

    return channelListResponse;
}

}

参考 https://developers.google.com/youtube/v3/docs/channels/list 并尝试使用列表的EXECUTE选项(通过YouTube用户名)获得200(OK)成功。但是上面的代码总是空的。

2 个答案:

答案 0 :(得分:1)

我来不及了,但是我有一个答案。要通过v3 API获取YouTube频道的ID,请使用以下参数向https://www.googleapis.com/youtube/v3/search发送HTTP GET请求:

  • part = snippet
  • type = channel
  • fields = items%2Fsnippet%2FchannelId
  • q = {YOUTUBE_CHANNEL_NAME}
  • key = {YOUR_API_KEY}

如果需要更多信息,请更改fields键的值。

尝试here


官方指南:Work with Channel IDs

答案 1 :(得分:0)

Youtube data v3 API:这里是通过频道名称查找channel_id的get请求

https://www.googleapis.com/youtube/v3/channels?forUsername={CHANNEL_NAME}&part=snippet,id&key={API_KEY}