我正在尝试找到一种方法从YouTube检索我自己的私人播放列表,以便在我自己的个人网站上显示。到目前为止,所有文档似乎都说,检索私人用户数据(如私人播放列表)需要您网站的用户通过身份验证过程才能提供自己的身份验证。
就我而言,我不希望我的用户进行身份验证,我希望我的网站每次访问 Youtube 数据 API 时都对我自己的帐户进行身份验证,以便检索我自己的私人播放列表。
这可能吗?我认为如果我可以为自己的帐户保存身份验证令牌,这可能是可行的,但显然令牌发生了变化?我应该通过什么方法获取我自己的帐户的初始授权令牌?
您可以浏览一次适用于已安装应用程序的 OAuth 2 流,然后生成并保存刷新令牌。然后,服务器端代码可以使用刷新令牌获取有效的访问令牌,只要它需要代表您进行 API 调用。如果您正确编码,这可能会对您网站的访问者完全隐藏。
Credential credential = getCredentials();
youTube = new YouTube.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName("Playlist Web App").build();
YouTube.Playlists.List searchList = youTube.playlists().list("id,snippet,contentDetails");
searchList.setFields("etag,eventId,items(contentDetails,etag,id,kind,player,snippet,status),kind,nextPageToken,pageInfo,prevPageToken,tokenPagination");
searchList.setMine(true);
searchList.setMaxResults((long) 10);
PlaylistListResponse playListResponse = searchList.execute();
List<Playlist> playlists = playListResponse.getItems();
if (playlists != null) {
Iterator<Playlist> iteratorPlaylistResults = playlists.iterator();
if (!iteratorPlaylistResults.hasNext()) {
System.out.println(" There aren't any results for your query.");
}
while (iteratorPlaylistResults.hasNext()) {
Playlist playlist = iteratorPlaylistResults.next();
System.out.println(" Playlist Id : " + playlist.getId());
System.out.println(" Title: " + playlist.getSnippet().getTitle());
}
}