YouTube Channel RSS Scraper & New Video Monitor
Under maintenancePricing
from $2.00 / 1,000 results
YouTube Channel RSS Scraper & New Video Monitor
Under maintenanceMonitor multiple YouTube channels and extract recent or newly published videos from public RSS feeds. Get titles, descriptions, dates, thumbnails, views, and links without a YouTube API key.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Group Oject
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Share
Monitor recent uploads from multiple YouTube channels without a YouTube API key. This Actor resolves channel URLs and @handles, reads YouTube's public RSS feeds, and returns clean video records ready for alerts, dashboards, spreadsheets, and automation.
Why use this Actor?
- No YouTube API key or quota setup
- Monitor up to 1,000 channels in one run
- Output only new uploads across scheduled runs
- Filter by keywords, excluded terms, and publication age
- Fast HTTP-only execution with no browser overhead
- Export JSON, CSV, Excel, XML, or RSS through Apify
Quick start
{"channels": ["https://www.youtube.com/@mkbhd","https://www.youtube.com/@veritasium"],"maxVideosPerChannel": 15,"publishedWithinDays": 30}
The dataset contains one row per video with its title, channel, publication and update dates, description, thumbnail, views, rating count, matched keywords, and direct YouTube URL.
Monitor only new YouTube uploads
Turn on monitorNewOnly and choose a stable stateKey. The first run returns the current matching uploads and records their video IDs. Later runs using the same key return only videos that were not seen before.
{"channels": ["@mkbhd", "@LinusTechTips", "@veritasium"],"monitorNewOnly": true,"stateKey": "competitor-tech-channels","maxVideosPerChannel": 15}
Schedule that input daily or hourly and connect an Apify webhook to Slack, Make, Zapier, email, Google Sheets, or your own API.
Use a different stateKey for each independent monitor. State is kept in a named Apify key-value store so it survives separate Actor runs.
Only videos successfully written to the dataset are marked as seen. Videos excluded by the per-channel result limit or remaining charge budget stay eligible on later runs while they remain in the RSS feed. State remembers up to 500 delivered IDs per channel. Do not overlap runs sharing a state key: a crash after delivery but before the state write can produce duplicates, so downstream consumers should also deduplicate by videoId.
Monitoring fix, September 14, 2026: earlier versions could mark undelivered feed entries as seen. Use a new state key to establish a fresh baseline if an older monitor appears to have skipped videos. This cannot recover videos no longer present in YouTube's RSS feed.
Filter uploads by topic
Search both video titles and descriptions using includeKeywords. A video is kept when at least one include keyword matches. excludeKeywords always remove matching videos.
{"channels": ["@Google", "@Microsoft", "@OpenAI"],"includeKeywords": ["AI", "Gemini", "Copilot", "GPT"],"excludeKeywords": ["livestream replay"],"publishedWithinDays": 14}
Input fields
| Field | Description |
|---|---|
channels | YouTube channel URLs, @handles, or UC... channel IDs. |
channelsText | Bulk list with one channel per line. |
maxVideosPerChannel | Recent videos kept per channel, from 1 to 15. |
publishedWithinDays | Keep videos no older than this; 0 disables the filter. |
includeKeywords | Keep videos matching at least one term in title or description. |
excludeKeywords | Remove videos matching any listed term. |
monitorNewOnly | On later runs, output only unseen video IDs. |
stateKey | Stable identifier for this monitor's persistent state. |
maxChannels | Safety cap, up to 1,000 channels per run. |
maxConcurrency | Parallel channel requests, from 1 to 10. |
proxyConfiguration | Optional Apify Proxy settings for large repeated workloads. |
Output example
{"videoId": "WOzcFkld6_g","title": "The Most Interesting Displays In The World!","videoUrl": "https://www.youtube.com/watch?v=WOzcFkld6_g","channelName": "Marques Brownlee","channelId": "UCBJycsmduvYEL83R_U4JriQ","channelUrl": "https://www.youtube.com/@mkbhd","publishedAt": "2026-06-16T18:17:15+00:00","thumbnailUrl": "https://i4.ytimg.com/vi/WOzcFkld6_g/hqdefault.jpg","viewCount": 3100000,"ratingCount": 92000,"matchedKeywords": [],"isNew": true}
Practical use cases
- Competitor channel upload alerts
- Brand and product mention monitoring
- Creator and influencer watchlists
- Newsroom source monitoring
- YouTube content research
- Podcast and webinar episode tracking
- AI video discovery pipelines
Request failures and monitor state
RSS requests use at most three attempts, with a 20-second timeout per attempt and a shared 65-second request budget. Handle-resolution requests are also time-bounded. A channel-feed HTTP 404 is retried; if requests continue to fail after a 404, the third attempt uses that channel's public uploads-playlist RSS feed. The fallback must identify the requested channel and playlist. It does not use a login, a paid API, cached videos, or another channel's results. HTTP 410 stops immediately.
Recovered 404s appear in SUMMARY.channelsRecoveredFrom404 and SUMMARY.feedRecoveries. Each video's feedUrl identifies the feed actually used. If the feed remains unavailable, ERRORS records the channel, error code (such as RSS_NOT_FOUND), HTTP status, attempt count, and last feed URL. A 404 alone cannot distinguish a temporary YouTube problem from an unavailable channel feed. Check the channel URL/ID and its public feed before retrying later.
When some channels fail, valid videos from other channels are retained and failures appear in ERRORS in the run's key-value store. If every channel fails, the run is marked failed. A valid feed with no matching or unseen videos is a successful zero-result check, not a fetch failure. No error placeholders are added to the dataset or billed as video results; the separate start event can still apply.
Monitor keys up to the input's 100-character limit are supported. Long keys are converted to stable, hashed storage names; existing short keys keep their storage names. Continue using the same input stateKey across scheduled runs.
Limits
YouTube's public channel RSS feed normally exposes the 15 most recent uploads. This Actor is optimized for fast recurring monitoring, not full historical channel scraping. View and rating numbers are snapshots supplied by the RSS feed and may lag behind the YouTube video page.
Use the data responsibly and follow YouTube's terms and applicable privacy and copyright rules.
Run with the API
curl -X POST \"https://api.apify.com/v2/acts/groupoject~youtube-channel-monitor/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"channels":["@mkbhd","@veritasium"],"maxVideosPerChannel":15,"publishedWithinDays":30}'
JavaScript example
const run = await client.actor('groupoject/youtube-channel-monitor').call({channels: ['@OpenAI', '@GoogleDeepMind'],monitorNewOnly: true,stateKey: 'ai-channel-monitor',includeKeywords: ['model', 'research', 'API'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Monitoring tips
- Run once to establish the known video IDs before expecting new-only alerts.
- Reuse one
stateKeyfor each stable list of channels and filters. - Use separate state keys for competitors, creators, topics, or clients.
- Schedule based on urgency; RSS is most useful for hourly or daily monitoring.
- Use inclusion and exclusion terms to keep alert feeds focused.
FAQ
Is a YouTube API key required?
No. The Actor resolves public channels and reads their public RSS feeds.
Can it scrape more than the latest 15 videos?
Public channel RSS normally exposes up to 15 recent uploads. Use the broader YouTube Scraper Actor when deeper discovery is needed.
What happens on the first new-only run?
The first run returns matching current videos and stores their IDs. Later runs using the same state key emit only unseen videos.
Can I monitor Shorts and livestream uploads?
They can appear when YouTube includes them in the channel's public upload feed. Feed coverage is controlled by YouTube.
Pricing and billing
Base result price checked September 14, 2026: $2.00 per 1,000 dataset items ($0.002 each). 100 result items cost $0.20 in result fees.
The separate Actor start event is $0.005 per billable start unit, with one unit per GB of configured memory and a minimum of one. It applies even when a run returns no results.
A result event corresponds to one item saved in the default dataset, not one HTTP request or one input URL.
The live Pricing tab is authoritative for current rates, tier discounts and any separately charged usage. Set a maximum run charge and inspect a small sample before scaling. Charges from an external provider, where used, are not controlled by the Apify run-charge limit.