YouTube Channel Posts – Text, Images & Engagement avatar

YouTube Channel Posts – Text, Images & Engagement

Pricing

from $1.00 / 1,000 results

Go to Apify Store
YouTube Channel Posts – Text, Images & Engagement

YouTube Channel Posts – Text, Images & Engagement

Collect public YouTube community posts from channel handles or IDs. Export text, images, available engagement, polls, links, mentions, and channel context with pagination.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Collect the public community posts exposed on a YouTube channel's Posts tab. YouTube Channel Posts Scraper returns post text, links, hashtags, mentions, available likes and comment counts, and attached content in one row per post.

Start with channel handles or IDs and choose how many result pages to collect. Images, poll choices, and other repeated attachment fields remain with their parent post.

At a glanceDetails
📥 InputChannel handles or UC IDs
📤 OutputCommunity post text, public engagement, images, available attachments, and source-channel context
🔐 Login requiredNo
📄 CollectionConfigurable result pages per input
💾 DeliveryOne row per post result, in one table

What the YouTube channel posts scraper collects 🔎

The Actor reads channel posts and the attachments supplied with them. Different posts expose different combinations of fields.

  • Post ID, URL, text, publication label, edit flag, and listing position
  • Available likes, comment counts, and their displayed labels
  • Links, channel mentions, and hashtags from the text
  • Ordered images and their thumbnail variants
  • Attached video-card details, poll choices and vote figures, or quiz choices when present
  • One embedded shared-post level when exposed, with its available content and attachments
  • Author identity and public source-channel context

Comment counts describe visible engagement. The Actor does not open each discussion to collect comment text or obtain members-only content.

How to scrape YouTube channel posts 🚀

  1. Prepare the channel handles or IDs you want to collect.
  2. Add them to inputList, one value per item.
  3. Set pagesPerInput and start the Actor.
  4. Check status and export the fields needed for your workflow.
{
"inputList": [
"NASA"
],
"pagesPerInput": 1
}

YouTube channel posts data fields and output 📦

Field groupIncluded data
PostID, URL, text, publication label, edit state, and position
EngagementAvailable likes, comment counts, and displayed labels
Text referencesLinks, mentions, and hashtags
AttachmentsImages, video-card data, polls, quizzes, and one shared-post level
Channel contextAuthor identity and exposed source-channel profile fields

Complete illustrative success item. The fictional values below demonstrate the output and are not a live result:

