← Back to Skills Marketplace
benmillerat

YouTube Archiver

by Ben Miller · GitHub ↗ · v1.0.0
cross-platform ⚠ pending
329
Downloads
1
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install youtube-archiver
Description
Archive YouTube playlists into markdown notes with metadata, transcripts, AI summaries, and tags. Use when a user asks to import/sync YouTube playlists, arch...
Usage Guidance
This skill appears to do what it says, but it legitimately needs sensitive access in two places: (1) browser cookie access to fetch private playlists (on macOS the terminal may need Full Disk Access to read Chrome cookies) and (2) optional API keys for summaries/tags (the skill will read the env var name you place in .config.json). Before installing or running: review the scripts locally (they are included), prefer exporting cookies to a cookies.txt file rather than granting broad Full Disk Access when possible, run a dry-run first, and only provide API env var names that you intend the skill to use (avoid reusing env var names holding unrelated secrets). If you want to avoid remote providers, set provider to "none" or use a local provider such as Ollama. If you are uncertain, run the scripts in an isolated environment (container or VM) and inspect network activity during an initial run.
Capability Analysis
Type: OpenClaw Skill Name: youtube-archiver Version: 1.0.0 The skill is classified as **benign**. The skill's purpose is to archive YouTube playlists, which inherently involves interacting with YouTube (potentially requiring authentication via browser cookies) and processing video data. The code uses `yt-dlp` for video metadata and transcript extraction, and `urllib.request` for interacting with various LLM providers for summarization and tagging. Key observations supporting this classification: 1. **Transparency and Stated Purpose:** Both `SKILL.md` and `README.md` clearly describe the skill's functionality, requirements (e.g., Python, `yt-dlp`), and potential system permissions needed (e.g., macOS Full Disk Access for browser cookies). The instructions for the AI agent in `SKILL.md` are direct and align with the stated purpose, showing no signs of prompt injection attempts to mislead the agent or exfiltrate data. 2. **Secure Command Execution:** The `yt_utils.py` script uses `subprocess.run` to execute external commands (`yt-dlp`, `summarize`). Crucially, these commands are consistently passed as a list of arguments (e.g., `["yt-dlp", "--cookies-from-browser", browser_name]`), which prevents shell injection vulnerabilities. 3. **API Key Handling:** LLM API keys are retrieved from environment variables (`os.environ.get`), which is a secure practice that avoids hardcoding sensitive credentials. 4. **Path and File Handling:** User-controlled output directories are processed with `Path(...).expanduser().resolve()`, and video titles used in filenames are sanitized with `sanitize_filename` to mitigate path traversal risks for file creation. 5. **No Malicious Intent:** There is no evidence of intentional data exfiltration (e.g., reading sensitive system files like `~/.ssh`, `~/.aws`, or `os.environ` and sending them to unauthorized endpoints or LLMs), unauthorized persistence (beyond the stated cron job automation for the skill's own scripts), or obfuscation. The LLM prompts are constructed from video transcripts, not sensitive system data. While the skill requires access to browser cookies (via `yt-dlp`) and executes external commands, these are necessary for its legitimate function and are implemented with reasonable security practices. The transparency about these capabilities and the lack of malicious intent make it benign.
Capability Assessment
Purpose & Capability
Name/description match the implementation: scripts import playlists (yt-dlp), create markdown notes, add transcripts, and optionally call LLM providers for summaries/tags. The README, SKILL.md, and scripts reference the same workflow and configuration keys (playlists, browser, cookies_file, provider blocks). Requiring browser cookies / yt-dlp is coherent for private-playlist support.
Instruction Scope
Runtime instructions ask the agent/user to run the provided Python scripts, set an output directory, and (optionally) provide API provider config. They also instruct using browser cookie access (or cookies.txt export) to authenticate to YouTube and to grant macOS Full Disk Access to read Chrome cookies. That is within scope for importing private playlists, but it is a sensitive operation (accessing browser cookie stores). The instructions are explicit rather than open-ended (they don't instruct sweeping system enumeration).
Install Mechanism
No install spec; this is an instruction + script bundle. It uses yt-dlp (external dependency) and Python stdlib only. Not pulling code from arbitrary URLs or adding system-wide installers. Risk level is typical for a script-based skill that expects local dependencies to be present.
Credentials
The skill declares no required environment variables, which matches the metadata. The configuration supports optional API provider keys via an api_key_env name (e.g., OPENAI_API_KEY). This is proportional: summaries/tags require provider keys, but the agent will only use environment variables whose names the user supplies in config. Be aware that the skill will read whichever env var name you place in .config.json, so do not point it at unrelated secrets.
Persistence & Privilege
The skill is not always-enabled and uses only per-output-directory state (.config.json, .yt-archiver.lock, .sync-state.json). It does not request platform-wide privileges beyond reading browser cookies (which is a user-granted OS/browser-level permission) and does not modify other skills or global agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install youtube-archiver
  3. After installation, invoke the skill by name or use /youtube-archiver
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release
Metadata
Slug youtube-archiver
Version 1.0.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is YouTube Archiver?

Archive YouTube playlists into markdown notes with metadata, transcripts, AI summaries, and tags. Use when a user asks to import/sync YouTube playlists, arch... It is an AI Agent Skill for Claude Code / OpenClaw, with 329 downloads so far.

How do I install YouTube Archiver?

Run "/install youtube-archiver" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is YouTube Archiver free?

Yes, YouTube Archiver is completely free (open-source). You can download, install and use it at no cost.

Which platforms does YouTube Archiver support?

YouTube Archiver is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created YouTube Archiver?

It is built and maintained by Ben Miller (@benmillerat); the current version is v1.0.0.

💬 Comments