0

How can i get all the uploaded videos from a certain channel? i know that the GET request is https://www.googleapis.com/youtube/v3/search?key=key&channelId=UC-9-kyTW8ZkZNDHQJ6FgpwQ&part=snippet,id&order=date&maxResults=20

but I want to use Java Youtube APi (v3) and when i am trying to do this

    try {
        youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
            @Override
            public void initialize(HttpRequest arg0) throws IOException {}
        }).setApplicationName("youtube-cmdline-myuploads-sample").build();

        YouTube.Channels.List channelRequest = youtube.channels().list("contentDetails");
        channelRequest.setId("UC-9-kyTW8ZkZNDHQJ6FgpwQ"); //youtube channel id
        channelRequest.setKey(key);
        channelRequest.setFields("items/contentDetails,nextPageToken,pageInfo");
        ChannelListResponse channelResult = channelRequest.execute();

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

        if (channelsList != null) {
            String uploadPlaylistId =
                    channelsList.get(0).getContentDetails().getRelatedPlaylists().getUploads();
            System.out.println(uploadPlaylistId);
            List<PlaylistItem> playlistItemList = new ArrayList<PlaylistItem>();
            YouTube.PlaylistItems.List playlistItemRequest =
                    youtube.playlistItems().list("id,contentDetails,snippet");
            playlistItemRequest.setPlaylistId(uploadPlaylistId);
            playlistItemRequest.setFields(
                    "items(contentDetails/videoId,snippet/title,snippet/publishedAt),nextPageToken,pageInfo");

            String nextToken = "";
            do {
                playlistItemRequest.setPageToken(nextToken);
                PlaylistItemListResponse playlistItemResult = playlistItemRequest.execute();

                playlistItemList.addAll(playlistItemResult.getItems());

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

            printVideos(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();
    }
}

Im getting forbidden 403 . what am i doing wrong?

    "code" : 403,
    "errors" : [ {
        "domain" : "usageLimits",
        "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use    requires signup.",
        "reason" : "dailyLimitExceededUnreg",
        "extendedHelp" : "https://code.google.com/apis/console"
    } ],
    "message" : "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
}
Eric
  • 6,563
  • 5
  • 42
  • 66

1 Answers1

0

That error seems perfectly descriptive. You are not authenticating your request, so from Youtube's perspective, you are attempting to call this API too frequently while not logged in.

If you sign your request with real credentials of a valid Youtube account you should be fine.

sichinumi
  • 1,835
  • 3
  • 21
  • 40