{
"input": "TrailJournal",
"status": "success",
"id": "UgkxTrailJournalWeekendUpdate",
"url": "https://www.youtube.com/post/UgkxTrailJournalWeekendUpdate",
"type": "post",
"text": "Weekend route notes with @TrailGuide: https://example.com/trail #hiking",
"links.text": [
"Route notes"
],
"links.url": [
"https://example.com/trail"
],
"mentions.channel_id": [
"UCzyxwvutsrqponmlkjihgfe"
],
"mentions.name": [
"@TrailGuide"
],
"mentions.url": [
"https://www.youtube.com/@TrailGuide"
],
"published_text": "2 days ago (edited)",
"is_edited": true,
"likes": 42,
"likes_text": "42",
"comments_count": 12,
"comments_text": "12 comments",
"is_liked": false,
"is_members_only": false,
"attachment_type": "images",
"image_url": "https://example.com/forest.jpg",
"images.url": [
"https://example.com/forest.jpg",
"https://example.com/viewpoint.jpg"
],
"images.thumbnails.url": [
[
"https://example.com/forest-small.jpg",
"https://example.com/forest.jpg"
],
[
"https://example.com/viewpoint-small.jpg",
"https://example.com/viewpoint.jpg"
]
],
"images.thumbnails.width": [
[
320,
1280
],
[
320,
1280
]
],
"images.thumbnails.height": [
[
180,
720
],
[
180,
720
]
],
"video.id": null,
"video.url": null,
"video.type": null,
"video.title": null,
"video.description": null,
"video.thumbnail_url": null,
"video.thumbnails.url": null,
"video.thumbnails.width": null,
"video.thumbnails.height": null,
"video.duration_seconds": null,
"video.duration_text": null,
"video.views": null,
"video.views_text": null,
"video.published_text": null,
"video.badges": null,
"video.is_live": null,
"video.is_upcoming": null,
"video.is_premiere": null,
"video.is_members_only": null,
"video.stream_status": null,
"video.scheduled_start_time": null,
"video.accessibility_text": null,
"video.author.id": null,
"video.author.name": null,
"video.author.handle": null,
"video.author.url": null,
"video.author.avatar_url": null,
"video.author.avatar_thumbnails.url": null,
"video.author.avatar_thumbnails.width": null,
"video.author.avatar_thumbnails.height": null,
"video.author.is_verified": null,
"poll.choices.text": null,
"poll.choices.votes_percent": null,
"poll.choices.image_url": null,
"poll.choices.thumbnails.url": null,
"poll.choices.thumbnails.width": null,
"poll.choices.thumbnails.height": null,
"poll.choices.is_selected": null,
"poll.total_votes": null,
"poll.total_votes_text": null,
"quiz.question": null,
"quiz.choices.text": null,
"quiz.choices.is_selected": null,
"shared_post.id": null,
"shared_post.url": null,
"shared_post.type": null,
"shared_post.text": null,
"shared_post.links.text": null,
"shared_post.links.url": null,
"shared_post.mentions.channel_id": null,
"shared_post.mentions.name": null,
"shared_post.mentions.url": null,
"shared_post.published_text": null,
"shared_post.is_edited": null,
"shared_post.likes": null,
"shared_post.likes_text": null,
"shared_post.comments_count": null,
"shared_post.comments_text": null,
"shared_post.is_liked": null,
"shared_post.is_members_only": null,
"shared_post.attachment_type": null,
"shared_post.image_url": null,
"shared_post.images.url": null,
"shared_post.images.thumbnails.url": null,
"shared_post.images.thumbnails.width": null,
"shared_post.images.thumbnails.height": null,
"shared_post.video.id": null,
"shared_post.video.url": null,
"shared_post.video.type": null,
"shared_post.video.title": null,
"shared_post.video.description": null,
"shared_post.video.thumbnail_url": null,
"shared_post.video.thumbnails.url": null,
"shared_post.video.thumbnails.width": null,
"shared_post.video.thumbnails.height": null,
"shared_post.video.duration_seconds": null,
"shared_post.video.duration_text": null,
"shared_post.video.views": null,
"shared_post.video.views_text": null,
"shared_post.video.published_text": null,
"shared_post.video.badges": null,
"shared_post.video.is_live": null,
"shared_post.video.is_upcoming": null,
"shared_post.video.is_premiere": null,
"shared_post.video.is_members_only": null,
"shared_post.video.stream_status": null,
"shared_post.video.scheduled_start_time": null,
"shared_post.video.accessibility_text": null,
"shared_post.video.author.id": null,
"shared_post.video.author.name": null,
"shared_post.video.author.handle": null,
"shared_post.video.author.url": null,
"shared_post.video.author.avatar_url": null,
"shared_post.video.author.avatar_thumbnails.url": null,
"shared_post.video.author.avatar_thumbnails.width": null,
"shared_post.video.author.avatar_thumbnails.height": null,
"shared_post.video.author.is_verified": null,
"shared_post.poll.choices.text": null,
"shared_post.poll.choices.votes_percent": null,
"shared_post.poll.choices.image_url": null,
"shared_post.poll.choices.thumbnails.url": null,
"shared_post.poll.choices.thumbnails.width": null,
"shared_post.poll.choices.thumbnails.height": null,
"shared_post.poll.choices.is_selected": null,
"shared_post.poll.total_votes": null,
"shared_post.poll.total_votes_text": null,
"shared_post.quiz.question": null,
"shared_post.quiz.choices.text": null,
"shared_post.quiz.choices.is_selected": null,
"shared_post.author.id": null,
"shared_post.author.name": null,
"shared_post.author.handle": null,
"shared_post.author.url": null,
"shared_post.author.avatar_url": null,
"shared_post.author.avatar_thumbnails.url": null,
"shared_post.author.avatar_thumbnails.width": null,
"shared_post.author.avatar_thumbnails.height": null,
"shared_post.author.is_verified": null,
"shared_post.description_links": null,
"shared_post.hashtags": null,
"author.id": "UCabcdefghijklmnopqrstuv",
"author.name": "Trail Journal",
"author.handle": "@TrailJournal",
"author.url": "https://www.youtube.com/@TrailJournal",
"author.avatar_url": "https://example.com/trail-large.jpg",
"author.avatar_thumbnails.url": [
"https://example.com/trail-small.jpg",
"https://example.com/trail-large.jpg"
],
"author.avatar_thumbnails.width": [
160,
800
],
"author.avatar_thumbnails.height": [
160,
800
],
"author.is_verified": false,
"description_links": [
"https://example.com/trail"
],
"hashtags": [
"#hiking"
],
"source_channel.id": "UCabcdefghijklmnopqrstuv",
"source_channel.handle": "@TrailJournal",
"source_channel.name": "Trail Journal",
"source_channel.url": "https://www.youtube.com/channel/UCabcdefghijklmnopqrstuv",
"source_channel.canonical_url": "https://www.youtube.com/@TrailJournal",
"source_channel.vanity_url": "https://www.youtube.com/@TrailJournal",
"source_channel.description": "Weekend walks, route guides, and quiet places.",
"source_channel.avatar_url": "https://example.com/trail-large.jpg",
"source_channel.avatar_thumbnails.url": [
"https://example.com/trail-small.jpg",
"https://example.com/trail-large.jpg"
],
"source_channel.avatar_thumbnails.width": [
160,
800
],
"source_channel.avatar_thumbnails.height": [
160,
800
],
"source_channel.banner_url": "https://example.com/trail-large.jpg",
"source_channel.banner_thumbnails.url": [
"https://example.com/trail-small.jpg",
"https://example.com/trail-large.jpg"
],
"source_channel.banner_thumbnails.width": [
1060,
2120
],
"source_channel.banner_thumbnails.height": [
175,
350
],
"source_channel.subscribers": 12000,
"source_channel.subscribers_text": "12K subscribers",
"source_channel.videos_count": 25,
"source_channel.videos_count_text": "25 videos",
"source_channel.views": 500000,
"source_channel.views_text": "500K views",
"source_channel.country": "United States",
"source_channel.joined_date": "Joined Jan 1, 2020",
"source_channel.keywords": [
"hiking",
"trail guides"
],
"source_channel.keywords_raw": "hiking \"trail guides\"",
"source_channel.external_links.title": [
"Website"
],
"source_channel.external_links.url": [
"https://example.com"
],
"source_channel.external_links.display_url": [
"example.com"
],
"source_channel.external_links.icon_url": [
"https://example.com/trail-large.jpg"
],
"source_channel.rss_url": "https://www.youtube.com/feeds/videos.xml?channel_id=UCabcdefghijklmnopqrstuv",
"source_channel.available_countries": [
"US",
"GB"
],
"source_channel.is_verified": false,
"source_channel.is_family_safe": true,
"source_channel.is_subscriber_count_hidden": false,
"position": 1,
"shared_post.shared_post": null
}

