YouTube Channel Change Monitor avatar

YouTube Channel Change Monitor

Pricing

from $20.00 / 1,000 channel checkeds

Go to Apify Store
YouTube Channel Change Monitor

YouTube Channel Change Monitor

Monitor public YouTube channel feeds and detect new uploads, video metadata changes, activity shifts, and recent view growth between runs.

Pricing

from $20.00 / 1,000 channel checkeds

Rating

0.0

(0)

Developer

sakthi kumar

sakthi kumar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Monitor YouTube channels and detect new videos and channel changes between runs.

Unofficial tool. Not affiliated with or endorsed by YouTube or Google. Reads public YouTube channel RSS feeds only.


What it does

On every run the Actor fetches each channel's public YouTube feed, compares it against the snapshot it saved last time, and returns only what changed:

  • NEW_VIDEO — a video that was not in the feed before
  • TITLE_CHANGED — a tracked video's title was edited (only when YouTube's updated timestamp also advanced — brief CDN title variance is ignored)
  • DESCRIPTION_CHANGED — a tracked video's description changed
  • VIDEO_UPDATED — YouTube bumped the video's updated timestamp with no visible title/description change
  • CHANNEL_METADATA_CHANGED — the channel name changed
  • UNCHANGED — nothing changed (only shown in ALL_CHECKS mode)

The first run for a channel records a baseline and reports BASELINE, not a wave of "new" videos.

All detection is deterministic code — HTTP fetch, XML parse, hashing, set comparison. No YouTube Data API, no API key, no scraper, no proxy, no AI/LLM.

About removed videos

YouTube's RSS feed is a rolling window of the ~15 most recent uploads. A video dropping out of that window is not proof it was deleted, so the Actor never reports "removed video" — that would be a false signal.

Who it is for

  • Competitor / creator monitoring — know within your schedule interval when a channel posts
  • Content research — track upload cadence and topic shifts across many channels
  • Sales & marketing intelligence — a prospect's product channel going active is a signal
  • New-video alerts — pipe NEW_VIDEO rows into Slack / email / a sheet via a webhook or the API

How monitoring works

  1. Provide a list of channel IDs (or ID-based /channel/ URLs) and a stable Monitor ID.
  2. The Actor fetches each channel's feeds/videos.xml, extracts a snapshot, and diffs it against the snapshot stored under your account + monitorId + channelId.
  3. It writes one flat row per change and saves the new snapshot.

First run vs. next run

Output
First run for a channelSUMMARY row with signal: BASELINE. Baseline stored.
Every later run (same Monitor ID)One row per NEW_VIDEO / TITLE_CHANGED / DESCRIPTION_CHANGED / VIDEO_UPDATED / CHANNEL_METADATA_CHANGED, plus a SUMMARY row. Unchanged channels produce only a SUMMARY.

Output

One flat dataset. CSV / JSON / API friendly.

FieldDescription
channel_idYouTube channel ID
channel_nameChannel title from the feed
monitor_idYour monitor ID
change_typeBASELINE, NEW_VIDEO, TITLE_CHANGED, DESCRIPTION_CHANGED, VIDEO_UPDATED, CHANNEL_METADATA_CHANGED, UNCHANGED, SUMMARY, FAILED
changed_fieldtitle, description, updated_at, channel_name
video_id / video_title / video_urlThe video the row is about (blank for channel-level / summary rows)
previous_value / current_valueBefore / after (or a small JSON blob for SUMMARY)
published_atVideo publish time
detected_atWhen this run observed the change
first_seen_at / last_seen_atWhen the video was first / most recently seen in the feed
error_type / error_messageSet on FAILED rows: invalid_channel, channel_not_found, feed_not_found, timeout, fetch_failed, parse_failed, internal_error

Output example

{ "channel_id": "UC…01", "channel_name": "DemoCreator", "monitor_id": "creators",
"change_type": "NEW_VIDEO", "video_id": "vid-102", "video_title": "Big announcement",
"video_url": "https://www.youtube.com/watch?v=vid-102",
"published_at": "2026-08-23T10:00:00+00:00", "detected_at": "2026-08-23T12:00:00+00:00",
"first_seen_at": "2026-08-23T12:00:00+00:00", "last_seen_at": "2026-08-23T12:00:00+00:00" }

Input

FieldRequiredDescription
channelsUp to 50 channel IDs (start with UC), ID-based /channel/ URLs, or feeds/videos.xml URLs. Handle / custom URLs are not resolved.
monitorIdStable name for this watch list. Reuse it on every scheduled run. Default "default".
outputModeCHANGES_ONLY (default) or ALL_CHECKS (also emit a row for unchanged channels).
emitBaselineDeprecated, ignored. Kept so older scheduled tasks keep validating. Use outputMode.

Scheduling

Works correctly hourly, 6-hourly, daily or weekly. Use the same monitorId each time to preserve comparison state. A change is reported once, then folded into the baseline.

Example: Apify Console → Schedules → cron 0 */6 * * *, input = your channels + monitorId: "creators".

API example

curl -X POST "https://api.apify.com/v2/acts/woolly_kingcrab~youtube-channel-change-monitor/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels":["UCXuqSBlHAE6Xw-yeJA0Tunw"],"monitorId":"tech-creators"}'
curl "https://api.apify.com/v2/acts/woolly_kingcrab~youtube-channel-change-monitor/runs/last/dataset/items?token=$APIFY_TOKEN&format=csv"

Pricing

Pay per event. $0.02 per channel successfully checked + $0.00005 per run start. Failed channels (invalid, 404, timeout, parse error) are not charged. Example: 20 channels daily ≈ 20 × $0.02$0.40/day (~$12/month).

Limitations

  • Public data only — YouTube RSS. No private/unlisted data, no analytics, no subscriber counts.
  • The feed holds only the ~15 most recent uploads, so history before you started monitoring is not available, and video removals are never reported.
  • Handle / custom channel URLs (youtube.com/@name, youtube.com/c/name) are not resolved — use the channel's UC… ID or /channel/UC… URL.
  • View counts in the feed are approximate and update slowly; treated as a soft signal only.
  • Not affiliated with YouTube or Google.

FAQ

Do I need a Google/YouTube API key? No.

How do I find a channel's ID? Open the channel, View Source, search for "channelId" or externalId (UC…), or use the channel's /channel/UC… URL.

Will I get the same "new video" twice? No — reported changes are folded into the baseline.

Why didn't a title edit show up? The Actor only reports a title change when YouTube also advanced the video's updated timestamp, which filters out transient CDN cache variance.


Unofficial tool. Not affiliated with or endorsed by YouTube or Google. Reads public YouTube channel RSS feeds only.