YouTube Community Posts Scraper

Extract public YouTube Community posts, polls, images, likes, and comments from channel URLs or handles into a clean dataset.

Data fields

FieldTypeDescription
channelUrlstringValue exported as channelUrl.
channelHandlestring | nullValue exported as channelHandle.
channelNamestring | nullValue exported as channelName.
postIdstringValue exported as postId.
postUrlstringValue exported as postUrl.
textstring | nullValue exported as text.
publishedAtTextstring | nullValue exported as publishedAtText.
publishedAtstring | nullValue exported as publishedAt.

Input preview

channelUrlsChannel URLs or handles *
maxPostsPerChannelMaximum posts per channel
includeImagesInclude image URLs
includePollOptionsInclude poll options
proxyConfigurationProxy configuration

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Scrape public YouTube Community posts from channel URLs and handles. Collect post text, post URLs, relative publish times, likes, comments, image links, poll metadata, and timestamps in a clean Apify dataset.

What does YouTube Community Posts Scraper do?

YouTube Community Posts Scraper extracts public posts from the Posts tab of YouTube channels. It is designed for teams that need structured Community updates without manually opening every channel.

  • ✅ Track creator announcements
  • ✅ Monitor brand and competitor updates
  • ✅ Collect public engagement metrics
  • ✅ Export posts to JSON, CSV, Excel, or API
  • ✅ Support channel URLs and @handles

Who is it for?

Social media and creator marketing teams

Use the scraper to monitor creator announcements, campaign teasers, audience polls, sponsor reminders, and recurring post engagement across a curated list of channels.

Brand, PR, and social listening teams

Track public Community posts from competitors, media brands, product teams, or industry creators so updates can be reviewed in one structured feed.

Influencer and talent intelligence teams

Compare how creators use Community posts, which formats receive visible engagement, and when channels announce launches, events, or merch drops.

Agencies and reporting teams

Build repeatable client reports from public YouTube activity. Export a dataset instead of copying posts manually into spreadsheets.

Data engineers and automation builders

Seed dashboards, alerts, enrichment jobs, and internal monitoring systems with normalized post records from selected public channels.

Why use this scraper?

Community posts are often where creators publish announcements, polls, teasers, event reminders, merch drops, and audience questions. This actor turns those public updates into a structured dataset that is easier to filter, store, enrich, and integrate with other tools.

What data can you extract?

Field Description
channelUrl Normalized YouTube Posts tab URL
channelHandle Public channel handle when available
channelName Channel display name
postId YouTube Community post ID
postUrl Direct post URL
text Post text and linked text
publishedAtText Relative publish time shown by YouTube
publishedAt Reserved ISO timestamp field when available
likeCount Public like count parsed as a number
commentCount Public comment count parsed as a number
imageUrls Public image URLs attached to the post
pollOptions Public poll options and visible percentages
isPoll Whether the post appears to contain a poll
scrapedAt ISO timestamp for the scrape

How to use it

  1. Open the actor on Apify.
  2. Add one or more YouTube channel URLs or handles.
  3. Set the maximum number of posts per channel.
  4. Choose whether to include images and poll options.
  5. Run the actor.
  6. Download the dataset or connect it to your workflow.

Input

The main input is channelUrls. You can enter full channel Posts tab URLs, channel URLs, or public handles.

{
  "channelUrls": [
    "https://www.youtube.com/@YouTube/posts",
    "@Google"
  ],
  "maxPostsPerChannel": 10,
  "includeImages": true,
  "includePollOptions": true
}

Input options

Input Type Description
channelUrls array YouTube channel URLs, /posts URLs, /community URLs, or @handles
maxPostsPerChannel integer Maximum public Community posts to save per channel
includeImages boolean Include public image URLs from post attachments
includePollOptions boolean Include public poll option text and visible percentages when available
proxyConfiguration object Optional Apify proxy configuration for blocked or regional workloads

Output

Each dataset item represents one public Community post.

{
  "channelUrl": "https://www.youtube.com/@YouTube/posts",
  "channelHandle": "@YouTube",
  "channelName": "YouTube",
  "postId": "Ugkx...",
  "postUrl": "https://www.youtube.com/post/Ugkx...",
  "text": "Example public Community post text",
  "publishedAtText": "4 hours ago",
  "likeCount": 1200,
  "commentCount": 239,
  "imageUrls": [],
  "pollOptions": [],
  "isPoll": false,
  "scrapedAt": "2026-07-03T21:26:06.636Z"
}

