We use the commentThreads.list resource to fetch all comment threads for videoId="RAgbu7eDm44". Since there are >50 comment threads, we paginate through the results. As long as our response has a nextPageToken, we make a subsequent call to youtube.commentThreads().list() with that token passed in.
Comment Data
The interesting part about this solution is the data that's returned - specifically how YouTube stores comment data. Browsing through the comments, you'll notice that top-level comments often have nested replies. But the replies themselves don't have nested replies. In other words,
Each top-level comment begins a new comment thread.
Comment threads can be up to 1 level deep with replies.
You can find examples of nested comments in the response data by searching for threads where totalReplyCount > 0.