YouTube Community Posts Scraper
Pricing
from $2.20 / 1,000 post scrapeds
YouTube Community Posts Scraper
Scrape YouTube community posts from any public channel or post URL. Get text, images, polls, videos, likes, comments, and exact publish dates. No YouTube API key or quota.
Pricing
from $2.20 / 1,000 post scrapeds
Rating
0.0
(0)
Developer
LurkAPI
Maintained by CommunityActor stats
2
Bookmarked
250
Total users
32
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Scrape YouTube community posts from any public channel or post URL. Get text, images, polls, videos, likes, comments, and exact publish dates. No YouTube API key or quota.
🎬 What it does
Give it a channel, a post link, or both. You get the posts, full post details, and comments in one table you can export.
- Text, images, carousels, polls, videos, and shared posts.
- Exact publish dates, not "3 weeks ago."
- Comments one per row, replies included, with the author, likes, reply count, parent comment, and creator heart.
- Filters for post type, keyword, and date range.
- Optional fields you can switch off before export.
- No YouTube API key or Google Cloud project. Just an Apify account.
📋 How to use it
Step 1: Add your input
Paste channel URLs, @handles, or channel IDs into Channel URLs or handles. You can add up to 100 channels per run.
@mkbhdhttps://www.youtube.com/@MrBeasthttps://www.youtube.com/channel/UCBcRF18a7Qf58cCRy5xuWwQUCBcRF18a7Qf58cCRy5xuWwQ
To get a specific post, paste its ID or URL into Post IDs or Post URLs.
To get comments, paste the post ID or URL into Post IDs to scrape comments from or Post URLs to scrape comments from.
You can use one, two, or all three in the same run.
Step 2: Set your limits
- Max posts per channel: 50 by default, up to 200.
- Post types: text, polls, images, or videos. Leave empty for all.
- Keyword Filter: keep only posts that contain a word or phrase.
- Posts From Date and Posts To Date: filter on exact publish dates.
Step 3: Run and get results
Click Start. Results appear in the Output tab as they are scraped. Export as JSON, CSV, or Excel.
🤖 Use it from AI clients (MCP)
Call this actor from Claude Code, Claude Desktop, Codex, Cursor, or any client that speaks the Model Context Protocol. Then ask in plain English: "Pull the last 20 community posts from @mkbhd and export them as CSV."
These examples use an APIFY_TOKEN from console.apify.com/settings/integrations. The hosted server at https://mcp.apify.com can sign in with OAuth instead, so a token is optional there.
Claude Code
claude mcp add apify -- npx -y @apify/actors-mcp-server \--actors lurkapi/youtube-community-posts-scraper
Then export the token in the same shell: export APIFY_TOKEN=your-token.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server","--actors", "lurkapi/youtube-community-posts-scraper"],"env": { "APIFY_TOKEN": "your-token" }}}}
Codex CLI
Edit ~/.codex/config.toml:
[mcp_servers.apify]command = "npx"args = ["-y", "@apify/actors-mcp-server","--actors", "lurkapi/youtube-community-posts-scraper"]env = { APIFY_TOKEN = "your-token" }
Cursor
Edit ~/.cursor/mcp.json:
{"mcpServers": {"apify": {"command": "npx","args": ["-y", "@apify/actors-mcp-server","--actors", "lurkapi/youtube-community-posts-scraper"],"env": { "APIFY_TOKEN": "your-token" }}}}
Anything else that speaks MCP
Use the same command, wrapped in whatever config shape your client expects:
$npx -y @apify/actors-mcp-server --actors lurkapi/youtube-community-posts-scraper
Example prompts
- "Pull the last 20 community posts from
<channel-handle>and export them as CSV." - "Get the full record for these post URLs:
<post-url-1>,<post-url-2>." - "Pull comments from
<post-url>up to 50 per post, newest first." - "Download the full-resolution images from
<channel-handle>and return the image URLs." - "Find community posts from
<channel-handle>that mention<keyword>between<start-date>and<end-date>."
Key inputs for agents: urls, postIds, postUrls, commentPostIds, commentPostUrls, maxPostsPerChannel, postTypesToInclude, keyword, dateFrom, dateTo, includeComments, maxCommentsPerPost, sortBy, downloadImages, detectLanguage.
📊 What you get
One row per post, or one row per comment when you use the comment inputs.
Post rows
| Field | Description |
|---|---|
status | success or an error message |
error | Error detail for failed rows |
postId | Unique post ID |
postUrl | Direct link to the post |
postType | text, poll, image, video, or shared |
channelName | Channel display name |
channelId | Channel ID |
channelUrl | Channel URL |
authorHandle | Channel handle |
text | Full post text |
publishedAt | Exact publish date in ISO format |
publishedTimeText | Relative time shown by YouTube |
likeCount | Number of likes |
commentCount | Number of comments |
pollChoices | Poll options, with isCorrect for quizzes |
totalVotes | Total poll votes |
isQuiz | Whether the poll is a quiz |
correctAnswer | Correct quiz answer when YouTube exposes it |
hashtags | Hashtags found in the post text |
links | Links found in the post text |
images | Image URLs with width and height |
videoId, videoUrl, videoTitle, videoThumbnailUrl, videoDuration | Embedded video details |
comments | Comment array when Include comments is on |
imageDownloadUrls | Stored image URLs when Download images is on |
detectedLanguage | Language code when Detect language is on |
scrapedAt | ISO timestamp for when the row was scraped |
Comment rows
| Field | Description |
|---|---|
status | success or an error message |
postId, postUrl | The post the comment belongs to |
commentId | Unique comment ID |
parentCommentId | Parent comment ID for replies |
isReply | true for replies |
text | Comment text |
authorName, authorHandle | Comment author |
authorChannelId | Comment author channel ID |
likeCount | Number of likes on the comment |
replyCount | Number of replies to the comment |
isChannelOwner | true when the channel owner wrote the comment |
isHearted | true when the channel owner hearted the comment |
publishedTime | Relative time shown by YouTube |
Optional fields can be turned off in Output fields. The Posts view shows the main post columns, the Details view shows the full post record, and the Comments view shows comment rows.
🔌 Paid add-ons
Add these when you need more than the post itself. Each one is charged only when it succeeds.
Comments
Turn on Include comments to add comments to channel and post detail rows, or use the comment inputs to get one row per comment. Comments include replies, author, likes, reply count, parent comment, and whether the creator hearted it. Set Max comments per post and choose Top comments or Newest first for comment-only runs.
Images
Turn on Download images to save full-resolution images to your Apify storage. Each post row gets a list of download URLs.
Language detection
Turn on Detect Language to add a language code to each post, for example eng, spa, or kor.
💰 Pricing
Pay per result. No monthly fee. These are the current live rates.
| What you get | Price |
|---|---|
| Each post | $0.003 |
| Each comment | $0.001 |
| Each image saved | $0.002 |
| Each language detection | $0.0005 |
Post detail rows are charged as posts. Comments-only runs charge per comment. The live Pricing tab shows the rates for your Apify plan.
💡 Good to know
- YouTube serves up to 200 community posts per channel. There is no way to access older posts beyond that limit.
- Publish dates are exact. Date filters use the post's exact publish date, not relative text like "3 weeks ago."
- Not every channel has a Posts tab. If a channel has no public posts, you get a row explaining why instead of a silent empty run.
- Comment times are relative. YouTube does not expose exact comment timestamps, so comment rows show "2 days ago" style text.
- Poll vote percentages are not available. YouTube only shows them to signed-in users who voted. The total vote count is returned.
- Video posts include the video ID, title, thumbnail, and duration, not the video file. Use the YouTube Video Downloader for the file.
- Downloaded images are stored in your Apify storage. Retention depends on your Apify plan.
- The actor handles text, image, multi-image, poll, video, and shared posts.
❓ FAQ
Why did a channel return an error?
The channel may not exist, may be private, may not have a Posts tab, or may have no public posts. Check the status field in the output for the exact reason.
Can I get a specific post without scraping its channel? Yes. Paste the post ID or post URL into Post IDs or Post URLs. You get one full row for that post.
Can I get comments only? Yes. Paste the post ID or URL into the comment inputs. You get one row per comment, with replies included.
Do comments include replies?
Yes. Replies are returned as separate rows with parentCommentId and isReply set to true.
Can I scrape more than 200 posts per channel? No. YouTube limits community post feeds to about 200 posts per channel. This is a platform limit shared by all scrapers.
How accurate is the date filter? It uses the exact publish date. Posts on the boundary are included based on that date, not relative text.
Are poll votes and percentages available? The total vote count is returned. Individual choice percentages are not available because YouTube only shows them to signed-in users who voted.
Do I need a YouTube API key? No. The actor reads public YouTube data without a YouTube API key or quota. You only need an Apify account.
Can I choose which fields to return? Yes. Use the Output fields section to turn optional columns on or off before export.
How long are results stored? Results are stored in your Apify dataset. How long they are kept depends on your Apify plan.
🔗 Other tools you might like
- YouTube Comments Scraper - Scrape comments from YouTube videos and Shorts.
- YouTube Channel Videos & Stats Scraper - Scrape a channel's videos, Shorts, and channel stats.
- YouTube Channel Email Scraper - Extract contact emails from YouTube channels.
⚖️ Disclaimer
This tool is intended for personal, research, and educational use. You are responsible for complying with YouTube's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on YouTube at run time.
Keywords: youtube community posts, youtube community tab scraper, youtube posts extractor, youtube channel posts, youtube community comments, youtube post details, youtube polls scraper, youtube community posts api