The table and JSON use the same flat field names, including literal dotted keys. The illustration is an image post, so video, poll, quiz, and shared-post fields are null. images.url keeps image order; images.thumbnails.url has an inner list for each image's size variants. URL, width, and height lists align within those variants. Poll choices, mentions, and links each keep their own aligned lists when present.

Optional values can be null, empty strings, false, or empty lists. Missing counts are normally null; numeric values parsed from abbreviated labels remain approximate. Failed rows preserve input and status and set the result-data fields to null. position is the running order of saved results for that input, not a global ranking.

Input requirements and coverage ⚙️

ParameterTypeDefaultRules
inputListarray of stringsRequiredOne or more channel handles, with or without @, or UC channel IDs. Full channel URLs are not accepted. No fixed batch-size maximum.
pagesPerInputinteger1At least 1; no fixed upper bound. Limits result pages for each input.

Handles allow 1–100 Unicode word characters, periods, hyphens, or middle dots after an optional @. A channel ID must be UC followed by 22 letters, digits, underscores, or hyphens. Other valid values are treated as handles. Leading and trailing spaces are removed.

YouTube controls page size. Collection stops at the requested page limit or when the list ends, whichever comes first. The initial result page counts as page 1; each continuation uses another page. Repeated items within an input are skipped, but repeating the input itself starts a separate collection.

