YouTube Channel Change Monitor
Pricing
from $20.00 / 1,000 channel checkeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
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
updatedtimestamp also advanced — brief CDN title variance is ignored) - DESCRIPTION_CHANGED — a tracked video's description changed
- VIDEO_UPDATED — YouTube bumped the video's
updatedtimestamp with no visible title/description change - CHANNEL_METADATA_CHANGED — the channel name changed
- UNCHANGED — nothing changed (only shown in
ALL_CHECKSmode)
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_VIDEOrows into Slack / email / a sheet via a webhook or the API
How monitoring works
- Provide a list of channel IDs (or ID-based
/channel/URLs) and a stable Monitor ID. - The Actor fetches each channel's
feeds/videos.xml, extracts a snapshot, and diffs it against the snapshot stored underyour account + monitorId + channelId. - It writes one flat row per change and saves the new snapshot.
First run vs. next run
| Output | |
|---|---|
| First run for a channel | SUMMARY 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.
| Field | Description |
|---|---|
channel_id | YouTube channel ID |
channel_name | Channel title from the feed |
monitor_id | Your monitor ID |
change_type | BASELINE, NEW_VIDEO, TITLE_CHANGED, DESCRIPTION_CHANGED, VIDEO_UPDATED, CHANNEL_METADATA_CHANGED, UNCHANGED, SUMMARY, FAILED |
changed_field | title, description, updated_at, channel_name |
video_id / video_title / video_url | The video the row is about (blank for channel-level / summary rows) |
previous_value / current_value | Before / after (or a small JSON blob for SUMMARY) |
published_at | Video publish time |
detected_at | When this run observed the change |
first_seen_at / last_seen_at | When the video was first / most recently seen in the feed |
error_type / error_message | Set 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
| Field | Required | Description |
|---|---|---|
channels | ✅ | Up to 50 channel IDs (start with UC), ID-based /channel/ URLs, or feeds/videos.xml URLs. Handle / custom URLs are not resolved. |
monitorId | Stable name for this watch list. Reuse it on every scheduled run. Default "default". | |
outputMode | CHANGES_ONLY (default) or ALL_CHECKS (also emit a row for unchanged channels). | |
emitBaseline | Deprecated, 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'sUC…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.