如何通过API获取YouTube账号下所有播放列表?已实现单列表视频查询
获取指定YouTube账号下所有播放列表的API方案
你可以借助YouTube Data API v3的Channels.list和Playlists.list接口组合实现需求,具体步骤如下:
1. 从账号自定义用户名获取频道ID
你提供的@adventisthealthcare是YouTube的自定义用户名(handle)。通过Channels.list接口,指定forHandle参数为该用户名,同时设置part为contentDetails,就能拿到账号对应的频道ID。
Java示例代码片段:
// 构建Channels.list请求 YouTube.Channels.List channelsRequest = youtube.channels().list("contentDetails"); channelsRequest.setForHandle("@adventisthealthcare"); channelsRequest.setKey(API_KEY); // 执行请求并提取频道ID ChannelListResponse response = channelsRequest.execute(); if (!response.getItems().isEmpty()) { String channelId = response.getItems().get(0).getId(); // 后续用该channelId获取播放列表 }
2. 通过频道ID获取所有播放列表
拿到频道ID后,调用Playlists.list接口,设置channelId参数为刚获取的频道ID,part指定为snippet,contentDetails,同时用maxResults控制单页返回数量(最多50条),若播放列表总数超过50,需通过pageToken分页遍历。
Java示例代码片段:
String nextPageToken = null; do { // 构建Playlists.list请求 YouTube.Playlists.List playlistsRequest = youtube.playlists().list("snippet,contentDetails"); playlistsRequest.setChannelId(channelId); playlistsRequest.setMaxResults(50); playlistsRequest.setPageToken(nextPageToken); playlistsRequest.setKey(API_KEY); // 执行请求并处理结果 PlaylistListResponse playlistResponse = playlistsRequest.execute(); List<Playlist> playlists = playlistResponse.getItems(); // 遍历播放列表,调用你已实现的方法获取对应视频 for (Playlist playlist : playlists) { String playlistId = playlist.getId(); // 调用你已有的获取单个播放列表视频的逻辑 fetchVideosInPlaylist(playlistId); } // 更新分页标识 nextPageToken = playlistResponse.getNextPageToken(); } while (nextPageToken != null);
注意事项
- 确保你的API密钥已启用YouTube Data API v3权限,且配额充足(
Channels.list和Playlists.list每次请求各消耗1单位配额)。 - 若需要排除账号的默认上传列表,可通过
Channels.list返回的contentDetails.relatedPlaylists.uploads拿到该列表ID,再在遍历中过滤掉。
内容的提问来源于stack exchange,提问作者user352290
相关产品推荐
相关产品推荐

