Feed Watcher
by @runawaydevil
Monitor RSS/Atom feeds and send notifications when new content appears. Track YouTube channels, Reddit subreddits, GitHub releases, blogs, and any RSS/Atom f...
clawhub install feed-watcherπ About This Skill
name: feed-watcher description: | Monitor RSS/Atom feeds and send notifications when new content appears. Track YouTube channels, Reddit subreddits, GitHub releases, blogs, and any RSS/Atom feed. Supports webhook notifications for Discord, Telegram, Slack, etc. compatibility: Node.js 14+ metadata: author: Seth version: "0.0.1"
Feed Watcher
Monitor RSS/Atom feeds and send notifications when new content appears.
Description
This skill monitors RSS and Atom feeds for new content and sends notifications via webhook or cron job. It's designed to track YouTube channels, Reddit subreddits, GitHub repos, blogs, and any other RSS/Atom feed.
Features
Installation
# Install required dependencies
npm installOr use globally
npm install -g rss-parser dotenv
Configuration
Create a .env file with:
# Webhook URL for notifications (Discord, Telegram, Slack, etc.)
WEBHOOK_URL=https://your-webhook-url.com/hookOptional: Custom user agent
USER_AGENT=feed-watcher/1.0
Commands
Add a feed
node index.js add "feed_name" "https://example.com/feed.xml"
Example - YouTube channel:
node index.js add "Psychopoly" "https://www.youtube.com/feeds/videos.xml?channel_id=UCXXXX"
Example - Reddit subreddit:
node index.js add "programming" "https://www.reddit.com/r/programming/.rss"
Example - GitHub releases:
node index.js add "openclaw" "https://github.com/openclaw/openclaw/releases.atom"
List feeds
node index.js list
Scan for updates
node index.js scan
Check specific feed
node index.js check "feed_name"
Remove feed
node index.js remove "feed_name"
Usage as a Cron Job
Add to crontab for automatic monitoring:
# Run every 30 minutes
*/30 * * * * cd /path/to/feed-watcher && node index.js scan >> /var/log/feed-watcher.log 2>&1
Supported Feed Types
Examples
YouTube Channel
Find channel ID, then use:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxx
For r/programming:
https://www.reddit.com/r/programming/.rss
GitHub Releases
For a repo:
https://github.com/owner/repo/releases.atom
Environment Variables
| Variable | Required | Description | |----------|----------|-------------| | WEBHOOK_URL | No | URL to send notifications | | DATA_DIR | No | Directory for state files (default: ~/.feed-watcher) |
Notification Format
When new content is found, the webhook receives:
{
"feed": "Feed Name",
"count": 3,
"items": [
{
"title": "Article Title",
"link": "https://example.com/article",
"pubDate": "2024-01-15T10:30:00Z"
}
]
}
Notes
~/.feed-watcher/feeds.jsonscan before setting up cron to test feedsπ‘ Examples
YouTube Channel
Find channel ID, then use:
https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxx
For r/programming:
https://www.reddit.com/r/programming/.rss
GitHub Releases
For a repo:
https://github.com/owner/repo/releases.atom
βοΈ Configuration
Create a .env file with:
# Webhook URL for notifications (Discord, Telegram, Slack, etc.)
WEBHOOK_URL=https://your-webhook-url.com/hookOptional: Custom user agent
USER_AGENT=feed-watcher/1.0
π Tips & Best Practices
~/.feed-watcher/feeds.jsonscan before setting up cron to test feeds