YoutubeAPI 快速入门

本教程需要外网环境。

本教程参考一下博客:

申请 API Key

  1. 首先去开发者平台申请API Key,第一次登录需要简单注册一下,然后创建一个新的项目,创建完成后,点击控制台。
    在这里插入图片描述

  2. 然后搜索 youtube api v3
    在这里插入图片描述

  3. 接着创建并启用此API
    在这里插入图片描述

  4. 回到控制台可以查看已启用API的密钥
    在这里插入图片描述

开发者文档

  在使用之前可以先看一下YoutubeAPI官方的开发文档,地址为:YoutubeAPI官方文档
这里的文档介绍的特别详细,还可以在线测试接口,生成代码示例,非常好用。
在这里插入图片描述

右侧就是测试接口返回的数据,对面板中的请求参数,在文档中都可以搜索出来,并且有详细的介绍和实时生成代码示例。
在这里插入图片描述

数据处理

本示例采用的是原生态json数据处理工具,因所需数据简单,未采用第三方解析json工具。解析简单的数据只需要记得{}中的是对象用jsonObject承接,[]是数据对象用JSONArray承接。示例代码如下:

json数据:

解析代码:

 try {
            //解析第一层
            JSONObject jsonObject = new JSONObject(res);
            JSONArray items = jsonObject.optJSONArray("items");
            //解析第二层
            for (int i = 0; i < items.length(); i++) {
                JSONObject item = items.optJSONObject(i);
                JSONObject id = item.optJSONObject("id");
                String videoId = id.getString("videoId");
                Log.d(TAG, "videoId: "+videoId);
                JSONObject snippet = item.getJSONObject("snippet");
                String  title = snippet.getString("title");
                Log.d(TAG, "title: "+title);
                String  description = snippet.getString("description");
                Log.d(TAG, "description: "+description);
                JSONObject thumbnails = snippet.optJSONObject("thumbnails");
                //JSONObject default1 = thumbnails.optJSONObject("default");//120x90
                //JSONObject default1 = thumbnails.optJSONObject("medium");//320x180
                //JSONObject default1 = thumbnails.optJSONObject("high");//480x360
                JSONObject default1 = thumbnails.optJSONObject("medium");
                String bgImageUrl = default1.getString("url");
                Log.d(TAG, "url: "+bgImageUrl);
                String videoUrl = VIDEOURL+videoId;
                Movie movie = new Movie(title,description,bgImageUrl,bgImageUrl,videoUrl);
            }

            return movies;
        } catch (JSONException e) {
            e.printStackTrace();
        }

其中res是将json数据转换成String数据。

注意事项

不用的方法接口消耗的API配额不同,个人申请的配额每日只有10000个