YouTube Channel Monitor - New Video Alerts, No API Key
Pricing
from $1.40 / 1,000 results
YouTube Channel Monitor - New Video Alerts, No API Key
YouTube channel monitor for new uploads. Track up to 1,000 channels, filter by keyword or date, and get only new videos on each scheduled run: titles, dates, views, thumbnails, links. No YouTube API key or quota. $2 per 1,000 videos.
Pricing
from $1.40 / 1,000 results
Rating
0.0
(0)
Developer
Group Oject
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Track any list of YouTube channels and get a clean dataset of their latest uploads. Schedule it, turn on new-only mode, and each run returns only the videos you have not seen before. No YouTube Data API key, no quota, no login.

Real output from a default run of YouTube Channel Monitor in Apify Console.
What can YouTube Channel Monitor do?
- Monitor many channels in one run: paste channel URLs,
@handles, orUC...channel IDs (up to 1,000 per run). - Return only new uploads on scheduled runs. The Actor remembers which videos it already delivered under a
stateKeyyou choose. - Filter by topic: keep videos whose title or description contains your keywords, and drop videos containing excluded words.
- Filter by date: keep only uploads from the last N days.
- Get video stats from the feed: views, rating count and rating average where YouTube exposes them.
- Run on a schedule and send new rows anywhere: webhooks, Slack, Google Sheets, Make, Zapier, n8n, or your own API client.
Typical uses: competitor content tracking, newsroom and analyst source watchlists, creator and sponsorship research, AI pipelines that need to know when a channel posts, and "alert me when X uploads" automations.
What data does it extract?
One dataset row per video.
| Field | Description |
|---|---|
videoId, videoUrl | YouTube video ID and watch URL |
title, description | Video title and description from the channel feed |
channelName, channelId, channelUrl | Channel the video belongs to |
publishedAt, updatedAt | Upload time and last feed update (ISO 8601) |
thumbnailUrl | Video thumbnail |
viewCount | View count reported in the feed |
ratingCount, ratingAverage | Rating data reported in the feed, when available |
matchedKeywords | Which of your includeKeywords matched |
isNew | true when the video was not delivered before under this stateKey |
sourceInput, feedUrl, scrapedAt | Which input produced the row, the feed used, and when |
How much does it cost to monitor YouTube channels?
This Actor uses pay-per-event pricing:
- $2.00 per 1,000 videos delivered ($0.002 per video)
- $0.005 per Actor start (per GB of memory, minimum one)
Example: a daily monitor of 20 channels in new-only mode usually delivers a handful of new videos per day. 30 daily runs with 5 new videos each cost about 30 x $0.005 + 150 x $0.002 = $0.45 per month. Runs with no new videos cost only the start fee. Check the Pricing tab for the current rates.
How to monitor YouTube channels for new videos
- Open the Actor and paste channel URLs or
@handlesinto Channels (or one per line into the text box). - Optional: add
includeKeywords(for examplereview,launch) or setpublishedWithinDays. - Turn on Monitor new videos only and give the monitor a unique
stateKey, such ascompetitor-tech-channels. - Run once. The first run returns the current matching uploads and saves them as seen.
- Save the input as a task and add a schedule (hourly, daily, weekly). Later runs return only new videos.
- Connect a webhook or integration to forward new rows to Slack, email, Sheets, or your app.
Input example
{"channels": ["https://www.youtube.com/@mkbhd","https://www.youtube.com/@veritasium","UCBJycsmduvYEL83R_U4JriQ"],"includeKeywords": ["iphone", "review"],"excludeKeywords": ["#shorts"],"publishedWithinDays": 7,"monitorNewOnly": true,"stateKey": "tech-reviewers","maxVideosPerChannel": 15}
Output example
{"videoId": "dQw4w9WgXcQ","title": "iPhone review after one month","videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ","channelName": "Example Channel","channelId": "UCBJycsmduvYEL83R_U4JriQ","channelUrl": "https://www.youtube.com/channel/UCBJycsmduvYEL83R_U4JriQ","publishedAt": "2026-10-24T15:00:06+00:00","updatedAt": "2026-10-25T08:12:44+00:00","thumbnailUrl": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg","description": "My honest thoughts after a month...","viewCount": 1824531,"ratingCount": 90210,"ratingAverage": 5,"matchedKeywords": ["iphone", "review"],"isNew": true,"sourceInput": "https://www.youtube.com/@mkbhd","feedUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCBJycsmduvYEL83R_U4JriQ","scrapedAt": "2026-10-25T09:00:02.114Z"}
Input reference
| Field | Default | What it does |
|---|---|---|
channels / channelsText | - | Channel URLs, @handles, or UC... IDs |
maxVideosPerChannel | 15 | Latest uploads per channel (YouTube feeds expose up to 15) |
publishedWithinDays | 0 | Keep uploads from the last N days; 0 = no date filter |
includeKeywords / excludeKeywords | [] | Title/description keyword filters |
monitorNewOnly | false | Output only videos not delivered before under stateKey |
stateKey | default | Name of the monitor's memory; use one per scheduled task |
maxChannels | 100 | Safety cap on channels per run (max 1,000) |
maxConcurrency / requestDelayMs | 3 / 250 | Parallelism and politeness delay |
proxyConfiguration | none | Optional Apify Proxy for large or frequent runs |
Use the YouTube monitor through the API, MCP and integrations
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("groupoject/youtube-channel-monitor").call(run_input={"channels": ["https://www.youtube.com/@veritasium"],"monitorNewOnly": True,"stateKey": "science-channels",})for video in client.dataset(run["defaultDatasetId"]).iterate_items():print(video["publishedAt"], video["title"], video["videoUrl"])
- Schedules + webhooks: create a task, schedule it, and add a webhook on
ACTOR.RUN.SUCCEEDEDto push new videos to your endpoint. - Make, Zapier, n8n: use the Apify app/node, run this Actor, then map dataset rows to Slack, Gmail, Notion, or Sheets.
- AI agents (MCP): add
https://mcp.apify.com?tools=groupoject/youtube-channel-monitorto Claude, Cursor, or any MCP client.
The run also saves a SUMMARY record (channels processed, videos delivered, per-channel counts) and an ERRORS record with the reason for any channel that failed.
FAQ
Do I need a YouTube API key? No. The Actor reads YouTube's public channel feeds, so there is no API key and no daily quota.
How many videos per channel can it return? The latest 15 uploads per channel, which is what YouTube's channel feed exposes. For full channel history, use a full channel video scraper instead. This Actor is built for monitoring.
What does the first new-only run return? The current matching uploads. They are stored as seen, so the next run returns only videos published after that.
Can I run several separate monitors? Yes. Use a different stateKey per task, for example clients-a and competitors-b.
Does it include Shorts and live streams? It returns whatever YouTube puts in the channel's upload feed, which normally includes Shorts and finished live streams.
Is monitoring YouTube channels legal? The Actor reads only public feed data. You are responsible for how you use it and for following YouTube's terms and applicable law.
Related Actors
- YouTube Channel Scraper API - subscribers, video counts, emails in bio, avatars, banners
- YouTube Comments Scraper API - comments, likes and reply counts for any video
- YouTube Scraper API - videos from search terms, playlists and video URLs
- Google News Scraper - track news coverage alongside channel uploads