Dataspryva

YouTube Channel About, Playlists & Posts Finder

Look up a YouTube channel's About page details - subscribers, views, country, join date, links - with optional playlist and Community Post snapshots nested into the same row. No cookies or login required.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringoptionalChannel profile returns one row per channel with its About details. Playlists returns one row per public playlist, show, course, or podcast. Posts returns one row per public Community Post.
channelUrlsarrayrequiredPublic YouTube channel URLs, @handles, or UC… channel IDs. One row set is produced for each channel.
includeLinksbooleanoptionalIn channel profile mode, include the external links shown on the public About page, with their titles and favicons.
Show all input fields
FieldTypeRequiredDescription
modestringoptionalChannel profile returns one row per channel with its About details. Playlists returns one row per public playlist, show, course, or podcast. Posts returns one row per public Community Post.
channelUrlsarrayrequiredPublic YouTube channel URLs, @handles, or UC… channel IDs. One row set is produced for each channel.
includeLinksbooleanoptionalIn channel profile mode, include the external links shown on the public About page, with their titles and favicons.
includePlaylistsbooleanoptionalIn channel profile mode, add a snapshot of the channel's public playlists, shows, courses, and podcasts to the same row. Use the playlists mode for one row per playlist.
maxPlaylistsintegeroptionalMaximum playlist, show, course, or podcast rows to collect per channel. Applies to the playlists mode and to nested profile snapshots.
includePostsbooleanoptionalIn channel profile mode, add a snapshot of the channel's public Community Posts to the same row. Use the posts mode for one row per post.
maxPostsintegeroptionalMaximum Community Posts to collect per channel. Applies to the posts mode and to nested profile snapshots. YouTube exposes at most 200 posts per channel.
includePostDetailsbooleanoptionalOpen each Community Post's public detail page to fill its exact ISO publish date and exact like count. Adds one request per post.
includePostCommentsbooleanoptionalCollect public comments on each Community Post, up to the per-post limit. Adds one detail and one or more comment requests per post.
maxPostCommentsintegeroptionalMaximum public top-level comments to keep per Community Post when comments are included. Replies are not expanded.

Download the published input schema

View complete JSON
{
  "properties": {
    "channelUrls": {
      "description": "Public YouTube channel URLs, @handles, or UC… channel IDs. One row set is produced for each channel.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "prefill": [
        "https://www.youtube.com/@Apify"
      ],
      "title": "Channel URLs",
      "type": "array"
    },
    "includeLinks": {
      "default": true,
      "description": "In channel profile mode, include the external links shown on the public About page, with their titles and favicons.",
      "prefill": true,
      "title": "Include public external links",
      "type": "boolean"
    },
    "includePlaylists": {
      "default": false,
      "description": "In channel profile mode, add a snapshot of the channel's public playlists, shows, courses, and podcasts to the same row. Use the playlists mode for one row per playlist.",
      "prefill": false,
      "title": "Nest playlists in the profile row",
      "type": "boolean"
    },
    "includePostComments": {
      "default": false,
      "description": "Collect public comments on each Community Post, up to the per-post limit. Adds one detail and one or more comment requests per post.",
      "prefill": false,
      "title": "Include post comments",
      "type": "boolean"
    },
    "includePostDetails": {
      "default": true,
      "description": "Open each Community Post's public detail page to fill its exact ISO publish date and exact like count. Adds one request per post.",
      "prefill": false,
      "title": "Fetch exact post dates and likes",
      "type": "boolean"
    },
    "includePosts": {
      "default": false,
      "description": "In channel profile mode, add a snapshot of the channel's public Community Posts to the same row. Use the posts mode for one row per post.",
      "prefill": false,
      "title": "Nest Community Posts in the profile row",
      "type": "boolean"
    },
    "maxPlaylists": {
      "default": 20,
      "description": "Maximum playlist, show, course, or podcast rows to collect per channel. Applies to the playlists mode and to nested profile snapshots.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 10,
      "title": "Maximum playlists per channel",
      "type": "integer"
    },
    "maxPostComments": {
      "default": 20,
      "description": "Maximum public top-level comments to keep per Community Post when comments are included. Replies are not expanded.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 10,
      "title": "Maximum comments per post",
      "type": "integer"
    },
    "maxPosts": {
      "default": 20,
      "description": "Maximum Community Posts to collect per channel. Applies to the posts mode and to nested profile snapshots. YouTube exposes at most 200 posts per channel.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 10,
      "title": "Maximum Community Posts per channel",
      "type": "integer"
    },
    "mode": {
      "default": "profiles",
      "description": "Channel profile returns one row per channel with its About details. Playlists returns one row per public playlist, show, course, or podcast. Posts returns one row per public Community Post.",
      "editor": "select",
      "enum": [
        "profiles",
        "playlists",
        "posts"
      ],
      "enumTitles": [
        "Channel profiles (About page)",
        "Channel playlists, shows & courses",
        "Community posts"
      ],
      "prefill": "profiles",
      "title": "What to collect",
      "type": "string"
    }
  },
  "required": [
    "channelUrls"
  ],
  "schemaVersion": 1,
  "title": "YouTube Channel Profile Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
