使用官方APi获取Youtube视频资源

YoutubeAPI 快速入门

本教程需要外网环境。

本教程参考一下博客:

  1. 使用Youtube Data API 抓取有趣的Youtube影片
  2. Java解析JSON的四种方式
  3. 使用Youtube官方API获取频道及视频数据
  4. Android中解析json数据的三种方式

申请 API Key

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

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

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

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

开发者文档

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

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

数据处理

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

json数据:

{
  "items": [
    {
      "id": {
        "videoId": "Ijst2ZQdLiQ"
      },
      "snippet": {
        "title": "Kartik Aaryan & Kiara Advani's Latest 2022 Blockbuster Hindi Full Movie | Tabu, Rajpal Yadav",
        "description": "Directed by: Anees Bazmee Written by: Aakash Kaushik Farhad Samji (dialogues) Starring: Tabu Kartik Aaryan Kiara Advani ...",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/Ijst2ZQdLiQ/default.jpg"
          }
        }
      }
    },
    {
      "id": {
        "videoId": "s_DK4jJbWRc"
      },
      "snippet": {
        "title": "Jangan M.A.5.U.K Rumahku 2022 Full Movie",
        "description": "Jangan Masuk Rumahku 2022 Full Movie Jangan Lupa Like View & Subscribe Untuk Lebih Banyak Movie Yang Menarik ...",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/s_DK4jJbWRc/default.jpg"
          }
        }
      }
    },
    {
      "id": {
        "videoId": "a-t1px788N4"
      },
      "snippet": {
        "title": "Jugjugg Jeeyo (2022) Hindi Full Movie in 4K UHD | Varun Dhawan, Anil Kapoor, Kiara Advani",
        "description": "Directed by: Raj Mehta Written by: Rishhabh Sharrma Starring: Neetu Kapoor Anil Kapoor Varun Dhawan Kiara Advani © RG ...",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/a-t1px788N4/default.jpg"
          }
        }
      }
    }
  ]
}

解析代码:

 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个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhoujian970

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值