示例#1
0
  private void initChannel() {

    ChannelListResponse response = null;
    try {
      channelQuery = youtube.channels().list("id,snippet,brandingSettings,statistics");
      channelQuery.setKey(this.KEY);
      channelQuery.setId(this.channel_id);
      channelQuery.setFields(
          "items(id,brandingSettings,snippet/title,snippet/description,snippet/thumbnails,statistics)");
    } catch (IOException e) {
      Log.d("YC", "Could not init: " + e);
    }

    try {
      response = channelQuery.execute();
    } catch (GoogleJsonResponseException e) {
      Log.d("YC", "Could not search: " + e.getMessage());
      switch (e.getStatusCode()) {
        case 403:
          this.KEY = this.context.getString(R.string.api_key2);
          channelQuery.setKey(this.KEY);
          try {
            response = channelQuery.execute();
          } catch (IOException e1) {
            Log.d("YC-KEY2", "Could not initialize: " + e1.getMessage());
          }
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
    List<Channel> results = response.getItems();

    for (Channel result : results) {
      channel.setChannel_id(this.channel_id);
      channel.setTitle(result.getSnippet().getTitle());
      channel.setDescription(result.getSnippet().getDescription());
      channel.setThumbnailURL(result.getSnippet().getThumbnails().getHigh().getUrl());
      if (isTablet(this.context)) {
        channel.setBannerURL(result.getBrandingSettings().getImage().getBannerTabletImageUrl());
      } else {
        channel.setBannerURL(result.getBrandingSettings().getImage().getBannerImageUrl());
      }
      channel.setViewCount(result.getStatistics().getViewCount());
      channel.setVideoCount(result.getStatistics().getVideoCount());
      channel.setSubscriberCount(result.getStatistics().getSubscriberCount());
    }
  }
示例#2
0
  /**
   * Authorize the user, call the youtube.channels.list method to retrieve the playlist ID for the
   * list of videos uploaded to the user's channel, and then call the youtube.playlistItems.list
   * method to retrieve the list of videos in that playlist.
   *
   * @param args command line args (not used).
   */
  public static void main(String[] args) {

    // This OAuth 2.0 access scope allows for read-only access to the
    // authenticated user's account, but not other types of account access.
    List<String> scopes = Lists.newArrayList("https://www.googleapis.com/auth/youtube.readonly");

    try {
      // Authorize the request.
      Credential credential = Auth.authorize(scopes, "myuploads");

      // This object is used to make YouTube Data API requests.
      youtube =
          new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential)
              .setApplicationName("youtube-cmdline-myuploads-sample")
              .build();

      // Call the API's channels.list method to retrieve the
      // resource that represents the authenticated user's channel.
      // In the API response, only include channel information needed for
      // this use case. The channel's contentDetails part contains
      // playlist IDs relevant to the channel, including the ID for the
      // list that contains videos uploaded to the channel.
      YouTube.Channels.List channelRequest = youtube.channels().list("contentDetails");
      channelRequest.setMine(true);
      channelRequest.setFields("items/contentDetails,nextPageToken,pageInfo");
      ChannelListResponse channelResult = channelRequest.execute();

      List<Channel> channelsList = channelResult.getItems();

      if (channelsList != null) {
        // The user's default channel is the first item in the list.
        // Extract the playlist ID for the channel's videos from the
        // API response.
        String uploadPlaylistId =
            channelsList.get(0).getContentDetails().getRelatedPlaylists().getUploads();

        // Define a list to store items in the list of uploaded videos.
        List<PlaylistItem> playlistItemList = new ArrayList<PlaylistItem>();

        // Retrieve the playlist of the channel's uploaded videos.
        YouTube.PlaylistItems.List playlistItemRequest =
            youtube.playlistItems().list("id,contentDetails,snippet");
        playlistItemRequest.setPlaylistId(uploadPlaylistId);

        // Only retrieve data used in this application, thereby making
        // the application more efficient. See:
        // https://developers.google.com/youtube/v3/getting-started#partial
        playlistItemRequest.setFields(
            "items(contentDetails/videoId,snippet/title,snippet/publishedAt),nextPageToken,pageInfo");

        String nextToken = "";

        // Call the API one or more times to retrieve all items in the
        // list. As long as the API response returns a nextPageToken,
        // there are still more items to retrieve.
        do {
          playlistItemRequest.setPageToken(nextToken);
          PlaylistItemListResponse playlistItemResult = playlistItemRequest.execute();

          playlistItemList.addAll(playlistItemResult.getItems());

          nextToken = playlistItemResult.getNextPageToken();
        } while (nextToken != null);

        // Prints information about the results.
        prettyPrint(playlistItemList.size(), playlistItemList.iterator());
      }

    } catch (GoogleJsonResponseException e) {
      e.printStackTrace();
      System.err.println(
          "There was a service error: "
              + e.getDetails().getCode()
              + " : "
              + e.getDetails().getMessage());

    } catch (Throwable t) {
      t.printStackTrace();
    }
  }