atris/skills/youtube/SKILL.md
Process YouTube videos — extract insights, answer questions, store as knowledge. 5 credits per video. Triggers on: youtube, video, process video, watch this, learn from video.
npx skillsauth add atrislabs/atris youtubeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Process any YouTube video through Gemini's native video API. No transcript scraping — it sees the actual video (visual + audio). 5 credits per video, refunded if processing fails.
#!/bin/bash
set -e
# 1. Check atris CLI
if ! command -v atris &> /dev/null; then
echo "Installing atris CLI..."
npm install -g atris
fi
# 2. Check login
if [ ! -f ~/.atris/credentials.json ]; then
echo "Not logged in. Run: atris login"
exit 1
fi
# 3. Extract token
if command -v node &> /dev/null; then
TOKEN=$(node -e "console.log(require('$HOME/.atris/credentials.json').token)")
elif command -v python3 &> /dev/null; then
TOKEN=$(python3 -c "import json,os; print(json.load(open(os.path.expanduser('~/.atris/credentials.json')))['token'])")
elif command -v jq &> /dev/null; then
TOKEN=$(jq -r '.token' ~/.atris/credentials.json)
else
echo "Error: Need node, python3, or jq to read credentials"
exit 1
fi
# 4. Auth check
STATUS=$(curl -s "https://api.atris.ai/api/me" \
-H "Authorization: Bearer $TOKEN")
if echo "$STATUS" | grep -q "Token expired\|Not authenticated\|Unauthorized"; then
echo "Token expired. Run: atris login --force"
exit 1
fi
echo "Ready. YouTube skill active (5 credits per video)."
export ATRIS_TOKEN="$TOKEN"
Base: https://api.atris.ai/api
Auth: -H "Authorization: Bearer $TOKEN"
TOKEN=$(node -e "console.log(require('$HOME/.atris/credentials.json').token)")
curl -s -X POST "https://api.atris.ai/api/agent/process_youtube" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"youtube_url": "https://www.youtube.com/watch?v=VIDEO_ID",
"query": "What are the key takeaways?"
}'
Parameters:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| youtube_url | string | yes | Any YouTube URL |
| query | string | no | Question to focus the analysis on |
| agent_id | string | no | Agent ID to store analysis in its knowledge base |
| store_as_knowledge | bool | no | Save to agent's knowledge (requires agent_id) |
Response:
{
"status": "success",
"message": "YouTube video processed successfully",
"youtube_url": "https://www.youtube.com/watch?v=...",
"video_analysis": "This video covers...",
"stored_as_knowledge": false,
"credits_used": 5,
"credits_remaining": 95,
"metadata": {
"title": "Video Title",
"channel": "Channel Name"
}
}
curl -s -X POST "https://api.atris.ai/api/agent/process_youtube" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"youtube_url": "https://www.youtube.com/watch?v=...",
"query": "Extract the main arguments and evidence",
"agent_id": "YOUR_AGENT_ID",
"store_as_knowledge": true
}'
POST /api/agent/process_youtube with {youtube_url, query: "What are the key lessons and insights?"}{youtube_url, query: "What does this say about X?"}VIDEOS=(
"https://youtube.com/watch?v=AAA"
"https://youtube.com/watch?v=BBB"
)
for url in "${VIDEOS[@]}"; do
echo "Processing: $url"
curl -s -X POST "https://api.atris.ai/api/agent/process_youtube" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"youtube_url\": \"$url\", \"query\": \"Key insights and takeaways\"}"
echo ""
done
curl -s "https://api.atris.ai/api/agent/my-agents" -H "Authorization: Bearer $TOKEN"{youtube_url, agent_id: "...", store_as_knowledge: true}One Gemini call. The YouTube URL goes directly to Gemini's native multimodal API — it processes the actual video frames and audio, not just a transcript. This means it can describe visuals, read slides, understand demos, and catch things transcripts miss.
| Error | Meaning | Fix |
|-------|---------|-----|
| 401 | Token expired/invalid | atris login --force |
| 402 | Not enough credits | Check balance, purchase at atris.ai |
| 400 | Invalid YouTube URL | Check URL format |
| 502 | Gemini failed | Retry — credits auto-refunded |
# Setup (once)
npm install -g atris && atris login
# Get token
TOKEN=$(node -e "console.log(require('$HOME/.atris/credentials.json').token)")
# Process a video
curl -s -X POST "https://api.atris.ai/api/agent/process_youtube" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"youtube_url": "https://youtube.com/watch?v=...", "query": "Summarize this"}'
# Process + store to agent knowledge
curl -s -X POST "https://api.atris.ai/api/agent/process_youtube" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"youtube_url": "https://youtube.com/watch?v=...", "agent_id": "YOUR_ID", "store_as_knowledge": true}'
testing
Detects AI slop and fixes it, especially in memos, docs, READMEs, messages, PRDs, and other written output. Based on Wikipedia's AI Cleanup patterns plus memo-specific anti-slop rules. Triggers on "copy edit", "review writing", "humanize", "deslopper", "ai patterns", "make it sound human", "AI slop", "anti-slop", "memo".
tools
Use when an agent needs to inspect or send local macOS iMessage through Atris CLI. Triggers on iMessage, Messages.app, local text messages, chat.db, or texting someone from the user's Mac.
databases
Submit, list, resolve, close, or delete Atris customer feedback. Use when user types /feedback or asks to triage the feedback queue.
development
Fast research sweep — arxiv, semantic scholar, github, web. Finds papers, scores relevance, extracts actionable insights, stores to wiki. Triggers on: research search, find papers, latest research, arxiv, what's new in, sweep papers, research sweep.