I'm building an application where I have an Recycler View which has my YouTube channel videos. Everything works fine. I get my first 10 results successfully .but now when user scrolls down and reaches 10th result I want to load next 10 results,
my json response has nextPageToken but i dont know how to use nextPageToken to load next page videos in my recycler view, Any help ?
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=10&playlistId=PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0&fields=nextPageToken,items(id,snippet(title,description,position,thumbnails(medium,high),resourceId/videoId))&key=API_KEY;
json parsing code :
private ArrayList<VideoData> parseJSONReaponse(JSONObject response) {
ArrayList<VideoData> listVideos = new ArrayList<>();
if (response != null || response.length() > 0) {
String nextPageToken = Constants.NA;
try {
if (response.has(KEY_NEXTPAGETOKEN)
&& !response.isNull(KEY_NEXTPAGETOKEN) ){
nextPageToken = response.getString(KEY_NEXTPAGETOKEN);
}
JSONArray arrayItems = response.getJSONArray(KEY_ITEMS);
for (int i = 0; i < arrayItems.length(); i++) {
String title = Constants.NA;
String urlThumbnail = Constants.NA;
String resourceID = Constants.NA;
JSONObject currentItems = arrayItems.getJSONObject(i);
if (currentItems.has(KEY_SNIPPET)
&& !currentItems.isNull(KEY_SNIPPET)) {
JSONObject objectSnippet = currentItems.getJSONObject(KEY_SNIPPET);
if (objectSnippet.has(KEY_TITLE)
&& !objectSnippet.isNull(KEY_TITLE)) {
title = objectSnippet.getString(KEY_TITLE);
}
if (objectSnippet.has(KEY_THUMBNAIL)
&& !objectSnippet.isNull(KEY_THUMBNAIL)) {
JSONObject objectThumbnail = objectSnippet.getJSONObject(KEY_THUMBNAIL);
if (objectThumbnail.has(KEY_THUMBNAIL_MEDIUM)
&& !objectThumbnail.isNull(KEY_THUMBNAIL_MEDIUM)) {
JSONObject objectThumbnailMedium = objectThumbnail.getJSONObject(KEY_THUMBNAIL_MEDIUM);
if (objectThumbnailMedium.has(KEY_THUMBNAIL_MEDIUM_URL)
&& !objectThumbnailMedium.isNull(KEY_THUMBNAIL_MEDIUM_URL)) {
urlThumbnail = objectThumbnailMedium.getString(KEY_THUMBNAIL_MEDIUM_URL);
}
}
}
if (objectSnippet.has(KEY_RESOURCEID)
&& !objectSnippet.isNull(KEY_RESOURCEID)) {
JSONObject objectResourceId = objectSnippet.getJSONObject(KEY_RESOURCEID);
if (objectResourceId.has(KEY_VIDEOID)
&& !objectResourceId.isNull(KEY_VIDEOID)) {
resourceID = objectResourceId.getString(KEY_VIDEOID);
}
}
}
VideoData videoData = new VideoData();
videoData.setTitle(title);
videoData.setUrlThumbnail(urlThumbnail);
videoData.setVideoId(resourceID);
if (!title.equals(Constants.NA)){
listVideos.add(videoData);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
return listVideos;
}
You can try making the same request but with an extra param pageToken=<the-nextPageToken-you-received>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With