# Youtube Community Posts & Photos Scraper (`scraperdataworld/youtube-community-posts-photos-scraper`) Actor

Extract detailed data from YouTube Community Posts and Photos. Scrape post content, images, hashtags, likes, comments, polls, external links, and channel metadata from one or multiple channels using handles, usernames, channel IDs, or URLs. Fast, structured, and automation-ready.

- **URL**: https://apify.com/scraperdataworld/youtube-community-posts-photos-scraper.md
- **Developed by:** [ScraperDataWorld](https://apify.com/scraperdataworld) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

***

### YouTube Community Posts & Photos Scraper Overview

The **YouTube Community Posts & Photos Scraper** is a powerful Apify Actor designed to extract structured data from YouTube community posts pages. It helps users collect community post content, engagement metrics, images, hashtags, links, and channel metadata from public YouTube channels.

Whether you need a **YouTube Community Posts & Photos Scraper** for market research, creator monitoring, content analysis, trend tracking, social media intelligence, or business research, this Actor provides a reliable way to gather community post data at scale.

The **YouTube Community Posts & Photos Scraper** supports channel handles, usernames, channel IDs, and YouTube channel URLs. All supported inputs are automatically normalized into valid YouTube community posts URLs before scraping begins.

The Actor extracts community post information directly from public YouTube channel posts pages and continues pagination until the specified maximum number of posts is reached.

***

### YouTube Community Posts & Photos Scraper Features

#### Community Post Extraction

Extract public YouTube community posts from one or multiple channels.

#### Multiple Input Methods

The **YouTube Community Posts & Photos Scraper** accepts:

- Channel usernames
- Channel handles
- Channel IDs
- Channel URLs
- Community posts URLs

#### Automatic URL Normalization

Convert various YouTube channel URL formats into valid community posts URLs automatically.

#### Community Images & Photos

Extract image attachments from community posts, including high-resolution image URLs when available.

#### Engagement Metrics

Collect:

- Like counts
- Comment counts
- Vote counts
- Poll information

#### Channel Metadata

Retrieve channel-related information including:

- Channel name
- Channel ID
- Channel URL
- Channel handle
- Channel thumbnail

#### Pagination Support

The **YouTube Community Posts & Photos Scraper** automatically paginates through community posts using YouTube continuation tokens until the desired post limit is reached.

#### Proxy Fallback Protection

The Actor attempts requests without a proxy first and automatically switches to residential proxies when blocking is detected.

***

### How to Use the YouTube Community Posts & Photos Scraper

Using the **YouTube Community Posts & Photos Scraper** is simple:

1. Provide one or more channel handles, usernames, IDs, or URLs.
2. Specify the maximum number of posts to extract.
3. Start the Actor.
4. The Actor identifies unique channels.
5. Community posts pages are fetched.
6. Community posts are extracted.
7. Pagination continues automatically.
8. Structured results are saved to the Apify dataset.

The **YouTube Community Posts & Photos Scraper** removes duplicate channels automatically when the same channel is provided through multiple input methods.

***

### YouTube Community Posts & Photos Scraper Data Extraction

The **YouTube Community Posts & Photos Scraper** extracts a wide range of community post data from public YouTube channels.

Supported extraction includes:

- Community post content
- Community post URLs
- Channel metadata
- Author metadata
- Published text
- Engagement metrics
- Poll information
- Hashtags
- External links
- Attached photos
- Attached image URLs
- Image dimensions
- Scrape timestamps

This makes the **YouTube Community Posts & Photos Scraper** useful for social media monitoring, creator analytics, content intelligence, audience engagement analysis, trend discovery, and public data collection.

***

### YouTube Community Posts & Photos Scraper Use Cases

#### Creator Research

Analyze how creators use community posts to engage their audiences.

#### Content Strategy Analysis

Track posting patterns, content topics, hashtags, and engagement performance.

#### Competitor Monitoring

Monitor competitors' community activity and audience interaction.

#### Social Media Intelligence

Collect structured community post data for reporting and analysis.

#### Brand Monitoring

Track mentions, links, hashtags, and promotional content.

#### Market Research

Study community engagement trends across different creator niches.

#### Academic Research

Gather structured datasets for social media and communication research.

#### Data Analytics

Feed community post data into dashboards, BI tools, or analytics pipelines.

#### Automation Workflows

Use the **YouTube Community Posts & Photos Scraper** inside Apify automation workflows to continuously collect fresh community post data.

***

### Input Parameters

| Input             | Type    | Required | Default | Description                                            |
| ----------------- | ------- | -------- | ------- | ------------------------------------------------------ |
| Channel\_usernames | Array   | No       | \[]      | List of channel usernames or handles with or without @ |
| channelIds        | Array   | No       | \[]      | List of YouTube channel IDs beginning with UC          |
| startUrls         | Array   | No       | \[]      | One or more YouTube channel URLs or posts URLs         |
| maxposts          | Integer | No       | 20      | Maximum number of posts to scrape per channel          |

#### Supported Channel URL Formats

The **YouTube Community Posts & Photos Scraper** supports:

```text
https://www.youtube.com/@Handle
https://www.youtube.com/@Handle/posts
https://www.youtube.com/c/CustomName
https://www.youtube.com/user/LegacyName
https://www.youtube.com/channel/UCxxxxxxxx
```

Handles can also be provided directly:

```text
@MrBeast
MrBeast
```

Channel IDs are also supported:

```text
UCxxxxxxxxxxxxxxxx
```

***

### Example Input

```json
{
  "Channel_usernames": [
    "@loganpaulvlogs",
    "tseries"
  ],
  "channelIds": [
    "UC-lHJZR3Gqxm24_Vd_AJ5Yw"
  ],
  "startUrls": [
    {
      "url": "https://www.youtube.com/@PenMovies/posts"
    }
  ],
  "maxposts": 20
}
```

***

### Output Data

The **YouTube Community Posts & Photos Scraper** generates structured output for every extracted community post.

| Field                    | Type    | Description                       |
| ------------------------ | ------- | --------------------------------- |
| status                   | String  | Extraction status                 |
| post\_id                  | String  | Unique community post ID          |
| post\_url                 | String  | Community post URL                |
| channel\_id               | String  | YouTube channel ID                |
| channel\_name             | String  | Channel name                      |
| channel\_url              | String  | Channel URL                       |
| channel\_thumbnail\_hd\_url | String  | High-resolution channel thumbnail |
| author\_name              | String  | Author name                       |
| author\_url               | String  | Author URL                        |
| author\_handle            | String  | Author handle                     |
| post\_type                | String  | Post type detected                |
| attachment\_type          | String  | Attachment category               |
| content\_text             | String  | Community post text               |
| published\_time\_text      | String  | Human-readable publish time       |
| published\_time           | String  | Extraction timestamp              |
| like\_count               | Integer | Like count                        |
| like\_count\_text          | String  | Like count text                   |
| comment\_count            | Integer | Comment count                     |
| comment\_count\_text       | String  | Comment count text                |
| hashtags                 | Array   | Extracted hashtags                |
| external\_links           | Array   | External URLs found in content    |
| total\_votes              | Integer | Poll vote count                   |
| is\_poll                  | Boolean | Indicates poll post               |
| is\_quiz                  | Boolean | Quiz flag                         |
| comment\_threads\_url      | String  | Comment thread URL                |
| detected\_language        | String  | Detected language value           |
| all\_images               | Array   | Attached image information        |
| Full\_hd\_image\_1+         | String  | High-resolution image URLs        |
| source\_url               | String  | Source channel posts URL          |
| scraped\_at               | String  | Scraping timestamp                |

***

### Understanding the Output

The **YouTube Community Posts & Photos Scraper** returns one dataset item per community post.

Text posts include content, hashtags, engagement metrics, links, and metadata.

Image posts additionally contain image information and high-resolution image URLs when available.

Poll posts include vote-related information and poll indicators.

The output structure is designed for analytics, research, reporting, automation, and database storage.

***

### Example Output

```json
[
    {
    "status": "Success",
    "post_id": "UgkxB7POmB4C7U0I3kIEWRZpYfE2t-ieP9CA",
    "post_url": "https://www.youtube.com/post/UgkxB7POmB4C7U0I3kIEWRZpYfE2t-ieP9CA",
    "channel_id": "UCX6OQ3DkcsbYNE6H8uQQuVA",
    "channel_name": "MrBeast",
    "channel_url": "http://www.youtube.com/@MrBeast",
    "channel_thumbnail_hd_url": "https://yt3.googleusercontent.com/nxYrc_1_2f77DoBadyxMTmv7ZpRZapHR5jbuYe7PlPd5cIRJxtNNEYyOC0ZsxaDyJJzXrnJiuDE=s900-c-k-c0x00ffffff-no-rj",
    "author_name": "MrBeast",
    "author_url": "http://www.youtube.com/@MrBeast",
    "author_handle": "@MrBeast",
    "post_type": "image",
    "attachment_type": "image",
    "content_text": "Some more fun wedding photos 🥰",
    "published_time_text": "1 month ago",
    "published_time": "2026-08-29T15:41:34Z",
    "like_count": 3,
    "like_count_text": "3",
    "comment_count": 61,
    "comment_count_text": "61",
    "hashtags": [],
    "external_links": [],
    "total_votes": 0,
    "is_poll": false,
    "is_quiz": false,
    "comment_threads_url": "https://www.youtube.com/post/UgkxB7POmB4C7U0I3kIEWRZpYfE2t-ieP9CA",
    "detected_language": "en",
    "all_images": [
      {
        "url_1": "https://yt3.ggpht.com/bFmb7RbyvsNTUS3otE4oc2tqI5CZyl3apwKmjnqnTjFuv1mwxWG7hWlZCuiWlRYrd3oCd_nAtBWVsw=s1600-c-fcrop64=1,00002578ffffda87-rw-nd-v1",
        "width": 1600,
        "height": 1600
      },
      {
        "url_2": "https://yt3.ggpht.com/1Oxcyk2wshlCOoZYiTWUFoixDaomfdtlcIKiGv_ozoT4Lfs9CZx-3VTxbNeQlJOOV_h7CdWjWF8QIA=s1536-c-fcrop64=1,00002000ffffdfff-rw-nd-v1",
        "width": 1536,
        "height": 1536
      },
      {
        "url_3": "https://yt3.ggpht.com/q_WXrPGUBlang4cdYbyfmOLtBvYUw9SGIHXeDg79S2RbLqVQwM94Yz1cDe3r-xtN7Eh8BO_U66xdpA=s1243-c-fcrop64=1,0000126dffffed92-rw-nd-v1",
        "width": 1243,
        "height": 1243
      },
      {
        "url_4": "https://yt3.ggpht.com/8Q3p7-Jgoxdl_DUEW10TCVN9IlH4bdALqgXqQa67aAX66vsZNTUJ6deIN_7hsWWELDqgqDTVPK8P=s945-c-fcrop64=1,00001f14ffffe0eb-rw-nd-v1",
        "width": 945,
        "height": 945
      },
      {
        "url_5": "https://yt3.ggpht.com/cQMWv1Z7gGyL6hcS_gq0qnzAYu32fWH7VVWiFUKlJ5tuSYzOHkOD-i8qnUjHl9BM3O4JoLsWuh5CP2Y=s1600-c-fcrop64=1,0000289effffd761-rw-nd-v1",
        "width": 1600,
        "height": 1600
      },
      {
        "url_6": "https://yt3.ggpht.com/JMZoggM17vtc4ssB2u4rDHPJKyUUHihMxypM_orcMdyIAwHeNockUGAB9UX4mU7LepF2V0UsDveHCA=s1600-c-fcrop64=1,00002aabffffd555-rw-nd-v1",
        "width": 1600,
        "height": 1600
      },
      {
        "url_7": "https://yt3.ggpht.com/B0NfyE7U1BMX151AO2feyeSDhPuJxyzSoF8aMjpI43sHC8hG1jd1h8HN4kH-Ssy6r24lCTbKwnkSbQ=s1391-c-fcrop64=1,00001d86ffffe279-rw-nd-v1",
        "width": 1391,
        "height": 1391
      },
      {
        "url_8": "https://yt3.ggpht.com/SWKVPUHhc6MDW6M14xFCKMIVn8mGZ7sXdB0FbcprFNYu3OBvOD7flK3c16jiOcvbs1pSEvuFS11LYxs=s1536-c-fcrop64=1,00002000ffffdfff-rw-nd-v1",
        "width": 1536,
        "height": 1536
      },
      {
        "url_9": "https://yt3.ggpht.com/7E8dNdAgzEVvk5Ek9HCnrCXzl1dzGd4W2IeU7be6SlVaT4SeKdLjGwdtC5UjlY1W_jjPUoy_4rfhYB8=s1204-c-fcrop64=1,00000b56fffff4a9-rw-nd-v1",
        "width": 1204,
        "height": 1204
      },
      {
        "url_10": "https://yt3.ggpht.com/Q6mSIBC6EeRqdYr22tW8CCQXHr6uWzCKgsavj1BgThze1AjWd4cO-lbMzoaPvW4ThJftbf0DwkvSfbs=s1600-c-fcrop64=1,00002a55ffffd5aa-rw-nd-v1",
        "width": 1600,
        "height": 1600
      }
    ],
    "Full_hd_image_1": "https://yt3.ggpht.com/bFmb7RbyvsNTUS3otE4oc2tqI5CZyl3apwKmjnqnTjFuv1mwxWG7hWlZCuiWlRYrd3oCd_nAtBWVsw=s1600-c-fcrop64=1,00002578ffffda87-rw-nd-v1",
    "Full_hd_image_2": "https://yt3.ggpht.com/1Oxcyk2wshlCOoZYiTWUFoixDaomfdtlcIKiGv_ozoT4Lfs9CZx-3VTxbNeQlJOOV_h7CdWjWF8QIA=s1536-c-fcrop64=1,00002000ffffdfff-rw-nd-v1",
    "Full_hd_image_3": "https://yt3.ggpht.com/q_WXrPGUBlang4cdYbyfmOLtBvYUw9SGIHXeDg79S2RbLqVQwM94Yz1cDe3r-xtN7Eh8BO_U66xdpA=s1243-c-fcrop64=1,0000126dffffed92-rw-nd-v1",
    "Full_hd_image_4": "https://yt3.ggpht.com/8Q3p7-Jgoxdl_DUEW10TCVN9IlH4bdALqgXqQa67aAX66vsZNTUJ6deIN_7hsWWELDqgqDTVPK8P=s945-c-fcrop64=1,00001f14ffffe0eb-rw-nd-v1",
    "Full_hd_image_5": "https://yt3.ggpht.com/cQMWv1Z7gGyL6hcS_gq0qnzAYu32fWH7VVWiFUKlJ5tuSYzOHkOD-i8qnUjHl9BM3O4JoLsWuh5CP2Y=s1600-c-fcrop64=1,0000289effffd761-rw-nd-v1",
    "Full_hd_image_6": "https://yt3.ggpht.com/JMZoggM17vtc4ssB2u4rDHPJKyUUHihMxypM_orcMdyIAwHeNockUGAB9UX4mU7LepF2V0UsDveHCA=s1600-c-fcrop64=1,00002aabffffd555-rw-nd-v1",
    "Full_hd_image_7": "https://yt3.ggpht.com/B0NfyE7U1BMX151AO2feyeSDhPuJxyzSoF8aMjpI43sHC8hG1jd1h8HN4kH-Ssy6r24lCTbKwnkSbQ=s1391-c-fcrop64=1,00001d86ffffe279-rw-nd-v1",
    "Full_hd_image_8": "https://yt3.ggpht.com/SWKVPUHhc6MDW6M14xFCKMIVn8mGZ7sXdB0FbcprFNYu3OBvOD7flK3c16jiOcvbs1pSEvuFS11LYxs=s1536-c-fcrop64=1,00002000ffffdfff-rw-nd-v1",
    "Full_hd_image_9": "https://yt3.ggpht.com/7E8dNdAgzEVvk5Ek9HCnrCXzl1dzGd4W2IeU7be6SlVaT4SeKdLjGwdtC5UjlY1W_jjPUoy_4rfhYB8=s1204-c-fcrop64=1,00000b56fffff4a9-rw-nd-v1",
    "Full_hd_image_10": "https://yt3.ggpht.com/Q6mSIBC6EeRqdYr22tW8CCQXHr6uWzCKgsavj1BgThze1AjWd4cO-lbMzoaPvW4ThJftbf0DwkvSfbs=s1600-c-fcrop64=1,00002a55ffffd5aa-rw-nd-v1",
    "source_url": "https://www.youtube.com/@MrBeast/posts",
    "scraped_at": "2026-08-29T15:41:34Z"
  }
]
```

***

### Data Quality and Reliability

The **YouTube Community Posts & Photos Scraper** is built to maximize extraction reliability.

#### Automatic Deduplication

Channels submitted through multiple inputs are automatically merged into unique targets.

#### Continuation Pagination

The Actor uses continuation tokens to fetch additional community posts beyond the initial page.

#### Structured Output

All extracted information is returned in a machine-readable format suitable for automation.

#### Residential Proxy Fallback

When YouTube blocking is detected, the Actor automatically retries requests using residential proxies.

#### Public Data Extraction

The **YouTube Community Posts & Photos Scraper** works with publicly available community posts and channel information.

***

### Why Use This YouTube Community Posts & Photos Scraper

The **YouTube Community Posts & Photos Scraper** offers several advantages:

- Multiple channel input methods
- Community post extraction at scale
- Automatic pagination
- Structured datasets
- Image extraction support
- Poll detection
- Hashtag extraction
- External link extraction
- Automatic URL normalization
- Duplicate channel removal
- Proxy fallback protection
- Automation-friendly output

The **YouTube Community Posts & Photos Scraper** saves significant time compared with manually collecting community post information.

***

### API and Automation

The **YouTube Community Posts & Photos Scraper** can be integrated into broader Apify workflows.

Common automation scenarios include:

- Scheduled community post monitoring
- Creator activity tracking
- Automated reporting
- Social media intelligence pipelines
- Research data collection
- Business intelligence workflows

Because output is structured, the dataset can easily be consumed by external systems, databases, analytics tools, and custom automation processes.

***

### Frequently Asked Questions

#### What is the YouTube Community Posts & Photos Scraper?

The **YouTube Community Posts & Photos Scraper** is an Apify Actor that extracts public YouTube community posts, images, engagement metrics, and channel metadata.

#### What data can the YouTube Community Posts & Photos Scraper extract?

It can extract post content, photos, hashtags, links, likes, comments, poll information, channel details, and related metadata.

#### Can I scrape multiple channels at once?

Yes. The **YouTube Community Posts & Photos Scraper** supports multiple usernames, channel IDs, and URLs simultaneously.

#### Does the Actor support YouTube handles?

Yes. Handles such as `@MrBeast` are fully supported.

#### Can I use channel IDs?

Yes. Channel IDs beginning with `UC` are supported.

#### Does the Actor automatically paginate?

Yes. The **YouTube Community Posts & Photos Scraper** continues pagination using continuation tokens until the configured limit is reached.

#### Are community post images included?

Yes. Image attachments and high-resolution image URLs are extracted when available.

#### Can I extract hashtags?

Yes. The Actor extracts hashtags detected within community posts.

#### Can I collect external links?

Yes. External URLs found in community post content are included in the output.

#### Does the Actor remove duplicate channels?

Yes. Duplicate channel inputs are automatically consolidated before scraping starts.

#### What happens if YouTube blocks requests?

The **YouTube Community Posts & Photos Scraper** automatically retries using residential proxy fallback when blocking is detected.

#### Is login required?

The Actor is designed to extract publicly available community post information.

#### What format is returned?

Results are returned as structured dataset records suitable for analytics and automation.

***

### Support

If you encounter issues, need assistance, or want to report a bug related to the **YouTube Community Posts & Photos Scraper**, please use the Actor issue reporting channels available through Apify.

When reporting an issue, include:

- Input configuration
- Example channel URL
- Error messages
- Expected behavior

Providing detailed information helps identify and resolve issues faster.

***

# Actor input Schema

## `Channel_usernames` (type: `array`):

List of channel handles or usernames (with or without @). Examples: "MrBeast", "@MrBeast". The actor will convert these to: https://www.youtube.com/@USERNAME/posts

## `channelIds` (type: `array`):

List of channel IDs (starting with UC...). The actor will convert to https://www.youtube.com/channel/CHANNEL\_ID/posts

## `startUrls` (type: `array`):

List of one or more YouTube channel URLs or share links to scrape. These will be added to the list of channels found via other inputs.

## `maxposts` (type: `integer`):

Maximum number of posts to extract from each channel (integer).

## Actor input object example

```json
{
  "Channel_usernames": [
    "@MrBeast",
    "tseries"
  ],
  "channelIds": [
    "UC-lHJZR3Gqxm24_Vd_AJ5Yw"
  ],
  "startUrls": [
    {
      "url": "https://www.youtube.com/@PenMovies/posts"
    },
    {
      "url": "https://www.youtube.com/@PlayDMF/posts"
    }
  ],
  "maxposts": 20
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "Channel_usernames": [
        "@MrBeast",
        "tseries"
    ],
    "channelIds": [
        "UC-lHJZR3Gqxm24_Vd_AJ5Yw"
    ],
    "startUrls": [
        {
            "url": "https://www.youtube.com/@PenMovies/posts"
        },
        {
            "url": "https://www.youtube.com/@PlayDMF/posts"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraperdataworld/youtube-community-posts-photos-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "Channel_usernames": [
        "@MrBeast",
        "tseries",
    ],
    "channelIds": ["UC-lHJZR3Gqxm24_Vd_AJ5Yw"],
    "startUrls": [
        { "url": "https://www.youtube.com/@PenMovies/posts" },
        { "url": "https://www.youtube.com/@PlayDMF/posts" },
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("scraperdataworld/youtube-community-posts-photos-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "Channel_usernames": [
    "@MrBeast",
    "tseries"
  ],
  "channelIds": [
    "UC-lHJZR3Gqxm24_Vd_AJ5Yw"
  ],
  "startUrls": [
    {
      "url": "https://www.youtube.com/@PenMovies/posts"
    },
    {
      "url": "https://www.youtube.com/@PlayDMF/posts"
    }
  ]
}' |
apify call scraperdataworld/youtube-community-posts-photos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraperdataworld/youtube-community-posts-photos-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/0pVBjxDaDE98JEx7n/builds/d03ucUmqfJy0OyyQs/openapi.json
