# YouTube Image Post Scraper (`codenest/youtube-image-post-scraper`) Actor

Easily extract images and metadata from YouTube community posts. Get high-quality images (up to 4K), author details, post text, like counts, poll data, and direct CDN download URLs in structured JSON output. Perfect for content archiving and analysis!

- **URL**: https://apify.com/codenest/youtube-image-post-scraper.md
- **Developed by:** [CodeNest](https://apify.com/codenest) (community)
- **Categories:** Developer tools, Social media, Automation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period. You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## 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 Image Post Scraper - Ultimate Community Post Media Extraction Tool

**Effortlessly extract and download images from YouTube community posts with our powerful **YouTube Image Post Scraper**! This enterprise-grade Apify actor enables you to batch scrape YouTube post images while preserving high-quality visuals, comprehensive metadata, and direct CDN access.**

***

### 📋 Overview

Need to archive YouTube community content or repurpose post images? The **YouTube Image Post Scraper** delivers:

- 📸 **Multi-image extraction**: Get all images from any YouTube post
- 🎯 **Multiple resolutions**: Access images from 288px to 4096px+
- 📊 **Complete metadata**: Author details, post text, like counts, timestamps
- 📋 **Poll data capture**: Extract poll questions and voting options
- 🔄 **Batch processing**: Scrape multiple YouTube post URLs in one run

Perfect for social media managers 📈, content researchers 🎬, data analysts 📱, and marketing agencies!

### 🚀 Core Capabilities/Key Features of YouTube Image Post Scraper

#### 🖼️ Image Extraction Options

- **Multi-Format Access**: Download all images from each post with multiple resolution options
- **Best Quality Selection**: Automatic identification of highest available resolution
- **Bulk Image Mode**: Extract hundreds of images across multiple posts
- **Resolution Matrix**: Complete set from 288p up to 4K+ quality

#### 📝 Metadata Mastery

- **Creator Profiles**: Author names, channel IDs, and channel URLs
- **Author Thumbnails**: Direct URLs to channel profile pictures
- **Post Content**: Full text content from community posts
- **Engagement Metrics**: Like counts and comment statistics
- **Timestamps**: Exact publication time (e.g., "1 hour ago", "2 days ago")

#### 📊 Poll Detection & Analysis

- **Vote Tracking**: Total votes count for each poll
- **Choice Extraction**: All poll options with vote percentages
- **Structured Format**: Easy-to-parse poll data structure

#### 🎯 Advanced Technical Features

- **Sponsor Content Detection**: Identify sponsor-only posts
- **Video Attachment Links**: Extract linked video information
- **CDN Direct Access**: High-speed image download URLs
- **Post ID Extraction**: Unique identifiers for each community post

***

### ⚙️ Input Configuration

Simply enter the YouTube post URL in the Input Section, click the "start" button, and wait for the results. The **YouTube Image Post Scraper** accepts URLs like this:

```json
{
  "url": "http://youtube.com/post/Ugkxgk74xOvwx2pswRqTj6YSMSnUTZxJH5HN?si=5MHSwT21ukK8eC_y"
}
```

#### 📥 Input Specifications

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `url` | String | Yes | Valid YouTube community post URL (youtube.com/post/ format) |

***

### 📤 Output Structure of YouTube Image Post Scraper

The **YouTube Image Post Scraper** returns comprehensive JSON output like this:

```json
[
  {
    "post_id": "Ugkxgk74xOvwx2pswRqTj6YSMSnUTZxJH5HN",
    "url": "https://www.youtube.com/post/Ugkxgk74xOvwx2pswRqTj6YSMSnUTZxJH5HN",
    "author": "Daily Jugantor",
    "author_channel_id": "UCKbhCXpZwAmFN4UHeT8HTjA",
    "author_channel_url": "https://www.youtube.com/channel/UCKbhCXpZwAmFN4UHeT8HTjA",
    "author_thumbnail": "https://yt3.googleusercontent.com/6pBqZRv1kAFde2ZkoPcZn1OVU8ydgBnlC-IkRRAT7rhAEnsHw0hc8UTLXxWQHWGe5YVC9VJT2w",
    "content_text": "বাংলাদেশ পুলিশের আইজি মো. আলী হোসেন ফকির বলেছেন, শুধু যানজটের কারণে ঢাকা শহরে প্রতিদিন সরকারের ১৪০ কোটি টাকা ক্ষতি হচ্ছে।\n\nআপনিও কি তা-ই মনে করেন?",
    "published_time": "1 hour ago",
    "is_sponsor_only": false,
    "like_count": "647",
    "comment_count": null,
    "images": [],
    "video_attachment": null,
    "poll": {
      "total_votes": "26K votes",
      "choices": [
        {
          "text": "হ্যা ",
          "vote_percentage": ""
        },
        {
          "text": "না ",
          "vote_percentage": ""
        },
        {
          "text": "মন্তব্য নেই ",
          "vote_percentage": ""
        }
      ]
    },
    "all_image_download_urls": []
  },
  {
    "post_id": "Ugkxw8A080NIw7m2oolwbUOHuMOlE7ugi0p6",
    "url": "https://www.youtube.com/post/Ugkxw8A080NIw7m2oolwbUOHuMOlE7ugi0p6",
    "author": "SOSUKE X 先輩",
    "author_channel_id": "UCbqcgfLG8vkiUvlNgPcz8LA",
    "author_channel_url": "https://www.youtube.com/channel/UCbqcgfLG8vkiUvlNgPcz8LA",
    "author_thumbnail": "https://yt3.googleusercontent.com/lkV71XLKXz5AeWFeDIrQr1kIWM8Cg_u-j4MfJZf_6897yUGllQ3u1404q18J7zC-tKai1HiBSg",
    "content_text": "THE PEAK I WANT TO WITNESS BEFORE I DIE 🔥✋🏻☠️🤚🏻🔥.....",
    "published_time": "18 hours ago",
    "is_sponsor_only": false,
    "like_count": "207",
    "comment_count": null,
    "images": [
      {
        "index": 0,
        "images": [
          {
            "width": 288,
            "height": 288,
            "download_url": "https://yt3.ggpht.com/rujrI9cprG1kNxvGXfsFgMWJiR3On_BpOMzCYfCKXR-dx2PSPvn8ZhgCP4InWb2zci9GAG8VtqnngA=s288-c-fcrop64=1,00000000ffffffff-rw-nd-v1"
          },
          {
            "width": 4096,
            "height": 4096,
            "download_url": "https://yt3.ggpht.com/rujrI9cprG1kNxvGXfsFgMWJiR3On_BpOMzCYfCKXR-dx2PSPvn8ZhgCP4InWb2zci9GAG8VtqnngA=s4096-c-fcrop64=1,00000000ffffffff-rw-nd-v1"
          }
        ],
        "best_download_url": "https://yt3.ggpht.com/rujrI9cprG1kNxvGXfsFgMWJiR3On_BpOMzCYfCKXR-dx2PSPvn8ZhgCP4InWb2zci9GAG8VtqnngA=s4096-c-fcrop64=1,00000000ffffffff-rw-nd-v1"
      }
    ],
    "video_attachment": null,
    "poll": null,
    "all_image_download_urls": [
      "https://yt3.ggpht.com/rujrI9cprG1kNxvGXfsFgMWJiR3On_BpOMzCYfCKXR-dx2PSPvn8ZhgCP4InWb2zci9GAG8VtqnngA=s4096-c-fcrop64=1,00000000ffffffff-rw-nd-v1"
    ]
  }
]
```

#### 📋 Output Field Documentation

**📌 Post Identification**
| Field | Description |
|-------|-------------|
| `post_id` | Unique YouTube post identifier |
| `url` | Complete YouTube post URL |

**👤 Author Information**
| Field | Description |
|-------|-------------|
| `author` | Channel name of post creator |
| `author_channel_id` | YouTube channel unique ID |
| `author_channel_url` | Direct link to author's channel |
| `author_thumbnail` | Profile picture URL of author |

**📝 Content Data**
| Field | Description |
|-------|-------------|
| `content_text` | Full text content of the post |
| `published_time` | Relative publication timestamp |
| `is_sponsor_only` | Boolean indicating sponsor-only content |

**📊 Engagement Metrics**
| Field | Description |
|-------|-------------|
| `like_count` | Number of likes on the post |
| `comment_count` | Number of comments (if available) |

**🖼️ Image Assets**
| Field | Description |
|-------|-------------|
| `images` | Array of image objects with multiple resolutions |
| `index` | Position of image in multi-image post |
| `width` | Image width in pixels |
| `height` | Image height in pixels |
| `download_url` | Direct CDN link for specific resolution |
| `best_download_url` | Highest quality image URL recommendation |
| `all_image_download_urls` | Complete list of best-quality images from post |

**📋 Poll Data**
| Field | Description |
|-------|-------------|
| `poll.total_votes` | Total votes cast in poll |
| `poll.choices` | Array of poll options |
| `choice.text` | Poll option text |
| `choice.vote_percentage` | Vote percentage for option |

**🎬 Video Attachments**
| Field | Description |
|-------|-------------|
| `video_attachment` | Linked video information (if present) |

***

### 🎨 Image Quality Tiers Available

The **YouTube Image Post Scraper** automatically detects and provides multiple quality options for each image:

1. **Ultra HD (4K+)** - 4096x4096 and above for maximum quality
2. **High Definition** - 2048x2048 and 1600x1600 for professional use
3. **Standard Definition** - 1024x1024 and 800x800 for web usage
4. **Mobile Optimized** - 640x640, 512x512, and 400x400 for apps
5. **Thumbnail Size** - 288x288 for preview purposes

Each image in every post comes with complete resolution matrix for maximum flexibility!

***

### 🔧 Technical Features of YouTube Image Post Scraper

#### 🖥️ Advanced Extraction Capabilities

- **Dynamic Resolution Detection**: Automatically identifies all available image sizes
- **Multi-Image Post Support**: Handles posts with 10+ images seamlessly
- **Poll Structure Parsing**: Extracts complex poll data with vote percentages
- **Sponsor Content Flagging**: Identifies and flags restricted content

#### 📊 Comprehensive Metadata

- **Author Attribution**: Complete channel information for every post
- **Engery Metrics**: Like counts and engagement data
- **Timestamp Preservation**: Exact publication timing
- **Content Localization**: Preserves original language and formatting

#### 🔒 Reliability Features

- **Direct CDN Access**: Bypasses YouTube interface for reliable downloads
- **Fallback Resolution Options**: Multiple quality tiers ensure you always get content
- **Error Handling**: Robust error management for problematic posts
- **URL Validation**: Automatic normalization of post URLs

***

### 💼 Use Cases for YouTube Image Post Scraper

- **📱 App Developers** – Build apps featuring YouTube community content
- **📊 Social Media Managers** – Archive client channel posts and images
- **🔬 Marketing Researchers** – Analyze post engagement and visual trends
- **🎨 Content Creators** – Repurpose community post images for other platforms
- **📚 Digital Archivists** – Preserve YouTube community content permanently
- **📈 Data Analysts** – Study post performance and engagement patterns
- **🏢 Brand Managers** – Monitor competitor channel activities

***

### ✅ Why Choose Our YouTube Image Post Scraper?

- **⚡ Reliable Performance**: Stable and efficient scraping process
- **👤 User-Friendly**: Simple interface for both beginners and advanced users
- **🔄 Regular Updates**: Maintained to ensure compatibility with YouTube changes
- **📊 Comprehensive Data**: Get all metadata and images in one place
- **🎯 Precision Targeting**: Extract exactly what you need from community posts
- **🌐 Global Access**: Works with posts from any YouTube channel worldwide

***

### ⚠️ Limitations

- Only works with **public YouTube community posts**
- Posts must be accessible without login/sign-in
- The **YouTube Image Post Scraper** may hit rate limits depending on YouTube's restrictions
- Video attachments within posts are linked but not downloaded (use our YouTube Video Scraper for that)

***

### 📧 Need Customization for YouTube Image Post Scraper?

Want \*higher resolution limits, \*\*batch processing of 1000+ posts, or \**additional metadata fields*?

✉ Email **<codenest2.0@gmail.com>** for tailored solutions!

***

**⭐ Why wait? Start using the **YouTube Image Post Scraper** today to unlock the full potential of YouTube community content!**

# Actor input Schema

## `post_urls` (type: `array`):

List of YouTube Community Post URLs to scrape. Both URL formats are supported:

- https://www.youtube.com/post/UgkxABC123
- http://youtube.com/post/UgkxABC123?si=TRACKING\_PARAM

## `proxy` (type: `object`):

Optional proxy settings. Leave default to use Apify Proxy (recommended for reliability).

## Actor input object example

```json
{
  "post_urls": [
    {
      "url": "https://www.youtube.com/post/Ugkxn1RDqnGmsEdrFrF0JpBv7OxsYDKjlGgl"
    }
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# 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 = {
    "post_urls": [
        {
            "url": "https://www.youtube.com/post/Ugkxn1RDqnGmsEdrFrF0JpBv7OxsYDKjlGgl"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codenest/youtube-image-post-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 = { "post_urls": [{ "url": "https://www.youtube.com/post/Ugkxn1RDqnGmsEdrFrF0JpBv7OxsYDKjlGgl" }] }

# Run the Actor and wait for it to finish
run = client.actor("codenest/youtube-image-post-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 '{
  "post_urls": [
    {
      "url": "https://www.youtube.com/post/Ugkxn1RDqnGmsEdrFrF0JpBv7OxsYDKjlGgl"
    }
  ]
}' |
apify call codenest/youtube-image-post-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codenest/youtube-image-post-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/wjdwpqO1DDVyfDP8N/builds/XdkaChGK130JciBsK/openapi.json
