如何使用YouTube API V3?

蓝色

我试图弄清楚如何在我的iOS应用程序中使用新的YouTube API(版本3),但我不知道该怎么做。我对此进行了很多研究,但是发现所有旧API的示例和代码都是无效的。直到现在,我确实了解到,要使用新的API,您必须在Google Developer Console中创建一个项目(我做到了)...但是后来他们将您发送到带有一些代码的页面,但我真的不明白如何使用它。链接到Google API页面我需要知道的是如何从YouTube视频的给定URL中检索一些信息,我需要的信息是“喜欢”的总数和“观看”的总数...使用API​​ 2,操作非常简单它...但是现在我真的不知道从哪里开始...是否有人可以用一些示例和一些代码来说明如何实现这一目标?我很确定会有很多人从中受益。

日航

您无需使用Google提供的iOS客户端即可发出此类请求。

  1. 导航到API控制台并为您的iOS应用程序生成一个新的“简单API访问”密钥。确保在提供的窗口中输入应用的捆绑包标识符。或者,您可以创建服务器API密钥以使用基本请求进行测试,并从命令行进行卷曲。

  2. 找到您需要的相关端点。要查找有关视频的信息,您将需要使用Videos.list方法。

首先,设置您的URL。我将以以下网址为例:https : //www.youtube.com/watch?v=AKiiekaEHhI

您将要为part参数指定一个值从你的问题,它看起来像你会想在传递snippetcontentDetailsstatistics值(虽然喜欢和看法,你真的只需要statistics值)。

然后传入id视频的(在这种情况下AKiiekaEHhI,您最多可以添加50个逗号分隔的ID)和您的API密钥。您的网址应如下所示:

https://www.googleapis.com/youtube/v3/videos?part=contentDetails%2C+snippet%2C+statistics&id=AKiiekaEHhI&key={YOUR_API_KEY}

您也可以在API Explorer中执行此操作

迅捷的实现:

// Set up your URL
let youtubeApi = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails%2C+snippet%2C+statistics&id=AKiiekaEHhI&key={YOUR_API_KEY}"
let url = NSURL(string: youtubeApi)

// Create your request
let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in
    do {
        if let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as? [String : AnyObject] {

            print("Response from YouTube: \(jsonResult)")
        }
    }
    catch {
        print("json error: \(error)")
    }

})

// Start the request
task.resume()

目标C实施:

(这篇文章已经过编辑以支持NSURLSession。有关使用的实现NSURLConnection,请检查编辑历史记录)

// Set up your URL
NSString *youtubeApi = @"https://www.googleapis.com/youtube/v3/videos?part=contentDetails%2C+snippet%2C+statistics&id=AKiiekaEHhI&key={YOUR_API_KEY}";
NSURL *url = [[NSURL alloc] initWithString:youtubeApi];

// Create your request
NSURLRequest *request = [NSURLRequest requestWithURL:url];

// Send the request asynchronously
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *connectionError) {

    // Callback, parse the data and check for errors
    if (data && !connectionError) {
        NSError *jsonError;
        NSDictionary *jsonResult = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];

        if (!jsonError) {
            NSLog(@"Response from YouTube: %@", jsonResult);
        }
    }
}] resume];

您的日志如下所示:

