How to Scrape Youtube Video Comments
This tutorial shows how to use Youtube Video Comments API to scrape and crawl structured Youtube data in real-time.
Scrape YouTube comment sections at scale and capture comment text, like counts, reply threads, and author data for sentiment analysis and audience research.
Access Youtube Data in 3 Steps
Start crawling Youtube video comments data. Follow these steps to extract social media data in minutes.
Create Your Account
Go to our registration page and make an account. It's free, no credit card, and you get credits right away to play around with.
Verify Your Email Address
You'll get a verification email, click the link in it. Once that's done, you can grab your API token from the dashboard.
Make Your First API Call
Copy the code snippet below, swap in your API key, and run it. You'll get Youtube data back as JSON within a few seconds.
Code Sample
Here's a JavaScript example to get you going. Swap out the token and you're good, works the same way in any language that can make HTTP requests. Start collecting video comments data via our REST API!
| 1 | const root = 'https://ensembledata.com/apis' |
| 2 | const endpoint = '/youtube/video/comments' |
| 3 | const params = { |
| 4 | "id": "cKkb5tperxc", |
| 5 | "cursor": "", |
| 6 | "token": "YOUR-TOKEN-HERE" |
| 7 | } |
| 8 | |
| 9 | const queryString = new URLSearchParams(params).toString(); |
| 10 | const url = `${root}${endpoint}?${queryString}`; |
| 11 | |
| 12 | await fetch(url) |
| 13 | .then(response => response.json()) |
| 14 | .then(data => console.log(data)) |
| 15 | .catch(error => console.error(error)); |
| 16 |
Parameters
Example Response
Explore the fields returned by this endpoint. Click a row to expand nested objects and arrays, hover a value to copy it, or use "Expand all" to see everything at once.
dataobject3 fields
infoobject2 fields
reloadContinuationItemsCommandobject3 fields
continuationItemsarray1 item ยท schema from #0 1 item
commentsHeaderRendererobject10 fields
countTextobject1 field
runsarray2 items ยท schema from #0 2 items
createRendererobject1 field
commentSimpleboxRendererobject7 fields
authorThumbnailobject2 fields
thumbnailsarray3 items ยท schema from #0 3 items
accessibilityobject1 field
accessibilityDataobject1 field
placeholderTextobject1 field
runsarray1 item ยท schema from #0 1 item
prepareAccountEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
signInEndpointobject1 field
nextEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
watchEndpointobject1 field
emojiButtonobject1 field
buttonRendererobject4 fields
iconobject1 field
accessibilityDataobject1 field
accessibilityDataobject1 field
emojiPickerobject1 field
emojiPickerRendererobject14 fields
categoriesarray8 items ยท schema from #0 8 items
emojiPickerCategoryRendererobject5 fields
titleobject1 field
emojiIdsarray61 items ยท schema from #0 61 items
categoryButtonsarray8 items ยท schema from #0 8 items
emojiPickerCategoryButtonRendererobject4 fields
iconobject1 field
accessibilityobject1 field
accessibilityDataobject1 field
searchPlaceholderTextobject1 field
runsarray1 item ยท schema from #0 1 item
searchNoResultsTextobject1 field
runsarray1 item ยท schema from #0 1 item
pickSkinToneTextobject1 field
runsarray1 item ยท schema from #0 1 item
sortMenuobject1 field
sortFilterSubMenuRendererobject6 fields
subMenuItemsarray2 items ยท schema from #0 2 items
serviceEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject2 fields
continuationCommandobject3 fields
commandobject2 fields
showReloadUiCommandobject1 field
iconobject1 field
accessibilityobject1 field
accessibilityDataobject1 field
titleTextobject1 field
runsarray1 item ยท schema from #0 1 item
commentsCountobject1 field
runsarray1 item ยท schema from #0 1 item
customEmojisarray61 items ยท schema from #0 61 items
shortcutsarray1 item ยท schema from #0 1 item
searchTermsarray1 item ยท schema from #0 1 item
imageobject2 fields
thumbnailsarray2 items ยท schema from #0 2 items
accessibilityobject1 field
accessibilityDataobject1 field
loggingDirectivesobject3 fields
visibilityobject1 field
commentsarray1 item ยท schema from #0 1 item
commentThreadRendererobject6 fields
commentobject1 field
commentRendererobject17 fields
authorTextobject1 field
authorThumbnailobject2 fields
thumbnailsarray3 items ยท schema from #0 3 items
accessibilityobject1 field
accessibilityDataobject1 field
authorEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject4 fields
browseEndpointobject2 fields
contentTextobject1 field
runsarray3 items ยท schema from #0 3 items
publishedTimeTextobject1 field
runsarray1 item ยท schema from #0 1 item
navigationEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
watchEndpointobject2 fields
actionButtonsobject1 field
commentActionButtonsRendererobject6 fields
likeButtonobject1 field
toggleButtonRendererobject12 fields
styleobject1 field
sizeobject1 field
defaultIconobject1 field
toggledStyleobject1 field
defaultNavigationEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
signInEndpointobject1 field
nextEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
watchEndpointobject1 field
accessibilityDataobject1 field
accessibilityDataobject1 field
toggledAccessibilityDataobject1 field
accessibilityDataobject1 field
replyButtonobject1 field
buttonRendererobject5 fields
textobject1 field
runsarray1 item ยท schema from #0 1 item
navigationEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
signInEndpointobject1 field
nextEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
watchEndpointobject1 field
dislikeButtonobject1 field
toggleButtonRendererobject12 fields
styleobject1 field
sizeobject1 field
defaultIconobject1 field
toggledStyleobject1 field
defaultNavigationEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
signInEndpointobject1 field
nextEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject3 fields
watchEndpointobject1 field
accessibilityDataobject1 field
accessibilityDataobject1 field
toggledAccessibilityDataobject1 field
accessibilityDataobject1 field
voteCountobject2 fields
accessibilityobject1 field
accessibilityDataobject1 field
expandButtonobject1 field
buttonRendererobject5 fields
textobject1 field
runsarray1 item ยท schema from #0 1 item
accessibilityobject1 field
collapseButtonobject1 field
buttonRendererobject5 fields
textobject1 field
runsarray1 item ยท schema from #0 1 item
accessibilityobject1 field
authorCommentBadgeobject1 field
authorCommentBadgeRendererobject4 fields
iconobject1 field
authorTextobject2 fields
accessibilityobject1 field
accessibilityDataobject1 field
authorEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject4 fields
browseEndpointobject2 fields
loggingDirectivesobject3 fields
visibilityobject1 field
repliesobject1 field
commentRepliesRendererobject5 fields
contentsarray1 item ยท schema from #0 1 item
continuationItemRendererobject2 fields
continuationEndpointobject3 fields
commandMetadataobject1 field
webCommandMetadataobject2 fields
continuationCommandobject2 fields
viewRepliesobject1 field
buttonRendererobject4 fields
textobject1 field
runsarray1 item ยท schema from #0 1 item
iconobject1 field
hideRepliesobject1 field
buttonRendererobject4 fields
textobject1 field
runsarray1 item ยท schema from #0 1 item
iconobject1 field
loggingDirectivesobject3 fields
visibilityobject1 field
Response Codes
Status codes this endpoint can return, so you can handle errors before they surprise you in production.
API Pricing
Fetch Youtube Data at Scale
Crawl YouTube comment data and feed it into your sentiment analysis or community research workflows without the scraping overhead.
Full Comment Data
Get comment text, author info, and like counts per comment.
Reply Threads
Reconstruct nested reply conversations under any YouTube video.
Sentiment Ready
Feed clean comment text straight into sentiment analysis tools.