0

How to get a list of videos from http://gdata.youtube.com/feeds/api/playlists/EL5BQGc0nPiVI?v=2&alt=json

I have made a program in which I am able to fetch a list of videos by using this kind of URL: please check this but this time I want to get a list of video(s) using Playlist in Android like using this URL, actual YouTube videos URL:

Here I am using JSON but now I don't know what are changes in my code I need to do to get the list of videos using the above playlist URL.

  @Override
  public void run() {
    try {
        
        HttpClient client = new DefaultHttpClient();
        
        HttpUriRequest request = new HttpGet("http://gdata.youtube.com/feeds/api/playlists/EL5BQGc0nPiVI?v=2&alt=json"); 
    
        // Get the response that YouTube sends back
        HttpResponse response = client.execute(request);
        // Convert this response into a readable string
    String jsonString = StreamUtils.convertToString
            (response.getEntity().getContent());
        // Create a JSON object that we can use from the String
        JSONObject json = new JSONObject(jsonString);
        
        
        
        // Get is search result items
    JSONArray jsonArray = json.getJSONObject("data").getJSONArray("items");
        
        // Create a list to store are videos in
        List<Video> videos = new ArrayList<Video>();
        
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            // The title of the video
            String title = jsonObject.getString("title");
            
            String url;
            try {
    url = jsonObject.getJSONObject("player").getString("default");
    } catch (JSONException ignore) {
    url = jsonObject.getJSONObject("player").getString("default");
            }
            
            
            String thumbUrl = jsonObject.getJSONObject("thumbnail").getString("sqDefault");
            
            
            videos.add(new Video(title, url, thumbUrl));
        }
        
        Library lib = new Library(username, videos);
        
        Bundle data = new Bundle();
        data.putSerializable(LIBRARY, lib);
        
        Message msg = Message.obtain();
        msg.setData(data);
        replyTo.sendMessage(msg);
    
    } catch (ClientProtocolException e) {
        Log.e("Feck", e);
    } catch (IOException e) {
        Log.e("Feck", e);
    } catch (JSONException e) {
        Log.e("Feck", e);
    }
}
Vikas Gupta
  • 3
  • 1
  • 6

2 Answers2

1
 String JKYouTubeActivity.YOUTUBE_INFO_URL=http://gdata.youtube.com/feeds/api/playlists/_ID_?v=2&alt=json

 private String getUrl(String id) throws IOException, JSONException {
        HttpClient client = new DefaultHttpClient();
        HttpGet clientGetMethod = new HttpGet(JKYouTubeActivity.YOUTUBE_INFO_URL.replace("_ID_", id));
        HttpResponse clientResponse = null;
        clientResponse = client.execute(clientGetMethod);
        String infoString = _convertStreamToString(clientResponse.getEntity().getContent());
        String urldata=new JSONObject(infoString).getJSONObject("entry").getJSONObject("media$group").getJSONArray("media$content").getJSONObject(0).getString("url");
        return new JSONObject(infoString).getJSONObject("entry").getJSONObject("media$group").getJSONArray("media$content").getJSONObject(0).getString("url");
    }

    private String _convertStreamToString(InputStream iS) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(iS));
        StringBuilder sB = new StringBuilder();
        String line = null;
        try {
            while ((line = reader.readLine()) != null)
            {
                sB.append(line).append("\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                iS.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sB.toString();
    }

}

After getting the urldata you can streamed it or do whatever you want to. Same as well you can get Thumbnails and title too

Vikalp Patel
  • 10,669
  • 6
  • 61
  • 96
  • You can also visit the Github content of these kinda app source code @ https://github.com/vikalppatelce/Android-YouTube-Streaming – Vikalp Patel Dec 31 '12 at 09:53
  • 1
    Thanks brother you have made my day, if possible so please check this question: http://stackoverflow.com/questions/14100198/program-to-make-a-call-to-my-friend-and-allow-him-to-hear-his-favorite-song – Vikas Gupta Dec 31 '12 at 10:06
0

You can use recyclerView for the list. I have done this using Youtube api rest calls. You will need to get a browser key from the google developer console. I've explained this in my answer here:

https://stackoverflow.com/a/41201084/3689744

The "new way" of the Youtube rest call will look like this(I believe the max results are 50):

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=iBi9LVIrC-fVelw2-I2r-yrEk6SpXfO8&key=AIzaSyCI1oCTXwZzgVv7LDQ8NykSIUEWt247KnU&maxResults=50

Community
  • 1
  • 1
cmcoffee91
  • 141
  • 3
  • 8