youtube-downloader
by ComposioHQyoutube-downloader is a File Automation skill for saving single YouTube videos or extracting MP3 audio with a Python yt-dlp wrapper. It supports quality choices, mp4/webm/mkv formats, audio-only mode, and custom output folders.
This skill scores 74/100, which means it is acceptable for directory listing but should be presented as a practical, narrowly scoped utility with adoption cautions. Directory users get enough evidence to understand when to install it and how an agent would call it, though dependency handling, policy/rights guidance, and edge-case documentation are limited.
- Clear trigger and scope: the frontmatter tells agents to use it when users ask to download, save, or grab YouTube videos.
- Provides an executable script plus quick-start command, default output path, and examples for quality, format, audio-only, and custom output directory options.
- Operational leverage is higher than a generic prompt because the script wraps yt-dlp commands and exposes simple CLI flags for common download choices.
- No install command or dependency notes in SKILL.md; the script auto-installs yt-dlp with pip using --break-system-packages, which may be unsuitable in some environments.
- The documentation does not mention YouTube terms, copyright, authentication, playlists, failures, or other edge cases, so agents may need extra judgment for non-simple downloads.
Overview of youtube-downloader skill
What this youtube-downloader skill does
The youtube-downloader skill is a File Automation skill for saving YouTube videos or extracting MP3 audio through a small Python wrapper around yt-dlp. It is best for users who want an agent to handle a concrete download request with clear options: source URL, output folder, video quality, container format, or audio-only mode.
Best-fit users and jobs
Use this skill when you need repeatable, local file output rather than a conversational explanation of how downloading works. It fits workflows such as archiving permitted videos, preparing offline review files, saving reference clips for internal work, or extracting audio from a video you have the right to download. It is especially useful when the agent can run shell commands and write to /mnt/user-data/outputs/ or another specified directory.
Key capabilities and boundaries
The skill supports best, 1080p, 720p, 480p, 360p, and worst quality settings; mp4, webm, and mkv video formats; and MP3 audio extraction with --audio-only. It is not a playlist manager, metadata editor, caption workflow, or media library organizer. The script calls yt-dlp with --no-playlist, so users should expect one video URL per run unless they modify the implementation.
Adoption considerations
The main value over a generic prompt is that the skill already provides executable commands and a scripts/download_video.py helper. The main blocker is runtime environment: Python must be available, downloads must be allowed, and yt-dlp must either be installed or installable by the script. Audio extraction may also depend on media tooling such as ffmpeg, depending on the environment and yt-dlp behavior.
How to Use youtube-downloader skill
youtube-downloader install context
Install the skill from the repository path:
npx skills add ComposioHQ/awesome-claude-skills --skill video-downloader
Then inspect the two important files first: SKILL.md for supported options and scripts/download_video.py for the actual execution behavior. The script is the source of truth for defaults: output path /mnt/user-data/outputs, default quality best, default format mp4, and MP3 output when audio-only mode is enabled.
Inputs the skill needs
A good youtube-downloader usage request should include:
- The exact YouTube URL
- Whether you want video or audio only
- Preferred quality, such as
720porbest - Preferred video format, such as
mp4orwebm - Output directory if the default is not acceptable
- Any legal or operational constraint, such as “download only this single video”
Minimal prompt:
Download this YouTube video as MP4 in best quality:
https://www.youtube.com/watch?v=VIDEO_ID
Stronger prompt:
Use the youtube-downloader skill to download only this single video:
https://www.youtube.com/watch?v=VIDEO_ID. Save it asmp4, target720p, and put the result in/mnt/user-data/outputs/project-a/. If the requested quality is unavailable, use the closest lower quality and tell me the final file path.
Practical commands and workflow
The direct command pattern is:
python scripts/download_video.py "https://www.youtube.com/watch?v=VIDEO_ID"
Common variants:
python scripts/download_video.py "URL" -q 1080p -f mp4
python scripts/download_video.py "URL" -q 720p -f webm -o /mnt/user-data/outputs/videos
python scripts/download_video.py "URL" -a -o /mnt/user-data/outputs/audio
A reliable workflow is: confirm the URL, choose output type, run one download, verify the created file path, then adjust quality or format only if the output is too large, incompatible, or unavailable.
Tips for better File Automation results
For youtube-downloader for File Automation, avoid vague requests like “grab that video.” Provide the URL and target result in one message. If compatibility matters, choose mp4; if file size matters, use 720p, 480p, or audio-only. If the environment is locked down, ask the agent to check yt-dlp --version before downloading so dependency failures are caught early.
youtube-downloader skill FAQ
Is this better than asking an AI to download a video?
Yes, when tool execution is available. A generic prompt may explain yt-dlp; this skill gives the agent a concrete script, accepted flags, and a default output location. That reduces guesswork and makes youtube-downloader usage more consistent across repeated requests.
What does youtube-downloader install actually add?
The install adds the skill instructions and the helper script at scripts/download_video.py. The script checks for yt-dlp and attempts to install it with Python pip if missing. It does not bundle YouTube content, bypass access controls, or replace the need for a working command-line environment.
Can beginners use this skill?
Yes, if they can provide a valid YouTube URL and choose simple options such as mp4 and 720p. Beginners should start with the default command, then add -q, -f, -a, or -o only when they know what they want to change.
When should I not use it?
Do not use this skill for content you do not have permission to download, for DRM-protected or restricted content, or for workflows that require playlists, captions, bulk queues, naming templates, or post-processing. In those cases, treat this as a starting script rather than a complete media automation system.
How to Improve youtube-downloader skill
Improve youtube-downloader prompts
Better prompts produce better automation. Include the desired result, not just the action:
Download the video at
URLasmp4in720p, save it to/mnt/user-data/outputs/client-review/, and report the final filename and size.
This helps the agent select the right flags and verify the output instead of merely running the default.
Handle common failure modes
Likely failures include unavailable requested quality, missing yt-dlp, missing ffmpeg for MP3 extraction, blocked network access, invalid URLs, and write permission errors in the output directory. Ask the agent to surface the exact command and error message when a download fails; that makes iteration faster than retrying with the same vague request.
Add stronger output controls
If you plan to rely on this skill often, consider improving scripts/download_video.py with filename templates, overwrite protection, file existence checks, duration limits, and clearer success output. These changes matter because users usually care less about “download started” and more about where the file landed, whether it is playable, and whether it matches the requested quality.
Iterate after the first output
After the first run, inspect the file path, extension, size, and playback compatibility. If the file is too large, rerun with 720p or 480p. If it will be shared broadly, prefer mp4. If only speech or music is needed, rerun with --audio-only. This keeps the youtube-downloader guide practical: start with a successful file, then optimize format and quality.