Example channel inputs

{
  "channelUrls": [
    "@YouTube",
    "@Google",
    "https://www.youtube.com/@TeamYouTube/community",
    "https://www.youtube.com/@NASA/posts"
  ],
  "maxPostsPerChannel": 5
}

Tips for best results

  • Use the /posts tab URL when you have it.
  • Handles such as @YouTube are supported.
  • Keep the first run small while validating a new channel list.
  • Some channels may not have public Community posts.
  • Engagement values are public counts displayed by YouTube.
  • Use a channel list with multiple active channels for recurring monitoring.

Images and polls

When includeImages is enabled, the actor saves public image URLs from post attachments. When includePollOptions is enabled, the actor saves visible public poll options and vote percentages when YouTube exposes them.

Limits

The actor only extracts public channel Community posts. It does not log in, bypass private data, scrape private members-only posts, or access data hidden behind account permissions.

Data quality

The actor normalizes channel inputs, parses compact public counts such as 1.2K, and records a scrape timestamp for each item. Fields that YouTube does not publicly expose may be null or empty arrays.

Integrations

Use the dataset with Google Sheets, Airtable, Make, Zapier, Slack alerts, dashboards, BI tools, and enrichment pipelines. Common workflows include daily channel monitoring, influencer campaign tracking, competitor content reporting, and campaign launch alerts.

Workflow ideas

  • Send new Community posts from selected creators to Slack.
  • Build a weekly influencer monitoring spreadsheet.
  • Compare visible engagement by channel and post type.
  • Archive public announcements before a campaign launch.
  • Enrich posts with your own creator categories in a downstream workflow.

API usage with Node.js

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/youtube-community-posts-scraper').call({
  channelUrls: ['https://www.youtube.com/@YouTube/posts'],
  maxPostsPerChannel: 10,
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient

client = ApifyClient('MY_APIFY_TOKEN')
run = client.actor('fetch_cat/youtube-community-posts-scraper').call(run_input={
    'channelUrls': ['https://www.youtube.com/@YouTube/posts'],
    'maxPostsPerChannel': 10,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~youtube-community-posts-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"channelUrls":["https://www.youtube.com/@YouTube/posts"],"maxPostsPerChannel":10}'

MCP usage

Connect the actor to Apify MCP at https://mcp.apify.com/?tools=fetch_cat/youtube-community-posts-scraper and ask Claude to monitor selected public YouTube channels, summarize new Community posts, or compare post engagement across creators.

Claude Code setup:

claude mcp add apify-youtube-community-posts https://mcp.apify.com/?tools=fetch_cat/youtube-community-posts-scraper

Claude Desktop JSON setup:

{
  "mcpServers": {
    "apify-youtube-community-posts": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/youtube-community-posts-scraper"
    }
  }
}

Example prompts:

  • "Run the YouTube Community Posts Scraper for these five channels and summarize the latest announcements."
  • "Find public Community posts with more than 1,000 likes from my channel list."
  • "Export the scraped posts into a campaign monitoring table."

Scheduling

Schedule the actor daily, weekly, or before campaign reporting windows. For monitoring use cases, store the dataset in Apify or export it to your database so you can compare new posts with earlier runs.

Troubleshooting

If a channel returns no items, confirm that the channel has a public Posts tab. Some channels do not use Community posts or may show content differently by region.

If engagement fields are empty, YouTube may not expose the count for that post or channel at the time of scraping.

If a channel URL fails, try the channel handle or the direct /posts tab URL.

Legality

This actor extracts publicly available YouTube pages. Use it responsibly, respect YouTube terms, and avoid collecting or processing personal data without a lawful basis.

Support

If a public channel with visible Community posts does not return data, share the run URL and input so the issue can be reproduced.

Common questions

Questions and answers reused from the canonical actor README.

Can I scrape private or members-only posts?

No. The actor only collects public content visible without logging in.

Can I use handles instead of full URLs?

Yes. Handles such as @YouTube are supported.

Does the actor scrape comments?

No. It extracts the public comment count for each post, not individual comment threads.

Does it support polls?

Yes, when public poll information is available and includePollOptions is enabled.

Why do some channels return fewer posts than requested?

Some channels publish fewer Community posts, hide older posts from the public Posts tab, or expose a smaller initial list to anonymous visitors.