skills/community/youtube-full/SKILL.md
YouTube: video management, transcript extraction, channel analytics, comments, playlists, upload
npx skillsauth add alphaonedev/openclaw-graph youtube-fullInstall 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.
This skill provides tools for interacting with YouTube's API to handle video management, transcript extraction, channel analytics, comments, playlists, and uploads, enabling automation in scripts or applications.
Use this skill for tasks involving YouTube data, such as fetching video transcripts in content analysis, uploading user-generated videos, analyzing channel performance for reports, or managing playlists in media apps. Apply it when Google API access is available and tasks require real-time data extraction or manipulation.
Invoke this skill via function calls in your AI agent's code, passing required parameters like video IDs or API keys. Always check for authentication first by setting $YOUTUBE_API_KEY as an environment variable. For example, structure requests in a loop for batch operations, like processing multiple video transcripts. Use JSON payloads for POST requests and query parameters for GET requests. Handle rate limits by adding delays between API calls, e.g., sleep for 1 second after every 10 requests.
import requests; import os
api_key = os.environ.get('YOUTUBE_API_KEY')
response = requests.get(f'https://www.googleapis.com/youtube/v3/videos?part=snippet&id=VIDEO_ID&key={api_key}')
data = response.json()
Integrate by importing the skill in your AI agent's codebase and ensuring $YOUTUBE_API_KEY is set in the environment for OAuth or API key authentication. Use a config file like JSON for storing endpoint defaults, e.g., {"base_url": "https://www.googleapis.com/youtube/v3"}. For secure handling, avoid hardcoding keys; instead, use libraries like google-auth in Python. If using OAuth, redirect users for token exchange, but for simple API access, $YOUTUBE_API_KEY suffices. Test integrations in a sandbox environment to avoid quota exceedance.
Check HTTP status codes in responses; for example, if status == 403, log "Quota exceeded" and retry after a delay. Handle specific YouTube errors like invalid video IDs (error code 404) by validating inputs before requests. Use try-except blocks in code for network issues:
try:
response = requests.get(url)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(f"Error: {err} - Check API key or parameters")
Implement exponential backoff for rate limit errors (e.g., 403 with quota message), waiting 2^x seconds before retrying up to 3 times. Log all errors with context, such as the API endpoint and parameters used.
tools
Root web development: project structure, tooling selection, deployment decisions
development
WebAssembly: Rust/Go/C to WASM, wasm-bindgen, Emscripten, WASM Component Model
development
Vue 3: Composition API script setup, Pinia, Vue Router 4, SFCs, Vite, Nuxt 3
tools
Tailwind CSS 4: utility classes, config, JIT, arbitrary values, darkMode, plugins, shadcn/ui