Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
YouTube Channel Monitor — New Upload Tracker icon

YouTube Channel Monitor — New Upload Tracker

Watch YouTube channels and get only their new uploads: title, URL, publish date, views, thumbnail. $0.01 per new video.

194 runs on Apify $0.01 per new video detected ($10 / 1,000)
Run this in the cloudRun on Apify →

YouTube & Creator Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust channels, maxResultsPerChannel, onlyNewSinceLastRun (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.01 per new video detected = $10 per 1,000

You are charged forWhenPrice
New video detectedOne new video found on a watched channel.$0.01

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-11, and they are what you are actually charged.

Inputs

FieldWhat it doesType
channelsYouTube channels to monitor, any mix of channel URLs, @handles, or UC… IDs (e.g. @MrBeast, https://youtube.com/@veritasium, UCX6OQ3DkcsbYNE6H8uQQuVA).array
maxResultsPerChannelHow many of the channel's latest uploads to check each run.integer
onlyNewSinceLastRunRemember seen video IDs across runs and return only newly-found videos (turns this into an upload trigger).boolean
maxVideoAgeHoursSkip videos older than this many hours. 0 = no age limit.integer
minDurationSecondsSkip videos shorter than this. 0 = no limit.integer
maxDurationSecondsSkip videos longer than this. 0 = no limit.integer
shortsOnlyReturn only Shorts (≤185s).boolean
longFormOnlyReturn only long-form videos (>185s).boolean
youtubeApiKeyOptional. Without a key the actor reads each channel's upload list: the last 15 uploads, with exact lengths, and times and view counts rounded the way YouTube shows them (estimated: true). A key gives exact times, the description and up to 50 uploads per channel.string

What you get

A structured dataset — each result includes fields like:

channelIdchannelTitlepublishedAttitleurlvideoIddurationSecondsisShortviewCount

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

17 ready-to-run use cases

YouTube Competitor Tracking: New Uploads on a Schedule

A watchlist of rival channels checked on a schedule, returning only what is new. Upload cadence and titles, without watching the channels yourself.

YouTube Upload Notification to Discord or Slack

Each run returns only videos it has not seen before, so an Apify integration can push them into a Discord or Slack channel as they land.

Long Form YouTube Videos: Find New Ones to Clip

Feeds a clip-to-Shorts pipeline with new 10-minute-plus uploads, sorted by each video's actual length. Works without an API key.

YouTube Unboxing Channels: Watch for New Review Videos

New long-form uploads from review channels the day they land. Shorts are left out by length, and no API key is required.

Crypto YouTube Channels: Same-Hour New Video Alerts

Watches the big crypto channels and returns only videos posted in the last six hours, so a scheduled run reads as an alert rather than a backlog.

New YouTube Videos Today From a Set of Channels

Everything a group of news channels posted in the last 24 hours, in one run. The source feed for a morning digest: title, URL, views, publish time.

Viral YouTube Shorts: Track New Ones From Your Niche

Set to Shorts under a minute, checked against each video's length. Upload times are YouTube's rounded ones unless you add an API key.

YouTube Sponsorship Deals: Catch New Sponsored Videos

Watches creators for new uploads over five minutes to feed a sponsor-detection step. The length filter works without an API key.

Best YouTube Channels to Learn Programming: New Videos

Watches teaching channels for new tutorials over 20 minutes, going by each video's length. You do not need a YouTube Data API key.

New Podcast Episodes on YouTube, Filtered by Length

Catches hour-plus episodes and skips the clip reposts, using each upload's real length. Runs fine without an API key.

Gaming YouTube Channels: New Uploads and Stream VODs

Returns 30-minute-plus uploads and stream replays. Length is read for every video, so no YouTube Data API key is needed.

YouTube Video Monitoring: Daily Digest of a Watchlist

One scheduled run collects yesterday's uploads across every channel on your list: title, URL, views, publish time and thumbnail per video.

YouTube Channel New Upload Feed for One Creator

Every new video and Short from a single channel on a schedule: title, URL, views, publish time and thumbnail. It skips what it has already seen.

Finance YouTube Channels: Track New Uploads by Length

Watches finance channels for new videos over eight minutes, filtered on each upload's length. An API key only makes the times exact.

MrBeast New Video Trigger: Fires on Each New Upload

Watches the MrBeast channel and returns title, URL, views, publish time and thumbnail for anything new, skipping what it has already reported.

Tech YouTube Channels: Monitor MKBHD, LTT and More

Checks a set of tech channels at once and hands back only the videos you have not seen, with title, URL, views, publish time and thumbnail.

YouTube Shorts Tracker for a Single Channel

Set to Shorts only: new uploads of 185 seconds or less, judged on each video's real length. No YouTube Data API key needed.

Ready-made automation using this tool

A finished workflow you can import into n8n and run — this tool does the data-gathering inside it. Free, and yours to change.

Get a short summary whenever a channel uploads

Watches the YouTube channels you pick. When one uploads, it reads the transcript, writes a few lines on what the video actually covers, and posts that to Slack, Notion or a spreadsheet — so you can decide whether to watch it.

All automations →

Related tools in YouTube & Creator Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

YouTube Video & Audio Downloader iconYouTube & Creator Tools

YouTube Video & Audio Downloader

Download YouTube videos as MP4 up to 8K, audio as MP3 or subtitles as .srt. No login or API key. You pay per megabyte delivered.

17 use cases

YouTube Video Uploader iconYouTube & Creator Tools

YouTube Video Uploader

Upload videos to your YouTube channel from a URL with OAuth. Set title, tags, category, thumbnail, privacy and publish time. $0.05 per upload.

2 use cases

AI Viral Clip Cutter — Long Video to Shorts iconYouTube & Creator Tools

AI Viral Clip Cutter — Long Video to Shorts

Turn a long podcast or interview into ranked vertical clips. AI scores each moment and captions follow every word. $0.20 per clip row, samples included.

3 use cases

AI Text-to-Speech Voiceover iconYouTube & Creator Tools

AI Text-to-Speech Voiceover

Turn any script into an AI voiceover file: MP3, WAV, Opus or AAC. Pick the voice, speed and format. $40.00 per 1,000 voiceovers ($0.04 each).

3 use cases

Video & Audio Transcriber — Word-Level + SRT/VTT iconYouTube & Creator Tools

Video & Audio Transcriber — Word-Level + SRT/VTT

Transcribe any video or audio URL with word-level timestamps. Download SRT, VTT and TXT. The language is found for you. $0.02 per transcribed minute.

3 use cases

AI Character Reference Bank iconYouTube & Creator Tools

AI Character Reference Bank

Make a consistent AI character reference set. You get portrait, 3/4, full body, side and expression sheets, plus a character-bible prompt.

2 use cases

See all YouTube & Creator Tools →

YouTube Upload Monitor: only the videos a channel has posted since your last check

Give it a list of channels and it returns the uploads it has not seen before. Run it again an hour later and you get only what went up in between, which most of the time is nothing at all. Video ids are remembered between runs, so nobody hands you the same recent-uploads list over and over.

Watch the first run. It has no memory yet, so it reports every recent upload it can see for every channel on your list, and each of those rows is billed. Set maxVideoAgeHours before that first run if you want a ceiling on it.

InputChannel links, @handles or UC ids
OutputOne row per newly seen upload
Ceiling15 recent uploads per channel, or up to 50 with your own API key
Account neededNone. A YouTube Data API key is optional and makes upload times and view counts exact
Price$0.01 per new video reported

🔔 What YouTube Upload Monitor does

Each run resolves your channels, reads their latest uploads, drops anything it has already reported, and writes what is left to the dataset. Delivered ids go into a named key-value store called yt-monitor-seen, which holds the last 10,000 and lives on your own Apify account.

That store is shared by every run, task and schedule of this actor on your account. One watch list on one schedule is the arrangement that behaves. Two schedules covering the same channels share one memory, and overlapping runs can lose an update and report it again on the next poll.

sourceInput carries the channel string exactly as you typed it, so you can join results back to your watch list. detectedAt is when this run found the video, which is not publishedAt.

📥 What you give it

{
  "channels": ["@MrBeast", "https://youtube.com/@veritasium", "UCX6OQ3DkcsbYNE6H8uQQuVA"],
  "onlyNewSinceLastRun": true,
  "maxVideoAgeHours": 48
}
FieldDefaultWhat it is
channelsnoneRequired. Channel links, @handles or bare UC ids, mixed freely.
onlyNewSinceLastRuntrueSkip ids reported in earlier runs. Turn it off to get the recent list every time, and pay for it every time.
maxVideoAgeHours0Drop anything older than this many hours. 0 means no age limit.
maxResultsPerChannel10How far back to look per channel, 1 to 50. Needs an API key.
minDurationSeconds, maxDurationSeconds0Duration window in seconds. 0 means no limit. Works with or without a key.
shortsOnly, longFormOnlyfalseSplit on the 185 second boundary. Setting both returns nothing.
youtubeApiKeynoneOptional, stored as a secret. Your own key, spending your own Google quota.

Start it with channels empty and the run fails rather than returning a polite row.

📤 What you get back

A real row from a real run without an API key:

{
  "videoId": "VKlulHwMxgU",
  "title": "What happens when you open the valve?",
  "url": "https://www.youtube.com/watch?v=VKlulHwMxgU",
  "channelId": "UCHnyfMqiRRG1u-2MsSQLbXA",
  "channelTitle": "Veritasium",
  "publishedAt": "2026-09-25T05:58:28.768Z",
  "durationSeconds": 94,
  "isShort": true,
  "viewCount": 873000,
  "thumbnail": "https://i.ytimg.com/vi/VKlulHwMxgU/hqdefault.jpg",
  "description": null,
  "estimated": true,
  "sourceInput": "@veritasium",
  "detectedAt": "2026-09-26T05:58:28.768Z"
}
FieldWhat it is
publishedAtAn ISO timestamp. Exact when estimated is false. When it is true, it was worked out from YouTube's own "1 day ago" label, so the upload can be up to one of those units older. null when YouTube gives no time, as for a scheduled premiere.
durationSeconds, isShortExact, with or without a key. null only in the rare run where a channel's upload list could not be read and YouTube's feed, which carries no length, stood in.
viewCountA number, and a snapshot of a video that is minutes old. Rounded the way YouTube shows it ("873K views") when estimated is true.
estimatedfalse when the time and view count are exact, true when they come from YouTube's rounded labels.
sourceInput, detectedAtYour original channel string, and when this run noticed the video.
descriptionThe upload description with an API key. Without one it is null, because the upload list carries none.

🧾 Reading the output

Every dataset row is a newly seen video. There are no sample rows and no diagnostic rows mixed in: notices such as FILTER_NOT_APPLIED are written to a SAMPLE_AND_NOTICES record in the key-value store instead, so they cannot be mistaken for data and cannot bill.

A channel that fails to resolve is logged as a warning and skipped, and the rest of the list carries on. That means a typo in one handle shows up in the run log rather than in your rows, so check the log the first time you add channels. If no channel on the list can be read, the run fails with a CHANNELS_NOT_READ notice rather than ending empty, which would read as "nothing new".

Without an API key every row is estimated: true. Add a key if your pipeline needs exact times.

▶️ How to run it

1. Open YouTube Upload Monitor and click Try for free. 2. Paste channels into Channels, one per line. 3. Set Max video age (hours) for the first run, so it does not report the whole backlog. 4. Click Start, then schedule it from the actor's Schedules tab once you are happy. 5. Point a run-finished webhook at Slack, a Zap or your own endpoint. Each run holds only the new ones, so the dataset is the payload.

💰 How much does it cost?

$0.01 per new video reported.

A poll that finds nothing new writes no rows, so watching twenty channels every fifteen minutes stays cheap and you pay on the polls that find something. The notices in the key-value store are never charged.

The first run is the expensive one, because everything is new to it. maxVideoAgeHours is the control.

💡 What people use it for

  • Posting into Slack the moment a competitor publishes, without anyone watching a feed.
  • Kicking off a pipeline on upload: pass videoId to a transcript or comments actor and have the

summary waiting.

  • Keeping a dated record of what a set of channels shipped. Poll hourly and even an estimated

publishedAt is right to the hour.

  • Watching a client's own channel so a missed upload does not go unnoticed for a week.

🚧 What it does not do

  • Without a key you get the last 15 uploads per channel. maxResultsPerChannel is ignored.
  • Without a key, times are estimates. Upload times and view counts come from YouTube's rounded

labels, marked estimated: true, and there is no description.

  • A row with no length skips the length filters. That only happens when a channel's upload list

cannot be read and YouTube's feed stands in; the row comes back unfiltered and a FILTER_NOT_APPLIED notice says so.

  • isShort is a duration test, 185 seconds or less, not YouTube's own Shorts surface. A short

video that is not a Short reads as one.

  • The memory holds 10,000 ids. Past that the oldest fall off and could in theory be reported

again.

  • It is a trigger, not a tracker. viewCount is captured once, at detection.
  • No second opinion on a channel it cannot resolve. It is skipped with a log warning, not a row.
  • One watch list per account behaves best, because the seen-ids memory is shared across every

run, task and schedule of this actor on your account.

🧭 Which YouTube actor do you need?

If you wantUse
Only what is new since the last checkThis one
A channel's whole upload list, every runYouTube Channel Scraper
Keyword search results as well as channelsYouTube Scraper
A channel's Shorts, with exact view and like countsYouTube Shorts Scraper
The new video's transcriptYouTube Transcript Scraper

❓ Questions people ask

Do I need a YouTube Data API key? No. The channel's upload list is enough for "tell me when they upload", lengths included. A key gives exact times, the description and deeper history, on your own Google quota.

Where is the seen-ids memory kept? In a named key-value store called yt-monitor-seen on your own Apify account, holding the last 10,000 ids.

How do I reset it? Turn onlyNewSinceLastRun off for one run to get the current list regardless, or clear the seen-ids record in that store.

How often should I run it? As often as you want the alert. A poll that finds nothing writes no rows.

Why did my first run return so much? It had no memory yet. Use maxVideoAgeHours to bound it.

Is scraping YouTube legal? This reads public channel upload lists, nothing signed in. Results can still contain personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Include the channels you were watching and the run ID, and the log is enough for us to see what happened.