YouTube Monitor - New Videos by Channel & Keyword avatar

YouTube Monitor - New Videos by Channel & Keyword

Pricing

from $1.99 / 1,000 videos

Go to Apify Store
YouTube Monitor - New Videos by Channel & Keyword

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

Quiet Harvest

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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, views and rating also work.
  • Channels. A channel's latest uploads. Handles with or without @, or the full channel URL.
  • Only new videos. With onlyNew on, it remembers what it already gave you (7 days per input set) and skips it. Good for running every 15 minutes.
  • Optional extras. enrichVideos opens each video for the exact publish time, likes, full description and tags. transcripts adds 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 (maxResults up to 5000).
  • Send new videos with their transcripts to an AI step that summarizes them.

How do I use it?

  1. Open this Actor and click Try for free. You need a free Apify account.
  2. Type your keywords, or the channel handles you want to follow (like @NASA).
  3. Click Start.
  4. Wait for the run to finish.
  5. 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

FieldDefault
keywordsSearch terms
channelsChannel handles or URLs
sortdatedate, relevance, views, rating
maxResults0Videos per keyword / channel. 0 = first page only (about 15 for a keyword, 30 for a channel). Higher pages further, up to 5000
includeShortstrueTurn off for long-form only
filterLanguages[]Keep only titles in these languages (19 options). Titles where the language can't be told are kept
onlyNewtrueSkip videos returned in earlier runs (remembers 7 days)
maxAgeHours0Drop videos older than this. 0 = no limit. Approximate, see Limits
minViews0Drop videos below this view count
enrichVideosfalseOpen each video for exact publish time, likes, description, tags, channel ID. One extra request per video
exactCommentCountfalseExact comment count instead of the rounded 4.2K. One extra request per video
transcriptsfalseAdd the spoken transcript
transcriptLanguages["en"]Transcript languages to try, in order. If none match you get whatever the video has
proxyConfigurationresidentialKeep residential. YouTube serves a stripped page to flagged IPs
concurrency3Keywords/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 onlyNew on, 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 like 12 days ago. I convert that to published_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 maxAgeHours doesn't filter them. Set includeShorts to false if that matters. For many keywords Shorts are over half the results.
  • subscriber_count is null more 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_status tells you why one is missing.
  • If a second run comes back almost empty, that's usually onlyNew. Set it to false if 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

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).