YouTube Channel Monitor — New Upload Tracker
Pricing
from $10.00 / 1,000 new video detecteds
YouTube Channel Monitor — New Upload Tracker
Monitors YouTube channels (by @handle, URL, or UC ID) and returns each channel's newest uploads as structured JSON — title, video URL, duration, view count, thumbnail, and a Shorts flag. Remembers seen video IDs across runs, so each run returns onl
Pricing
from $10.00 / 1,000 new video detecteds
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
4 hours ago
Last modified
Categories
Share
YouTube Channel Monitor
Watch a list of YouTube channels and get their newest uploads back as structured data: title, URL, duration, view count, thumbnail, published date, and a Shorts flag. It keeps track of which videos it has already returned, so each run gives you only the new ones. That makes it a clean trigger for automations that should fire when a creator posts: a repurposing pipeline, a competitor tracker, a "new video" alert, or a growing content dataset.
How it works
It resolves each channel (handle, URL, or ID) to its uploads playlist, reads the latest items via the YouTube Data API v3, and pushes one dataset record per video. With onlyNewSinceLastRun on, it stores the video IDs it has seen in a named key-value store and skips them next time, so repeat runs only surface uploads that weren't there before.
Input
You bring your own YouTube Data API v3 key (Google Cloud, enable the YouTube Data API v3, create an API key). The actor uses the uploads-playlist path, which costs about one quota unit per page, so it stays comfortably inside the default free 10,000 units/day.
| Field | Required | Notes |
|---|---|---|
channels | yes | Any mix of @handles, channel URLs, and UC… IDs, e.g. @MrBeast, https://youtube.com/@veritasium, UCX6OQ3DkcsbYNE6H8uQQuVA. |
youtubeApiKey | no | Your Data API v3 key. Required in practice; can also be passed via the YOUTUBE_API_KEY env var. Stored as a secret. |
maxResultsPerChannel | no | How many of the latest uploads to check per channel each run. Default 10, max 50. |
onlyNewSinceLastRun | no | Dedupe across runs and return only newly-found videos. Default true. |
maxVideoAgeHours | no | Skip videos older than this. 0 means no age limit. |
minDurationSeconds / maxDurationSeconds | no | Duration bounds in seconds. 0 means no limit. |
shortsOnly / longFormOnly | no | Restrict to Shorts (185s or less) or to long-form. Leave both off for everything. |
Output
One dataset record per new video. The fields you'll usually want are videoId, title, url, channelTitle, publishedAt, durationSeconds, isShort, viewCount, and thumbnail. Each record also carries channelId, description, the sourceInput you passed for that channel, and a detectedAt timestamp for when this run picked it up.
Example
{"channels": ["@MrBeast", "@veritasium"],"maxResultsPerChannel": 10,"onlyNewSinceLastRun": true,"longFormOnly": true,"youtubeApiKey": "YOUR_YOUTUBE_DATA_API_V3_KEY"}
Pricing
$0.01 per new video detected, pay per result, no subscription. You still cover your own Google API quota, which is free for normal use.
Notes
Cross-run dedupe relies on a named key-value store. If a run doesn't have permission to open one, the actor logs a warning and returns all recent videos instead of just the new ones, so pair onlyNewSinceLastRun: true with an Apify Schedule (for example hourly) for a steady stream of new uploads. The Shorts flag is based on a 185-second cutoff and is a heuristic, not a guarantee.