YouTube Channel Videos Scraper avatar

YouTube Channel Videos Scraper

Pricing

from $0.06 / 1,000 video results

Go to Apify Store
YouTube Channel Videos Scraper

YouTube Channel Videos Scraper

Export recent public videos from YouTube channels with video IDs, URLs, titles, descriptions, published dates, thumbnails, Shorts flags, and view counts.

Pricing

from $0.06 / 1,000 video results

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

13 days ago

Last modified

Share

Export recent public videos from YouTube channels by channel URL, @handle, or channel ID.

Use this actor to turn YouTube channel inputs into clean video metadata rows for competitor monitoring, creator research, content operations, trend tracking, and agent workflows. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

At a glance

  • Recent channel videos: Save video IDs, canonical URLs, titles, descriptions, published dates, thumbnails, durations, Shorts flags, and view counts.
  • Flexible channel inputs: Use full channel URLs, @handles, or stable UC... channel IDs.
  • Shorts control: Keep Shorts in the output or filter them out with includeShorts.
  • Per-channel caps: Limit saved videos per channel for cost control and repeatable monitoring.
  • Resilient batch handling: Invalid inputs fail before the start charge; transient public-feed responses use bounded retries, while one failed channel does not discard successful channel rows.
  • Agent-ready output: Feed stable video URLs and IDs into transcript, comment, enrichment, alerting, or reporting workflows.

Ready-to-run examples

Open an example or task, review the input, and run it as-is or adjust the channel list:

What can it do?

YouTube Channel Videos Scraper saves one dataset row per recent public video found for each submitted channel.

  • Resolve channels: Accept channel URLs, @handles, and UC... IDs.
  • Export video metadata: Save video ID, URL, title, description, publish date, thumbnail, duration, view count, and source channel data.
  • Separate Shorts workflows: Keep Shorts by default or set includeShorts to false for long-form-only exports.
  • Control volume: Use maxVideosPerChannel to cap saved rows per channel.
  • Chain workflows: Send videoUrl or videoId into transcript, comment, summarization, or monitoring actors.

Common workflows

  • Competitor monitoring: Schedule a list of competitor channels and compare recent uploads over time.
  • Creator discovery: Export recent videos from target creators before analyzing topics, cadence, or engagement.
  • Content operations: Feed new video URLs into transcript, clipping, tagging, or editorial workflows.
  • Research datasets: Build bounded datasets for channel-level or niche-level video analysis.
  • Shorts inventory: Keep includeShorts enabled to capture short-form uploads when they appear in channel feeds.

Pricing

This Actor uses Apify pay-per-event pricing. The prices below come from the current Actor pricing configuration. Apify public plans map to Store discount tiers, so the table shows both the user-facing plan context and the pricing tier name. The final price shown in Apify depends on the user account plan and any custom agreement.

EventWhat is chargedPrice
startOne-time fee per run$0.005
EventWhat is chargedFree / no discountStarter / BronzeScale / SilverBusiness / GoldCustom / PlatinumCustom / Diamond
resultPer YouTube video saved to the dataset$0.115 / 1,000$0.1 / 1,000$0.078 / 1,000$0.06 / 1,000$0.04 / 1,000$0.028 / 1,000

Apify may also charge platform usage for compute, storage, proxies, or data transfer outside this Actor pricing. Check the Actor run and the Apify Pricing tab for the exact cost shown to your account.

Input configuration

SettingJSON keyUse it for
Channel URLs, handles, or IDschannelUrlsOrIdsPublic YouTube channel URLs, @handles, or UC... channel IDs.
Maximum videos per channelmaxVideosPerChannelMaximum recent videos to save for each channel. YouTube public channel feeds usually expose the latest batch of public videos.
Include ShortsincludeShortsKeep YouTube Shorts in the output when they appear in the channel's recent videos feed.
Resume pending channels after migrationresumeFromCheckpointContinue with this run's saved pending channels after a platform restart; enabled by default.
Proxy configuration for feed fallbackproxyConfigurationOptional Apify Proxy settings used only after temporary public channel-feed failures. Direct requests are used by default.

Only public YouTube @handle URLs, @handles, and stable UC... channel IDs are accepted. Video, playlist, search, and non-YouTube URLs are rejected before the run's start event is charged.

Example input

