Here is my code to load youtube playlistitem. It's working and I can get the result.
private static final int MAX_RESULTS_PER_PAGE = 50;public static List<PlaylistItemSnippet> loadPlaylistItems(String playlistId) throws IOException { List<PlaylistItemSnippet> allItems = new ArrayList<>(); YouTube youtube = YouTubeSingleton.getYouTube(); long startTime = System.currentTimeMillis(); // Start time for logging String nextPageToken = null; do { // Batch request for playlist items and status YouTube.PlaylistItems.List playlistItemsListRequest = youtube.playlistItems().list("snippet,status"); playlistItemsListRequest.setPlaylistId(playlistId); playlistItemsListRequest.setMaxResults((long) MAX_RESULTS_PER_PAGE); playlistItemsListRequest.setPageToken(nextPageToken); playlistItemsListRequest.setKey(DeveloperKey.getDeveloperKey()); // Execute the batched request PlaylistItemListResponse playlistItemListResponse = playlistItemsListRequest.execute(); long apiCallDuration = System.currentTimeMillis() - startTime; // Duration of API call Log.d("text", "API_call_duration_for_token " +": " + apiCallDuration +" ms"); List<PlaylistItemSnippet> snippets = new ArrayList<>(); for (PlaylistItem item : playlistItemListResponse.getItems()) { // Get the snippet object from the PlaylistItem PlaylistItemSnippet snippet = item.getSnippet(); snippets.add(snippet); PlaylistItemStatus status = item.getStatus(); if (status != null && status.getPrivacyStatus().equals("public")) { // Check privacy status allItems.add(snippet); if (allItems.size() >= MAX_RESULTS_PER_PAGE) { break; } } } nextPageToken = playlistItemListResponse.getNextPageToken(); } while (nextPageToken != null); return allItems;}I've also used direct http request with okhttp client.
But the trouble is here the time request response is very slow now. It's more than 80s. I don't know why ?
How to improve it ? User can't wait too long to get the result