Response from YouTube: {
    etag = "\"NO6QTeg0-3ShswIeqLchQ_mzWJs/AAjIATmVK_8ySsAWwEuNfdZdjW4\"";
    items =     (
                {
            contentDetails =             {
                caption = false;
                definition = hd;
                dimension = 2d;
                duration = PT17M30S;
                licensedContent = 1;
            };
            etag = "\"NO6QTeg0-3ShswIeqLchQ_mzWJs/8v8ee5uPZQa1-ucVdjBdAVXzcZk\"";
            id = AKiiekaEHhI;
            kind = "youtube#video";
            snippet =             {
                categoryId = 20;
                channelId = UCkvdZX3SVgfDW8ghtP1L2Ug;
                channelTitle = "Swordless Link";
                description = "Follow me on Twitter! http://twitter.com/swordlesslink\n\nFollow me on TwitchTV for live video game streaming! http://twitch.tv/swordlesslink";
                liveBroadcastContent = none;
                localized =                 {
                    description = "Follow me on Twitter! http://twitter.com/swordlesslink\n\nFollow me on TwitchTV for live video game streaming! http://twitch.tv/swordlesslink";
                    title = "The Legend of Zelda: Majora's Mask With Glitches - Part 17: Going Against the Flow";
                };
                publishedAt = "2015-05-04T10:01:43.000Z";
                thumbnails =                 {
                    default =                     {
                        height = 90;
                        url = "https://i.ytimg.com/vi/AKiiekaEHhI/default.jpg";
                        width = 120;
                    };
                    high =                     {
                        height = 360;
                        url = "https://i.ytimg.com/vi/AKiiekaEHhI/hqdefault.jpg";
                        width = 480;
                    };
                    medium =                     {
                        height = 180;
                        url = "https://i.ytimg.com/vi/AKiiekaEHhI/mqdefault.jpg";
                        width = 320;
                    };
                    standard =                     {
                        height = 480;
                        url = "https://i.ytimg.com/vi/AKiiekaEHhI/sddefault.jpg";
                        width = 640;
                    };
                };
                title = "The Legend of Zelda: Majora's Mask With Glitches - Part 17: Going Against the Flow";
            };
            statistics =             {
                commentCount = 54;
                dislikeCount = 3;
                favoriteCount = 0;
                likeCount = 265;
                viewCount = 6356;
            };
        }
    );
    kind = "youtube#videoListResponse";
    pageInfo =     {
        resultsPerPage = 1;
        totalResults = 1;
    };
} with error: nil

items密钥的对象将是您传递给请求的每个视频ID的信息数组。

通过深入研究此响应,您将能够获取所需的信息。例如:

if let items = jsonResult["items"] as? [AnyObject]? {
    println(items?[0]["statistics"])
}

将为您提供有关视频统计信息的字典(您可以在其中获得喜欢的次数和观看次数)。

{
    commentCount = 54;
    dislikeCount = 3;
    favoriteCount = 0;
    likeCount = 265;
    viewCount = 6356;
}

直播活动可以使用相同的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用多个随机YouTube v3 API密钥

来自分类Dev

使用 php,我如何使用 youtube v3 api 在我的网站上上传 youtube 视频?

来自分类Dev

使用Youtube V3 API的YouTube相关视频

来自分类Dev

如何使用YouTube数据API v3检查YouTube视频是否存在

来自分类Dev

如何使用youtube api v3获取youtube视频的完整描述

来自分类Dev

如何使用YouTube Analytics(分析)API v3获取youtube视频的共享计数?

来自分类Dev

如何使用youtube API V3安排youtube视频(C#)

来自分类Dev

如何使用youtube api v3获取youtube视频的完整描述

来自分类Dev

如何使用 Youtube API v3 将 Youtube 视频静音?

来自分类Dev

Youtube v3 API视频语言

来自分类Dev

Youtube API V3和Etag

来自分类Dev

Youtube API v3 .NET集成

来自分类Dev

页面令牌youtube api v3

来自分类Dev

YouTube API v3获取评论

来自分类Dev

youtube数据API v3搜索

来自分类Dev

Youtube API V3和Etag

来自分类Dev

YouTube iframe API v3限制

来自分类Dev

Gwt YouTube数据API v3

来自分类Dev

Youtube API v3获得评论

来自分类Dev

Youtube api v3添加评论

来自分类Dev

解析 youtube 数据 v3 api

来自分类Dev

Youtube V3 API-如何设置APIKey

来自分类Dev

如何在YouTube API v3中禁用评论

来自分类Dev

如何解码youtube api v3 json响应

来自分类Dev

如何获取视频Youtube的默认语言(API v3)

来自分类Dev

Youtube V3 API-如何设置APIKey

来自分类Dev

如何解码youtube api v3 json响应

来自分类Dev

使用Javascript的YouTube数据API v3

来自分类Dev

使用YouTube v3 API更新标题和描述?