YouTube Channel Monitor - New Video Alerts, No API Key avatar

YouTube Channel Monitor - New Video Alerts, No API Key

Pricing

from $1.40 / 1,000 results

Go to Apify Store
YouTube Channel Monitor - New Video Alerts, No API Key

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

Group Oject

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

1

Monthly active users

8 days ago

Last modified

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.

YouTube Channel Monitor output in Apify: video, channel, published, views, ratings, new, keyword matches

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, or UC... 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 stateKey you 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.

FieldDescription
videoId, videoUrlYouTube video ID and watch URL
title, descriptionVideo title and description from the channel feed
channelName, channelId, channelUrlChannel the video belongs to
publishedAt, updatedAtUpload time and last feed update (ISO 8601)
thumbnailUrlVideo thumbnail
viewCountView count reported in the feed
ratingCount, ratingAverageRating data reported in the feed, when available
matchedKeywordsWhich of your includeKeywords matched
isNewtrue when the video was not delivered before under this stateKey
sourceInput, feedUrl, scrapedAtWhich 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

  1. Open the Actor and paste channel URLs or @handles into Channels (or one per line into the text box).
  2. Optional: add includeKeywords (for example review, launch) or set publishedWithinDays.
  3. Turn on Monitor new videos only and give the monitor a unique stateKey, such as competitor-tech-channels.
  4. Run once. The first run returns the current matching uploads and saves them as seen.
  5. Save the input as a task and add a schedule (hourly, daily, weekly). Later runs return only new videos.
  6. 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

FieldDefaultWhat it does
channels / channelsText-Channel URLs, @handles, or UC... IDs
maxVideosPerChannel15Latest uploads per channel (YouTube feeds expose up to 15)
publishedWithinDays0Keep uploads from the last N days; 0 = no date filter
includeKeywords / excludeKeywords[]Title/description keyword filters
monitorNewOnlyfalseOutput only videos not delivered before under stateKey
stateKeydefaultName of the monitor's memory; use one per scheduled task
maxChannels100Safety cap on channels per run (max 1,000)
maxConcurrency / requestDelayMs3 / 250Parallelism and politeness delay
proxyConfigurationnoneOptional Apify Proxy for large or frequent runs

Use the YouTube monitor through the API, MCP and integrations

import os
from apify_client import ApifyClient
client = 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.SUCCEEDED to 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-monitor to 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.