YoutubeAPI 快速入门
本教程需要外网环境。
本教程参考一下博客:
申请 API Key
-
首先去开发者平台申请API Key,第一次登录需要简单注册一下,然后创建一个新的项目,创建完成后,点击控制台。
-
然后搜索 youtube api v3
-
接着创建并启用此API
-
回到控制台可以查看已启用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个