# 🚀 SKILL INSTALLATION: YouTube Research (Simple)
**Skill ID:** youtube-research-simple
**Version:** 1.0.0
**Complexity:** Low
**Est. Setup Time:** 3 minutes
**Author:** Mia / Blazo
---
## 🎯 Installation Goal
Install the simplest YouTube research tool. Add any channel with a single command, get automatic daily transcripts, and research content through an easy menu system. No configuration needed.
---
## ⚠️ CRITICAL: Prerequisites Check
<thinking>
Before proceeding, verify yt-dlp is available for downloading transcripts.
</thinking>
### 🔍 System Check
**ACTION:** CHECK_SYSTEM
**Parameters:**
- OpenClaw version: >= 2026.2.0
- yt-dlp: INSTALLED or installable
- Internet: CONNECTED
**STATUS:** ⏳ CHECKING...
```bash
command -v yt-dlp >/dev/null 2>&1 && echo "✅ yt-dlp ready" || echo "⚠️ yt-dlp needed"
```
**STATUS:** [Checking...]
**IF yt-dlp NOT INSTALLED:**
```
⚠️ yt-dlp not found
**Install now:**
pip3 install yt-dlp
**Or:**
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o ~/.local/bin/yt-dlp && chmod +x ~/.local/bin/yt-dlp
Type "installed" when done.
```
---
## 👤 Human Setup Phase
<thinking>
Only one input needed: the YouTube channel URL. Everything else is automatic.
</thinking>
### Required Human Action
**🛑 HUMAN REQUIRED - Step 1: YouTube Channel**
**ASK HUMAN:** What YouTube channel do you want to research?
**Instructions:**
Paste the YouTube channel URL (or just @channelname)
**Examples:**
- `https://www.youtube.com/@AlexFinnOfficial`
- `youtube.com/c/InvestAnswers`
- `@LexFridman` (I'll convert to full URL)
**⏳ AWAITING HUMAN INPUT**
**📥 RECEIVED:** [channel_input]
**✅ VALIDATION:**
<thinking>
Convert short form to full URL if needed...
</thinking>
- Format check: [PASS]
- URL resolved: [channel_url]
**VARIABLE STORED:** `CHANNEL_URL` = "[channel_url]"
**VARIABLE STORED:** `CHANNEL_NAME` = "[extracted_name]"
---
## 🛠️ Automated Installation Phase
<thinking>
Single channel provided. Installing everything automatically.
</thinking>
### Installation Steps
**STEP 1: Create Directory Structure**
**ACTION:** CREATE_DIRECTORY
**Path:** `~/clawd/youtube-[channel_name]/`
**STATUS:** ✅ Created
---
**STEP 2: Create Fetch Script**
**ACTION:** WRITE_FILE
**Path:** `~/clawd/youtube-[channel_name]/fetch.sh`
**Permissions:** 755
**Content:**
```bash
#!/bin/bash
# YouTube Research Simple - Daily Fetch
CHANNEL="[CHANNEL_URL]"
OUTDIR="$HOME/clawd/youtube-[channel_name]"
YTDLP=~/.local/bin/yt-dlp
cd "$OUTDIR"
# Fetch latest videos (10)
$YTDLP --write-auto-sub --sub-lang en --skip-download
-o "%(upload_date)s-%(id)s"
"$CHANNEL/videos" --playlist-items 1-10 2>/dev/null
# Fetch latest streams (10)
$YTDLP --write-auto-sub --sub-lang en --skip-download
-o "%(upload_date)s-%(id)s"
"$CHANNEL/streams" --playlist-items 1-10 2>/dev/null
# Convert VTT to TXT
for vtt in *.vtt; do
[ -f "$vtt" ] || continue
txt="${vtt%.vtt}.txt"
[ -f "$txt" ] && continue
grep -v "^WEBVTT|^Kind:|^Language:|^[0-9][0-9]:[0-9][0-9]|align:start" "$vtt" |
sed 's/<[^>]*>//g' | grep -v "^$" | awk '!seen[$0]++' > "$txt"
done
# Delete files older than 7 days
find . -name "*.txt" -mtime +7 -delete
find . -name "*.vtt" -mtime +7 -delete
echo "$(date): Fetched $(ls -1 *.txt 2>/dev/null | wc -l) transcripts" >> fetch.log
```
**STATUS:** ✅ Created
---
**STEP 3: Schedule Daily Fetch**
**ACTION:** CREATE_CRON_JOB
**Schedule:** Daily at 3:00 AM (captures all previous day's content)
**STATUS:** ✅ Scheduled
---
**STEP 4: Initial Fetch**
**ACTION:** EXECUTE_FETCH
**Command:** `~/clawd/youtube-[channel_name]/fetch.sh`
**STATUS:** ⏳ Fetching last 7 days...
**Expected output:**
```
Fetching transcripts...
Downloaded: 20260210-abc123.vtt
Downloaded: 20260209-def456.vtt
Converted: 8 transcripts
Done! 8 transcripts ready
```
**STATUS:** [Running... / ✅ Complete]
---
**STEP 5: Create /youtube Command Handler**
**ACTION:** WRITE_FILE
**Path:** `~/clawd/skills/youtube-research-simple/youtube-menu.sh`
**Permissions:** 755
**Content:**
```bash
#!/bin/bash
# /youtube command handler
BASEDIR="$HOME/clawd"
CONFIG="$BASEDIR/.youtube-channels.conf"
touch "$CONFIG"
# Count channels
CHANNEL_COUNT=$(wc -l < "$CONFIG" 2>/dev/null || echo 0)
echo "📺 YouTube Research Manager"
echo "📊 $CHANNEL_COUNT channel(s) configured"
echo ""
if [ $CHANNEL_COUNT -eq 0 ]; then
echo "No channels yet. Add one with:"
echo "/youtube add [channel-url]"
exit 0
fi
echo "Your Channels:"
i=1
while IFS= read -r line; do
name=$(echo "$line" | cut -d'|' -f1)
echo "$i. @$name"
i=$((i+1))
done < "$CONFIG"
echo ""
echo "Options:"
echo "A. ➕ Add new channel"
echo "B. ➖ Remove channel"
echo "C. 📊 Select channel to research"
```
**STATUS:** ✅ Created
---
**STEP 6: Configure Channel List**
**ACTION:** UPDATE_CHANNEL_CONFIG
**Add:** `[CHANNEL_NAME]|[CHANNEL_URL]`
**STATUS:** ✅ Channel registered
---
## 🎉 Installation Complete!
<thinking>
Installation successful. Ready to present the research menu.
</thinking>
### ✅ Summary
**Skill:** YouTube Research (Simple)
**Channel:** @[CHANNEL_NAME]
**Status:** INSTALLED & READY
**Transcripts:** [COUNT] videos ready
**Auto-fetch:** Daily at 3:00 AM (catches all previous day's videos)
**Storage:** `~/clawd/youtube-[channel_name]/`
---
## 📊 Research Menu
**Use command:** `/youtube`
```
📺 YouTube Research: @[CHANNEL_NAME]
📊 7 days analyzed ([X] videos, [Y] streams)
What would you like?
1. 📰 Summary - "What has [Creator] been talking about?"
2. 🐦 Tweet Ideas - "Give me 5 thread ideas from this week"
3. 💡 Key Insights - "What are the main takeaways?"
4. 🔍 Find Topic - "Did he mention [topic]?"
5. 📈 Trends - "What's he focusing on lately? What's new?"
Or just ask me anything about the content!
```
---
## 🚀 How to Use
### Add More Channels:
```
/youtube add youtube.com/@NewChannel
```
### Manage Channels:
```
/youtube
→ Shows all channels
→ Pick one to research
→ Or add/remove channels
```
### Research (after picking channel):
- Type **1-5** for menu options
- Or **ask naturally**: "What did he say about AI?"
---
## 📋 Skill is Active!
### 🔄 Automatic
- Daily fetch at 3:00 PM
- Keeps last 7 days only
- Auto-converts streams
### 🎮 Manual
- `/youtube` - Open manager
- `/youtube add [url]` - Add channel
- Research on demand anytime
---
## 🆘 Support
**"Channel not found"**
→ Check URL is correct
→ Try @ChannelName format
**"No transcripts"**
→ Videos may not have captions
→ Wait for next fetch (3 PM daily)
**"Too many channels"**
→ Soft limit: 5 (warning at 6+)
→ Remove old: `/youtube remove [name]`
---
## ✅ Confirmation
**YouTube Research (Simple) v1.0 installed!**
**Channel:** @[CHANNEL_NAME]
**Status:** ✅ Active
**Next fetch:** 3:00 AM tomorrow
**Type `/youtube` to start researching!**
---
*Uses OnlyBots Perfected Format v2.0*
*Simple: One command, one input, automatic everything*
Copy the prompt above and paste it into your AI agent (Claude, GPT, OpenClaw, etc.)