YouTube channel posts use cases 🎯

Community content archives

Store public channel announcements, images, and outgoing links with post IDs and source attribution.

Engagement reporting

Compare visible likes and comment counts across selected channels' community posts while retaining their original labels.

Audience research

Review the wording and exposed choices of public polls or quizzes without assuming private voting information is available.

Editorial monitoring

Compare scheduled exports to identify new announcements, linked resources, or changes in public community messaging.

Pricing and billable post rows 💰

Check the Actor's Pricing tab for the current pricing model and rate.

Under dataset-item pricing, each saved success or failed row can be billable. Automatic retry attempts do not independently add rows. The number of billable items follows saved results, not requested pages. A collection that ends without results or a failed request can produce a failed row; if a later page fails, earlier saved results remain.

Image variants and other list fields remain in their parent row and do not create separate dataset items.

YouTube Channel Posts Scraper API and integrations 🔌

Use the Actor ID from the API tab as $ACTOR_ID and your Apify token as $APIFY_TOKEN.

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["NASA"],"pagesPerInput":1}'

The request starts a run. Retrieve the dataset when it finishes, or use a completion webhook to send results to your application. Apify schedules can repeat collection; exports and integrations support JSON, CSV, Excel, Google Sheets, Make, and Zapier workflows.

Reliability and limits ⚠️

Up to five requests run concurrently, with automatic retries for temporary failures. Invalid, unavailable, or unresolved inputs are visible as failed rows. YouTube can restrict public access or omit fields.

Coverage follows the public Posts tab. Missing tabs, restricted posts, and changing pagination can reduce the collection. Attachments are captured only from the post data; attached videos and shared posts are not fetched separately for full details. Poll and quiz fields may omit vote information, and publication dates remain displayed text.

Pagination preserves results already saved, but a page limit, inaccessible continuation, or changing source list can leave a partial collection. A completed run does not prove that every historical item was available.

Frequently asked questions ❓

Does this collect comments under every post?

No. It returns available comment counts. Use YouTube Post Comments Scraper to collect discussion entries for selected posts.

Are poll choices included?

Yes, when the post exposes a poll. Text, available vote percentages, image references, and total-vote labels are included without access to private voter identities.

Will a multi-image post create several rows?

No. Its images and size variants remain ordered lists in one post row.

Does it fetch shared posts recursively?

No. It keeps one exposed shared-post level and does not follow an unlimited chain of shared posts.

Can I submit a post URL instead of a channel?

This Actor requires a channel handle or UC ID. Use YouTube Post Details Scraper for a known post URL.

Can it access members-only community posts?

It collects publicly available post data without a logged-in account. A membership flag does not grant access to restricted content.

For support, share the run ID and a safe public example input through the Actor's support channel. Keep tokens and credentials out of messages.

Use public data and media within the privacy, copyright, and other obligations that apply to your project.