Download YouTube Comments as JSON/CSV (Complete Guide)
Learn how to download all YouTube comments as JSON or CSV files. Step-by-step instructions for using online tools, browser extensions, and the YouTube API to export comments with full metadata.
Key Takeaways
- Download all YouTube comments in JSON, CSV, or Excel format for free
- JSON format is ideal for developers and data analysis tools
- CSV format works perfectly with Excel and Google Sheets
- Include metadata: usernames, timestamps, likes, reply counts
- Three methods: online tools (fastest), extensions, and YouTube API
- No coding required for basic exports
To download YouTube comments as JSON or CSV, use a free online extractor tool like NoteLM.ai—paste the video URL, select your export format, and download the complete comment data including usernames, timestamps, and likes. For developers, the YouTube Data API provides programmatic access with full control over data structure.
Key Takeaways
- Download all YouTube comments in JSON, CSV, or Excel format for free
- JSON format is ideal for developers and data analysis tools
- CSV format works perfectly with Excel and Google Sheets
- Include metadata: usernames, timestamps, likes, reply counts
- Three methods: online tools (fastest), extensions, and YouTube API
- No coding required for basic exports
Understanding Comment File Formats
JSON Format Explained
JSON (JavaScript Object Notation) is a structured data format that preserves hierarchical relationships, making it perfect for comments with replies.
JSON structure example:
{
"video": {
"id": "dQw4w9WgXcQ",
"title": "Video Title Here",
"url": "https://youtube.com/watch?v=dQw4w9WgXcQ"
},
"metadata": {
"total_comments": 1523,
"exported_at": "2026-01-07T10:30:00Z",
"export_tool": "NoteLM Comment Extractor"
},
"comments": [
{
"id": "UgyxQmZp123",
"author": "@TechReviewer",
"author_channel_id": "UC1234567890",
"text": "Great video! Very helpful.",
"likes": 42,
"published_at": "2026-01-05T15:20:00Z",
"updated_at": "2026-01-05T15:20:00Z",
"reply_count": 3,
"replies": [
{
"id": "UgyxQmZp123-reply1",
"author": "@VideoCreator",
"text": "Thanks for watching!",
"likes": 12,
"published_at": "2026-01-05T16:00:00Z"
}
]
}
]
}JSON advantages:
- Preserves nested reply threads
- Includes all metadata fields
- Easy to process with programming languages
- Standard format for APIs
CSV Format Explained
CSV (Comma-Separated Values) creates a flat table structure, ideal for spreadsheet analysis.
CSV structure example:
comment_id,author,text,likes,published_at,is_reply,parent_id
UgyxQmZp123,@TechReviewer,"Great video! Very helpful.",42,2026-01-05T15:20:00Z,FALSE,
UgyxQmZp123-reply1,@VideoCreator,"Thanks for watching!",12,2026-01-05T16:00:00Z,TRUE,UgyxQmZp123CSV advantages:
- Opens directly in Excel/Google Sheets
- Easy to filter and sort
- Smaller file size
- Simple to understand
Format Comparison
| Aspect | JSON | CSV |
|---|---|---|
| Reply structure | ✅ Nested | ⚠️ Flattened |
| Spreadsheet compatibility | ⚠️ Needs import | ✅ Direct open |
| Programming use | ✅ Native | ⚠️ Needs parsing |
| File size | Larger | Smaller |
| Human readability | Moderate | High |
| Metadata preservation | Complete | Limited |
Method 1: Online Comment Download Tools
Online tools provide the fastest way to download comments without any setup.
Step-by-Step: Using NoteLM.ai
- Click "Download JSON" for JSON format
- Click "Download CSV" for spreadsheet format
- Click "Download Excel" for .xlsx format
Online Tool Comparison
| Tool | JSON | CSV | Excel | Free Limit | Reply Support |
|---|---|---|---|---|---|
| NoteLM.ai | ✅ | ✅ | ✅ | Unlimited | ✅ Full |
| ExportComments | ❌ | ✅ | ✅ | 100 comments | ⚠️ Limited |
| YTComments.xyz | ✅ | ✅ | ❌ | 500/day | ✅ Full |
| Comment Export | ✅ | ✅ | ✅ | 1000/day | ✅ Full |
Best Practices for Online Tools
- Verify video accessibility: Ensure the video is public
- Check comment count first: Large videos take longer
- Use during off-peak hours: Faster processing when servers less busy
- Download immediately: Some tools don't store files long
Method 2: Browser Extensions
Browser extensions add download functionality directly to YouTube.
Popular Chrome Extensions
YouTube Comment Downloader:
- One-click export
- JSON and CSV support
- Includes reply threads
- Works on any YouTube video
Export Comments:
- Direct download buttons
- Multiple format options
- Customizable fields
- Batch processing capability
Installing and Using Extensions
Extension Pros and Cons
Advantages:
- No need to copy/paste URLs
- Faster for frequent downloads
- Works offline for processing
- Often more reliable for large videos
Disadvantages:
- Requires installation
- Chrome-only (usually)
- May need permissions
- Updates may break functionality
Method 3: YouTube Data API (Developers)
The YouTube Data API offers complete control for developers building automated systems.
API Setup Requirements
- 1.Google Cloud Console account
- 2.API key or OAuth credentials
- 3.YouTube Data API v3 enabled
- 4.Basic programming knowledge
Getting API Credentials
Basic API Request for Comments
Endpoint:
GET https://www.googleapis.com/youtube/v3/commentThreadsParameters:
| Parameter | Required | Description |
|---|---|---|
| part | Yes | snippet,replies |
| videoId | Yes | YouTube video ID |
| key | Yes | Your API key |
| maxResults | No | 1-100, default 20 |
| pageToken | No | For pagination |
Example request:
https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=dQw4w9WgXcQ&key=YOUR_API_KEY&maxResults=100Python Script Example
import requests
import json
API_KEY = 'your_api_key_here'
VIDEO_ID = 'dQw4w9WgXcQ'
def get_comments(video_id, api_key):
comments = []
url = f'https://www.googleapis.com/youtube/v3/commentThreads'
params = {
'part': 'snippet,replies',
'videoId': video_id,
'key': api_key,
'maxResults': 100
}
while True:
response = requests.get(url, params=params)
data = response.json()
for item in data.get('items', []):
comment = item['snippet']['topLevelComment']['snippet']
comments.append({
'author': comment['authorDisplayName'],
'text': comment['textDisplay'],
'likes': comment['likeCount'],
'published_at': comment['publishedAt']
})
if 'nextPageToken' in data:
params['pageToken'] = data['nextPageToken']
else:
break
return comments
# Export to JSON
comments = get_comments(VIDEO_ID, API_KEY)
with open('comments.json', 'w') as f:
json.dump(comments, f, indent=2)API Quota Considerations
| Resource | Quota Cost | Daily Limit |
|---|---|---|
| commentThreads.list | 1 unit | ~10,000 calls |
| comments.list | 1 unit | ~10,000 calls |
| Total daily quota | - | 10,000 units |
Optimization tips:
- Use maxResults=100 to minimize calls
- Cache results to avoid repeat requests
- Handle pagination efficiently
- Implement exponential backoff for errors
Working with Downloaded Data
Opening CSV in Excel
- Select "Delimited"
- Check "Comma" as delimiter
- Preview and confirm
Opening CSV in Google Sheets
Processing JSON Data
In Python:
import json
with open('comments.json', 'r') as f:
data = json.load(f)
for comment in data['comments']:
print(f"{comment['author']}: {comment['text']}")In JavaScript:
const fs = require('fs');
const data = JSON.parse(fs.readFileSync('comments.json', 'utf8'));
data.comments.forEach(comment => {
console.log(`${comment.author}: ${comment.text}`);
});Common Data Analysis Tasks
Sorting by Likes
In Excel:
- 1.Select all data
- 2.Data > Sort
- 3.Sort by "likes" column
- 4.Choose "Largest to Smallest"
Filtering by Keyword
In Excel:
- 1.Select header row
- 2.Data > Filter
- 3.Click filter arrow on "text" column
- 4.Text Filters > Contains
- 5.Enter your keyword
Counting Unique Commenters
In Excel:
=SUMPRODUCT(1/COUNTIF(A2:A1000,A2:A1000))In Google Sheets:
=COUNTUNIQUE(A2:A1000)Troubleshooting Download Issues
"No Comments Found"
Causes:
- Video has comments disabled
- Video is private/unlisted
- Invalid video URL
Solutions:
- Verify video has public comments
- Check URL format
- Try a different video to test
Incomplete Download
Causes:
- Connection timeout
- Tool rate limited
- Server overload
Solutions:
- Try during off-peak hours
- Use an extension instead
- Try API method for large videos
Encoding Issues (Strange Characters)
Causes:
- UTF-8 encoding not preserved
- Special characters in comments
- Emoji conversion issues
Solutions:
- Open CSV with UTF-8 encoding explicitly
- Use JSON format (better Unicode support)
- Specify encoding when importing
Frequently Asked Questions
Conclusion
Choose JSON for programming and data analysis applications where you need reply threading and complete metadata. Choose CSV for spreadsheet analysis in Excel or Google Sheets. Either way, you'll have access to all the comment data you need for analysis, research, or community management.
Related Resources:
- YouTube Comment Extractor Guide
- Export YouTube Comments to Excel
- YouTube Comments API Guide
Written By
The NoteLM team specializes in AI-powered video summarization and learning tools. We are passionate about making video content more accessible and efficient for learners worldwide.
Sources & References
Was this article helpful?