Agent skill
rss-subscriptions
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/rss-subscriptions
SKILL.md
/rss-check
Check subscribed YouTube channels for new videos and add them to today's daily note.
Usage
/rss-check # Check all subscribed channels
/rss-check <channel-name> # Check specific channel only
/rss-check --list # List all subscriptions
/rss-check --add <url> # Add new channel subscription
/rss-check --remove <name> # Remove channel subscription
Examples
/rss-check
/rss-check "Nate B Jones"
/rss-check --add https://www.youtube.com/@NateBJones
/rss-check --list
Subscription Config
Subscriptions are stored in .claude/subscriptions.yaml:
youtube_channels:
- name: "Nate B Jones"
channel_id: "UCxxxxxxxxxx"
channel_url: "https://www.youtube.com/@NateBJones"
last_checked: "2026-01-12T00:00:00Z"
last_video_id: "0TpON5T-Sw4"
create_page: true # Create full Page analysis
tags: [ai, productivity] # Default tags for this channel
settings:
auto_create_page: true # Default: create Page for all new videos
auto_create_weblink: true # Default: create Weblink for all new videos
add_to_daily: true # Add entries to daily note
extract_links: true # Extract links from video descriptions
Instructions
List Subscriptions (--list)
- Read
.claude/subscriptions.yaml - Display formatted table of subscriptions:
| Channel | Last Checked | Last Video | |---------|--------------|------------| | Nate B Jones | 2026-01-12 | Why 2026 Is... |
Add Subscription (--add <url>)
- Parse YouTube channel URL (supports
@handle,/channel/ID,/c/nameformats) - Use
mcp__MCP_DOCKER__get_video_infoon a recent video to get channel info - Extract channel ID from video info or page
- Add entry to
.claude/subscriptions.yaml:yaml- name: "Channel Name" channel_id: "UCxxxxxxxxxx" channel_url: "https://www.youtube.com/@handle" last_checked: null last_video_id: null create_page: true tags: [] - Confirm addition
Remove Subscription (--remove <name>)
- Find channel by name (case-insensitive partial match)
- Remove from
.claude/subscriptions.yaml - Confirm removal
Check for New Videos (default)
-
Read subscriptions from
.claude/subscriptions.yaml -
For each channel, fetch RSS feed:
https://www.youtube.com/feeds/videos.xml?channel_id={{channel_id}}Use
WebFetchwith prompt: "Extract video entries: title, video_id, published date, description" -
Identify new videos:
- Compare video IDs against
last_video_id - Select videos published after last check
- If first check, take only the most recent video
- Compare video IDs against
-
For each new video:
a. Fetch full details:
mcp__MCP_DOCKER__get_video_info(url) mcp__MCP_DOCKER__get_transcript(url)b. Extract links from description:
- Parse URLs from video description
- Categorise: website, substack, github, twitter, etc.
- Store for inclusion in notes
c. Create Weblink note (if
auto_create_weblink: true):- Follow
/youtubeskill Weblink template - Include extracted links in Resources section
d. Create Page note (if channel
create_page: true):- Follow
/youtubeskill Page template - Full transcript analysis
- Include all extracted links
e. Add to Daily Note:
- Open/create today's daily note (
+Daily/{{year}}/{{date}}.md) - Add entry under
## New Videossection:markdown## New Videos ### [[Weblink - {{video title}}]] **Channel:** [[Nate B Jones]] **Duration:** {{duration}} {{2-3 sentence summary}} **Links mentioned:** - [Resource 1](url) - [Resource 2](url)
-
Update subscription config:
- Set
last_checkedto current timestamp - Set
last_video_idto most recent video ID
- Set
-
Report results:
Checked 3 channels: - Nate B Jones: 1 new video - "Why 2026 Is the Year to Build a Second Brain" - Created: Weblink + Page - Channel 2: No new videos - Channel 3: 2 new videos - "Video Title 1" (Weblink + Page) - "Video Title 2" (Weblink + Page) Added 3 entries to today's daily note.
Daily Note Integration
The skill adds a ## New Videos section to the daily note. If the section doesn't exist, create it. If it exists, append new entries.
Daily note location: +Daily/{{year}}/{{YYYY-MM-DD}}.md
Entry format:
### [[Weblink - {{title}}]]
**Channel:** [[{{channel name}}]]
**Duration:** {{duration}}
{{brief summary from video analysis}}
**Links mentioned:**
- [{{link title}}]({{url}})
Link Extraction
From video descriptions, extract and categorise:
| Type | Pattern | Example |
|---|---|---|
| Website | Personal domains | natebjones.com |
| Newsletter | Substack, Beehiiv | natesnewsletter.substack.com |
| GitHub | github.com/* | github.com/user/repo |
| Twitter/X | twitter.com, x.com | x.com/handle |
| linkedin.com | linkedin.com/in/name | |
| Product | Product URLs | notion.so, zapier.com |
Include these in:
- Weblink note
## Resourcessection - Page note
## Resourcessection - Daily note entry
**Links mentioned:**
Error Handling
- RSS fetch fails: Log error, continue to next channel
- Transcript unavailable: Create notes without transcript, note in output
- Daily note doesn't exist: Create it using
/dailyskill template - Config file missing: Create default config with instructions
Channel ID Discovery
YouTube channel IDs can be found:
- From any video by that channel (in video info)
- From channel page source (search for
channelId) - From RSS feed URL if already subscribed
When adding via --add, attempt to:
- Fetch the channel page
- Extract channel ID from page content
- Get latest video to verify
Quality Standards
- Always update config after checking
- Always link Person note if exists for channel creator
- Always extract and include description links
- Never duplicate videos already captured
- Use UK English throughout
- Create daily note if it doesn't exist
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?