YouTube Monitor - New Videos by Channel & Keyword
Pricing
from $1.99 / 1,000 videos
YouTube Monitor - New Videos by Channel & Keyword
Get every new YouTube video from the channels and keywords you follow, with no API key and no quota: title, channel, views, duration, publish time, thumbnail and URL. Built-in dedupe returns only what is new since your last run. Export JSON, CSV or Excel. $1.99 per 1,000 videos.
Pricing
from $1.99 / 1,000 videos
Rating
0.0
(0)
Developer
Quiet Harvest
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
This YouTube monitor watches channels and keywords for new videos and returns only what showed up since the last run. No API key, no quota, no login, no cookies.
$1.99 per 1,000 videos. Compute and proxy are included in that price.
Quick start
Runs as-is with this input (the same input Apify tests daily):
{"keywords": ["ai agents","web scraping"],"channels": ["@NASA"],"sort": "date","maxResults": 0}
Main output fields: published_text, channel, title, view_count, duration_text, url.
Price: Video: $1.99 per 1,000; Transcript: $2.99 per 1,000. Pay only for results delivered.
Run it from code and get the results in one call: POST https://api.apify.com/v2/acts/reportable_broth~youtube-scraper-monitor/run-sync-get-dataset-items?token=YOUR_TOKEN with the input above as the JSON body.
What does YouTube Monitor do?
- Keyword search. Sorted by upload date by default, so newest videos come first.
relevance,viewsandratingalso work. - Channels. A channel's latest uploads. Handles with or without @, or the full channel URL.
- Only new videos. With
onlyNewon, it remembers what it already gave you (7 days per input set) and skips it. Good for running every 15 minutes. - Optional extras.
enrichVideosopens each video for the exact publish time, likes, full description and tags.transcriptsadds the spoken transcript.
It reads public YouTube pages, so there's no Google Cloud project and no daily quota to run out of. If you've hit the YouTube Data API limit, this doesn't have one.
What can I use it for?
- Know when a competitor or a creator you follow uploads something new.
- Catch new videos that mention your brand or product.
- Build a daily list of new videos on a topic for a newsletter or research.
- Pull a channel's older uploads with view counts into a spreadsheet (
maxResultsup to 5000). - Send new videos with their transcripts to an AI step that summarizes them.
How do I use it?
- Open this Actor and click Try for free. You need a free Apify account.
- Type your keywords, or the channel handles you want to follow (like
@NASA). - Click Start.
- Wait for the run to finish.
- Open the Output tab and download the videos as JSON, CSV or Excel.
To keep watching, save the input as a Task and add a Schedule (see below).
Examples
Monitor a brand or topic (run it every 15 min):
{"keywords": ["acme corp", "acme review"],"sort": "date","onlyNew": true,"maxAgeHours": 24}
Follow a few creators:
{"channels": ["@mkbhd", "@LinusTechTips", "@veritasium"],"onlyNew": true}
Only long-form videos that already have some views:
{"keywords": ["product launch 2026"],"sort": "views","minViews": 10000,"includeShorts": false}
Input
| Field | Default | |
|---|---|---|
keywords | Search terms | |
channels | Channel handles or URLs | |
sort | date | date, relevance, views, rating |
maxResults | 0 | Videos per keyword / channel. 0 = first page only (about 15 for a keyword, 30 for a channel). Higher pages further, up to 5000 |
includeShorts | true | Turn off for long-form only |
filterLanguages | [] | Keep only titles in these languages (19 options). Titles where the language can't be told are kept |
onlyNew | true | Skip videos returned in earlier runs (remembers 7 days) |
maxAgeHours | 0 | Drop videos older than this. 0 = no limit. Approximate, see Limits |
minViews | 0 | Drop videos below this view count |
enrichVideos | false | Open each video for exact publish time, likes, description, tags, channel ID. One extra request per video |
exactCommentCount | false | Exact comment count instead of the rounded 4.2K. One extra request per video |
transcripts | false | Add the spoken transcript |
transcriptLanguages | ["en"] | Transcript languages to try, in order. If none match you get whatever the video has |
proxyConfiguration | residential | Keep residential. YouTube serves a stripped page to flagged IPs |
concurrency | 3 | Keywords/channels fetched at once (max 8) |
What data do I get?
One row per video:
{"video_id": "IwZVXmQdX1E","url": "https://www.youtube.com/watch?v=IwZVXmQdX1E","title": "NASA Moon Base: The First Six Months","channel": "NASA","channel_url": "https://www.youtube.com/@NASA","duration_text": "14:05","view_count": 486000,"view_count_text": "486K views","published_text": "12 days ago","published_ts_approx": 1757600000,"thumbnail": "https://i.ytimg.com/vi/IwZVXmQdX1E/hq720.jpg","_source": "channel","_query": "NASA","_mode": "videos"}
Also included: description_snippet (keyword search only), is_short, language, channel_thumbnail, channel_username. With enrichVideos: published_at, published_ts, like_count, description, keywords, channel_id, subscriber_count, comment_count_approx, hashtags, description_links, duration_seconds. With exactCommentCount: comment_count. With transcripts: transcript, transcript_segments, transcript_language, transcript_is_generated, transcript_status.
Export as JSON, CSV, Excel or XML, or read it through the API.
How much does it cost?
$1.99 per 1,000 videos, so $0.00199 a video. Transcripts are $2.99 per 1,000 on top, and only charged when a transcript is actually found. There's no start fee. enrichVideos and exactCommentCount don't cost extra, they just make the run slower.
- 100 videos cost about $0.20.
- Following 20 channels: the first run returns about 30 videos per channel, 600 videos, about $1.19. After that, with
onlyNewon, you only pay for new uploads. - 100 videos with transcripts, where 60 have one: about $0.20 + $0.18 = $0.38.
Apify's free plan comes with a monthly usage credit ($5 at the time of writing), which covers about 2,500 videos.
Limits
- Publish times are approximate unless you turn on
enrichVideos. Search and channel pages only show text like12 days ago. I convert that topublished_ts_approx, which is fine for "last 24 hours" but not for sorting videos minutes apart. Videos with no readable time are kept, not dropped. - Shorts have no publish time or duration at all, so
maxAgeHoursdoesn't filter them. SetincludeShortstofalseif that matters. For many keywords Shorts are over half the results. subscriber_countisnullmore often than other fields. YouTube leaves it off some pages and I don't fill it from other places.- Transcripts: about 60% of videos had one in my tests. Uploaders can switch captions off and most Shorts have them off.
transcript_statustells you why one is missing. - If a second run comes back almost empty, that's usually
onlyNew. Set it tofalseif you want the full list every time. - Public videos only. Private, unlisted and members-only won't work. No comments in this version.
Scheduling it
Save your input as a Task, add a Schedule (every 15 min works well), keep onlyNew on. Hook the dataset up to Slack, Discord, a webhook, Google Sheets, Make or Zapier if you want alerts.
FAQ
Do I need a YouTube API key?
No. It doesn't use the YouTube Data API, so there's no key, no Google Cloud project and no daily quota.
How do I get told when a channel uploads?
Put the channel in channels, keep onlyNew on, and schedule it. Each run only returns videos you haven't seen. Connect the dataset to Slack, Discord, email or a webhook through Apify integrations, Make or Zapier.
Why is my second run almost empty?
onlyNew skips videos from earlier runs. If nothing new was uploaded, you get nothing, and you pay nothing. Set it to false to get the full list every time.
Can I use it from the API or an AI agent?
Yes, through the Apify API or MCP. For AI agents, set onlyNew to false so every call returns the full result instead of just what's new.
Other scrapers I made
- YouTube Transcript: transcripts by URL, playlist, channel or keyword, SRT/VTT, translation
- YouTube Playlist: every video in a playlist, in order
- Threads Scraper: posts by keyword, hashtag or profile
- Google Ads Transparency: a competitor's Google ads
Found a bug or need a field? Open an issue on the Issues tab.
Only collects publicly available data. You're responsible for how you use it (YouTube terms, GDPR, local law).