How to retrieve details of single video from youtube using videoID through Data API v3.0 in Android?

前端 未结 3 1646
误落风尘
误落风尘 2021-01-03 02:54

My server sends the list of videoID to Android. Now, I want to show Title, Thumbnail and Number of Comments on these videos in List View. I have done this in web using GET r

3条回答
  •  萌比男神i
    2021-01-03 03:30

    Try this:

    protected void requestYoutubeVideos(String text) {
          try {
              youtube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), new HttpRequestInitializer() {
                  public void initialize(HttpRequest request) throws IOException {
                  }
              }).setApplicationName("My app name").build();
    
              // Define the API request for retrieving search results.
              YouTube.Search.List query = youtube.search().list("id");
    
              // Set your developer key from the Google Cloud Console for
              // non-authenticated requests. See:
              // https://cloud.google.com/console
              query.setKey(YOUTUBE_API_KEY);
              query.setQ(text);
              query.setMaxResults(NUMBER_OF_VIDEOS_RETURNED);
    
              // To increase efficiency, only retrieve the fields that the
              // application uses.
              query.setFields("items(id)");
              query.setOrder("viewCount");
    
              // Restrict the search results to only include videos. See:
              // https://developers.google.com/youtube/v3/docs/search/list#type
              query.setType("video");
    
              SearchListResponse searchResponse = query.execute();
              List list = searchResponse.getItems();
              Log.e("Youtube search", "list ===> " + list);
    
              //Get Info for each video id
              for (SearchResult video: list) {
                  youtubeList.add(video);
    
                  YouTube.Videos.List query2 = youtube.videos().list("id,contentDetails,snippet,statistics").setId(video.getId().getVideoId());
                  query2.setKey(YOUTUBE_API_KEY);
                  query2.setMaxResults((long) 1);
                  query2.setFields("items(id,contentDetails,snippet,statistics)");
    
                  VideoListResponse searchResponse2 = query2.execute();
                  List

    and do not forget to call it from another thread:

     new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                requestYoutubeVideos("Harry el Sucio Potter");
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }).start();
    

提交回复
热议问题