profilesstringoptionalDataset containing channel profile rows, playlist/show/course rows, Community Post rows, and explanatory status rows.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Channel profile rows with About details, external links, and optional nested surfaces, plus one-row-per-playlist and one-row-per-Community-Post modes.",
  "properties": {
    "profiles": {
      "description": "Dataset containing channel profile rows, playlist/show/course rows, Community Post rows, and explanatory status rows.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "YouTube channel profiles, playlists and posts",
      "type": "string"
    }
  },
  "title": "YouTube Channel About, Playlists & Posts Finder Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {
          "channelName": {
            "format": "text",
            "label": "Channel"
          },
          "country": {
            "format": "text",
            "label": "Country"
          },
          "handle": {
            "format": "text",
            "label": "Handle"
          },
          "isVerified": {
            "format": "boolean",
            "label": "Verified"
          },
          "joinedDateText": {
            "format": "text",
            "label": "Joined"
          },
          "recordType": {
            "format": "text",
            "label": "Type"
          },
          "subscriberCountText": {
            "format": "text",
            "label": "Subscribers"
          },
          "title": {
            "format": "text",
            "label": "Title"
          },
          "totalViewsText": {
            "format": "text",
            "label": "Total views"
          },
          "videoCountText": {
            "format": "text",
            "label": "Videos"
          }
        }
      },
      "title": "Channel profiles",
      "transformation": {
        "fields": [
          "recordType",
          "channelName",
          "title",
          "handle",
          "subscriberCountText",
          "videoCountText",
          "totalViewsText",
          "country",
          "joinedDateText",
          "isVerified"
        ]
      }
    },
    "playlists": {
      "display": {
        "component": "table",
        "properties": {
          "lastUpdatedText": {
            "format": "text",
            "label": "Updated"
          },
          "playlistType": {
            "format": "text",
            "label": "Type"
          },
          "playlistUrl": {
            "format": "link",
            "label": "URL"
          },
          "title": {
            "format": "text",
            "label": "Title"
          },
          "videoCount": {
            "format": "number",
            "label": "Items"
          }
        }
      },
      "title": "Playlists & collections",
      "transformation": {
        "fields": [
          "recordType",
          "playlistType",
          "title",
          "videoCount",
          "lastUpdatedText",
          "playlistUrl"
        ]
      }
    },
    "posts": {
      "display": {
        "component": "table",
        "properties": {
          "contentText": {
            "format": "text",
            "label": "Text"
          },
          "likeCount": {
            "format": "number",
            "label": "Likes"
          },
          "postType": {
            "format": "text",
            "label": "Type"
          },
          "postUrl": {
            "format": "link",
            "label": "URL"
          },
          "publishedAt": {
            "format": "text",
            "label": "Published"
          }
        }
      },
      "title": "Community posts",
      "transformation": {
        "fields": [
          "recordType",
          "postType",
          "postId",
          "publishedAt",
          "likeCount",
          "contentText",
          "postUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

YouTube Channel About, Playlists & Posts Finder

A YouTube channel page hides its most useful facts behind three different tabs. This actor reads the public About panel, the Playlists tab (including shows, courses, and podcasts), and the Community Posts tab in one cookieless run — then returns clean rows you can filter, compare, or export.

What this actor does

  • Resolves a channel from an @handle, a full channel URL, or a raw UC… channel ID.
  • Collects the public About details: description, subscriber and video counts, total views, country, join date, external links, avatar, banner, verification badge, family-safe flag, RSS URL, and owner keywords.
  • Lists every public playlist, show, course, and podcast on a channel with its item count, thumbnail, first video, and last-updated text.
  • Lists public Community Posts with text, images, videos, polls, quizzes, shared playlists, and reposts — plus optional exact publish dates, exact likes, and public comments.
  • Follows YouTube's continuation pages until the requested limit or the real end of the tab.
  • Emits an explanatory status row when a channel has no such tab or no public rows, instead of returning silence.

Modes

Mode One row per… Best for
profiles Channel A profile table with optional nested playlist and post snapshots
playlists Playlist / show / course / podcast Building a catalog of a channel's collections
posts Community Post Content research, engagement tracking, and giveaway or poll analysis

All rows include recordType, channelId, channelName, channelHandle, channelUrl, and scrapedAt, so rows from different modes can be combined in one dataset.

Channel profile fields

Field Description
channelId Channel's UC… ID
channelName Display name
handle Public @handle
channelUrl Canonical channel URL
description Full About-panel description
subscriberCountText, subscriberCount Subscriber label as shown, and an exact integer only when YouTube shows an exact number
videoCountText, videoCount Video count as shown, and exact integer when available
totalViewsText, totalViews Total channel views
country, countryCode Country name from About and its ISO 3166-1 alpha-2 code
joinedDateText, joinedDate Join date as shown and as YYYY-MM-DD
avatarUrl, bannerUrl Channel avatar and banner images
isVerified, isFamilySafe Public badges and family-safe flag
keywords Owner-set channel keywords, when present
rssUrl Channel RSS URL (metadata only; the feed is not used as a data path)
links External links from About, each with title, url, and faviconUrl
playlists Nested playlist snapshot when includePlaylists is on
communityPosts Nested post snapshot when includePosts is on
surfaceStatus Explains an empty optional surface (no_playlists_tab, no_posts_tab, no_public_playlists, no_public_posts, unavailable)

Playlist row fields

playlistId, playlistUrl, playlistType (playlist, show, course, podcast), title, videoCountText, videoCount, thumbnailUrl, thumbnailSources, firstVideoId, firstVideoUrl, watchUrl, lastUpdatedText, contentType, metadataRowsRaw, plus channel context and scrapedAt.

Counts cover videos, episodes, and items (for example 28 episodes), so podcast shows and courses are not dropped.

Community Post row fields

postId, postUrl, postType (text, image, video, poll, quiz, playlist, repost), authorName, authorChannelId, contentText, publishedTimeText, publishedAt (exact ISO date), voteCountText, likeCount (exact), commentCountText, commentCount, commentsDisabled, images, imageDetails, videoAttachments, poll, quiz, playlist, sharedPost, comments, plus channel context and scrapedAt.

  • Image rows keep one URL per image (the largest resolution), not every thumbnail size.
  • Poll rows include choice text, optional choice images, and the total vote count.
  • Quiz rows include the choices, correct answers, and explanations when YouTube exposes them.
  • Repost rows keep the original post inside sharedPost.
  • comments contains public top-level comments when comments are enabled.

Input

Field Type Default Description
mode Select profiles Channel profiles, channel playlists, or Community Posts
channelUrls Array – Required. Channel URLs, @handles, or UC… IDs
includeLinks Boolean true Include About-page external links in profile mode
includePlaylists Boolean false Nest a playlist snapshot in each profile row
maxPlaylists Integer 20 Maximum playlists per channel (1–10000)
includePosts Boolean false Nest a Community Post snapshot in each profile row
maxPosts Integer 20 Maximum posts per channel (YouTube exposes at most 200)
includePostDetails Boolean true Fetch exact post date and like count (one request per post)
includePostComments Boolean false Collect public comments on each post
maxPostComments Integer 20 Maximum top-level comments per post (1–1000)

Example: profile only

{
  "mode": "profiles",
  "channelUrls": ["@MrBeast"],
  "includeLinks": true
}

Example: profile with nested playlists and posts

{
  "mode": "profiles",
  "channelUrls": ["@MrBeast"],
  "includePlaylists": true,
  "maxPlaylists": 10,
  "includePosts": true,
  "maxPosts": 5,
  "includePostDetails": true
}

Example: every public playlist on two channels

{
  "mode": "playlists",
  "channelUrls": ["@Fireship", "@Kurzgesagt"],
  "maxPlaylists": 100
}

Example: posts with exact engagement and comments

{
  "mode": "posts",
  "channelUrls": ["@MrBeast"],
  "maxPosts": 10,
  "includePostDetails": true,
  "includePostComments": true,
  "maxPostComments": 20
}

Output views

The dataset ships three table views: Channel profiles, Playlists & collections, and Community posts. Each view shows only the fields relevant to that row type; records from different modes can share one dataset.

Use cases

  • Creator discovery and partnerships — shortlist channels by audience size, country, and public contact links.
  • Market research — compare subscriber, video, and total-view figures across competitors in one table.
  • Content teams — audit which channels still post Community updates, run polls, or publish quizzes.
  • Catalog building — pull every playlist, show, course, and podcast a channel publishes.
  • Campaign tracking — re-run the same channels and compare exact post likes and publish dates over time.

FAQ

Which channel identifiers can I use? An @handle, a full channel URL (including /about, /playlists, or /posts), or a raw UC… channel ID. Duplicate inputs are collapsed.

Why are some fields missing for a channel? A field appears only when YouTube publishes it. A channel with a hidden subscriber count, no listed country, or no banner simply omits those fields instead of guessing.

Why does a channel return no playlists or posts? Some channels have no Playlists or Posts tab. The actor emits a status row that says no_playlists_tab or no_posts_tab, so an empty result is explained.

Why do some counts show only text? YouTube rounds large subscriber counts (525M). The actor keeps the displayed text and only fills the numeric field when the displayed value is exact. Compact values are never expanded into a fake precise number.

How many posts can I get? YouTube's public Posts tab stops at 200 posts per channel. Older posts are only reachable through their own URLs, so maxPosts is capped there and the run message says so when a larger limit was requested.

Do I need cookies or a login? No. Every surface is public. The actor uses YouTube's public pages and its automatic proxy fallback when a datacenter request is degraded.

Are comments and replies included? includePostComments collects public top-level comments. Replies are not expanded in this actor; use a dedicated comment scraper when you need full reply trees.

Is this affiliated with YouTube? No. This actor independently reads public YouTube pages and is not affiliated with or endorsed by YouTube or Google.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build HY5JkbjyCn2pfM7Xf. Documentation is regenerated from the default published build; private drafts are not included.