0

我以前从未使用过 YouTube API,所以我对 API 文档完全视而不见……而且运气不佳。

我设法找到了一些可以获取视频 ID 并在应用程序中播放的示例代码。这可以。

但是,我想获取用户 ID(即频道 ID)并获取视频 ID 列表(以 JSON 格式)。

我正在查看 v3 文档...

在这里,我可以使用频道 ID 获取频道的详细信息

在这里,我可以使用频道 ID 获取属于频道的播放列表列表(但没有视频)

在这里,我可以获取视频的详细信息,但只能使用视频 ID。(或使用名称、类别等搜索...

我想要做的是使用频道 ID(我实际上拥有频道)并获取视频列表,以便我可以在应用程序中显示它们并且用户可以观看它们。

...在 JSON 中,而不是 XML。

4

2 回答 2

3

好的,所以两个小时后我完成了:)

首先,我从 Cocoapods 安装了 iOS-GTLYouTube 和 SCFNetworking 框架。

然后在应用程序委托中......

#import <GTLYouTube.h>

然后提出请求...

GTLServiceYouTube *service = [[GTLServiceYouTube alloc] init];

service.APIKey = @"my api key from google";

GTLQueryYouTube *query = [GTLQueryYouTube queryForPlaylistItemsListWithPart:@"contentDetails"];
query.playlistId = @"the playlist id I want to request";

GTLServiceTicket *ticket = [service executeQuery:query
                               completionHandler:^(GTLServiceTicket *ticket, id object, NSError *error) {
                                   if (!error) {
                                       GTLYouTubePlaylistItemListResponse *playlistItems = object;

                                       for (GTLYouTubePlaylistItem *playlistItem in playlistItems) {
                                           GTLYouTubePlaylistItemContentDetails *details = playlistItem.contentDetails;

                                           NSLog(@"PlaylistItem video ID = %@", details.videoId);
                                       }
                                   } else {
                                       NSLog(@"%@", error);
                                   }
                               }];
于 2013-08-06T23:41:35.290 回答
0

在问题中,您列出了这些端点:

  • /v3/频道
  • /v3/视频
  • /v3/播放列表

您找到的解决方案是调用此端点来获取播放列表中的视频:

  • /v3/playlistItems

在 YouTube 的 API Explorer 链接中:

https://developers.google.com/youtube/v3/docs/playlistItems/list

设置partcontentDetails, 和playlistIdYouTube 播放列表 ID。

以下是响应的相关部分:

  {
   "pageInfo": {
    "totalResults": 83,
    "resultsPerPage": 5
   },
   "items": [
    {
     "contentDetails": {
      "videoId": "kGbDymJ75PU"
     }
    },
    {
     "contentDetails": {
      "videoId": "oVPepkniuXI"
     }
    }
   ]
  }
于 2015-07-23T23:30:09.300 回答