{
"channelUrlsOrIds": [
"https://www.youtube.com/@GoogleDevelopers",
"UC_x5XG1OV2P6uZZ5FSM9Ttw"
],
"maxVideosPerChannel": 10,
"includeShorts": true,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Example output

{
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"channelName": "Google for Developers",
"channelUrl": "https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw",
"videoId": "eaUd3iYkj_w",
"videoUrl": "https://www.youtube.com/shorts/eaUd3iYkj_w",
"title": "In production, which file actually gets loaded?",
"description": "A package import can look simple on the surface.",
"publishedAt": "2026-06-15T13:00:09+00:00",
"thumbnailUrl": "https://i2.ytimg.com/vi/eaUd3iYkj_w/hqdefault.jpg",
"duration": null,
"isShort": true,
"viewCount": 1315,
"sourceUrl": "https://www.youtube.com/@GoogleDevelopers",
"scrapedAt": "2026-06-15T20:00:00.000Z"
}

Output fields

FieldDescription
channelIdStable YouTube channel ID when available.
channelNameChannel name.
channelUrlPublic channel URL.
videoIdStable YouTube video ID.
videoUrlPublic video URL.
titleVideo title.
descriptionPublic video description or snippet text.
publishedAtPublic publish timestamp when available.
thumbnailUrlPublic thumbnail URL.
durationDuration value when available.
isShortWhether the actor identified the item as a YouTube Short.
viewCountPublic view count when available.
sourceUrlOriginal channel input or source URL.
scrapedAtTimestamp when the row was saved.
retryCountNumber of bounded transient retries used while resolving and reading the channel feed.
httpStatusCodesHTTP response status codes observed for that channel.

Tips for best results

  • Prefer channel IDs for automation: IDs are more stable than handles.
  • Use handles for quick setup: Handles such as @GoogleDevelopers are easy to paste into the UI.
  • Set a per-channel cap: Keep maxVideosPerChannel low for tests and monitoring tasks.
  • Decide on Shorts early: Set includeShorts to false if your downstream workflow expects only regular video pages.
  • Chain by video ID: Use videoId or videoUrl for transcript, comment, or video-detail enrichment.

API and integrations

  • Run the actor from the Apify Console, API, SDKs, webhooks, schedules, or MCP-compatible agents.
  • Export datasets as CSV, JSON, Excel, XML, RSS, or stream rows through the Dataset API.
  • Schedule recurring runs to monitor upload cadence.
  • Feed video URLs into transcript, comment, summarization, classification, or alerting workflows.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/youtube-channel-videos-scraper').call({
channelUrlsOrIds: ['https://www.youtube.com/@GoogleDevelopers'],
maxVideosPerChannel: 10,
includeShorts: true,
});
console.log(`Dataset: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('fetch_cat/youtube-channel-videos-scraper').call(run_input={
'channelUrlsOrIds': ['https://www.youtube.com/@GoogleDevelopers'],
'maxVideosPerChannel': 10,
'includeShorts': True,
})
print(f"Dataset: https://console.apify.com/storage/datasets/{run['defaultDatasetId']}")

cURL

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~youtube-channel-videos-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"channelUrlsOrIds":["https://www.youtube.com/@GoogleDevelopers"],"maxVideosPerChannel":10,"includeShorts":true}'

MCP and AI agents

Use the official Apify MCP server when you want Claude, ChatGPT, or another MCP-compatible client to run this Actor.

$claude mcp add apify --transport http "https://mcp.apify.com?tools=fetch_cat/youtube-channel-videos-scraper"
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/youtube-channel-videos-scraper"
}
}
}

Example prompt: "Export the latest videos from these YouTube channels, skip Shorts, and return titles, video URLs, publish dates, thumbnails, and view counts."

Limits and responsible use

  • The actor extracts public recent-video metadata. It does not download video files or access private analytics.
  • YouTube public channel feeds may expose only a recent batch of videos, not a complete historical archive.
  • Some fields, such as duration or view count, may be unavailable for some videos.
  • A run keeps successful channel rows when another channel is unavailable. Review the RUN_SUMMARY key-value record for failed channels, retries, pending channels, and deadline-related partial completion. Runs with zero saved videos fail rather than producing a misleading empty success.
  • The actor uses public YouTube pages and feeds only; it does not collect cookies, use account credentials, or attempt PO-token or account-access circumvention.
  • Review your use of exported data against YouTube terms, Apify terms, and applicable privacy rules.

FAQ

Can I scrape multiple channels in one run? Yes. Add multiple values to channelUrlsOrIds; the actor saves up to maxVideosPerChannel videos for each channel.

Can I use channel IDs instead of URLs? Yes. Channel IDs are supported and are the most stable input format.

Does this actor download videos? No. It extracts public metadata and URLs, not media files.

Does it include Shorts? Yes, by default. Set includeShorts to false to skip Shorts when they appear.

Can I run it from code? Yes. Use the Apify API, SDKs, webhooks, schedules, or MCP-compatible agents.

Support

If a public channel input fails, try a stable channel ID first. If the issue continues, open an issue or report a bug from the actor page with the run ID or run URL, input JSON, expected output, actual output, and a reproducible public URL such as a channel page.

Privacy and data handling

This Actor only requests the permissions needed to run the input you provide. It uses your input (such as URLs, search terms, identifiers, filters, and limits) only to fetch the requested public data from the relevant source site or API for this Actor, then writes results to your Apify dataset/key-value store.

Data may pass through Apify platform services and Apify Proxy during the run, and requests are sent only to the target site or public data provider required for this Actor's results. FetchCat does not send your inputs or outputs to advertising networks, data brokers, or model-training services, and does not retain run data outside Apify storage after the run except when you explicitly share run details for transient support debugging.

You are responsible for using this Actor lawfully, respecting the target site's terms, and avoiding unnecessary personal or sensitive data in inputs. Review the output before storing, sharing, or combining it with other data.