# Youtube Hq Downloader

> Youtube Highest Quality Downloader - Download highest quality silent video and pure audio from YouTube, then merge into video with sound

- Skill: `modbender/youtube-hq-downloader` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add modbender/youtube-hq-downloader`
- Raw SKILL.md: https://api.skillmd.com/api/skills/modbender/youtube-hq-downloader/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: modbender (https://skillmd.com/u/modbender)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/modbender/youtube-hq-downloader

---


# YouTube Highest Quality Downloader

Download the highest quality silent video and pure audio from YouTube, then merge into a video with sound using ffmpeg.
从YouTube下载视频的最高清无声版本和纯音频，然后使用ffmpeg合并为有声视频。

## Features / 功能

- 🎬 Download highest quality silent video from YouTube (bestvideo) / 下载YouTube视频最高清无声版本
- 🎵 Download pure audio from YouTube (bestaudio) / 下载YouTube视频纯音频
- 🔧 Merge video and audio using ffmpeg / 使用ffmpeg合并视频和音频
- 🖥️ Runs independently, no dependencies on other skills / 独立运行，无需依赖其他技能

## Usage / 使用方法

### Quick Start

```bash
# Run the download script directly
python3 ~/clawd/skills/youtube-hq-downloader/download.py "YouTube_URL" [output_directory]
```

### Full Workflow

```bash
# 1. Enter the skill directory
cd ~/clawd/skills/youtube-hq-downloader

# 2. Create virtual environment (first run)
python3 -m venv .venv
source .venv/bin/activate
pip install yt-dlp

# 3. Run download and merge
python3 download.py "https://www.youtube.com/watch?v=xxxxx"

# Or run step by step manually
./download.sh "YouTube_URL"
```

### Manual Commands

```bash
# Activate environment
cd ~/clawd/skills/youtube-hq-downloader
source .venv/bin/activate

# Download video (highest quality, silent)
yt-dlp -f "bestvideo[ext=mp4]" "YouTube_URL" -o "%(title)s_video.%(ext)s"

# Download audio
yt-dlp -x --audio-format m4a "YouTube_URL" -o "%(title)s_audio.%(ext)s"

# Merge video and audio
ffmpeg -i "*.mp4" -i "*.m4a" -c:v copy -c:a aac -shortest "output.mp4" -y
```

## Parameters / 参数说明

### yt-dlp Video Download
- `-f "bestvideo"`: Download highest quality video format (may be WebM or MP4)
- Output template: `%(title)s_video.%(ext)s`

### yt-dlp Audio Download
- `-x`: Extract audio
- `--audio-format m4a`: Output as M4A format

### ffmpeg Merge
- `-i "video.mp4" -i "audio.m4a"`: Input files
- `-c:v copy`: Copy video stream, no re-encoding
- `-c:a aac`: Convert audio to AAC encoding
- `-shortest`: Use shorter duration
- `-y`: Overwrite output file

## Dependencies / 依赖

- **ffmpeg**: Video processing tool (macOS: `brew install ffmpeg`)
- **Python 3.8+**: Runtime environment
- **yt-dlp**: Will be auto-installed on first run

## Auto Install / 自动安装

The script will automatically detect and use system-installed yt-dlp. If not found:

```bash
# Manual install yt-dlp
pip install yt-dlp

# Or use uv
pip install uv && uv pip install yt-dlp
```

## FAQ / 常见问题

### Q: Downloaded video has no sound?
A: This is normal. Using `bestvideo` only downloads the video track. You need to download audio separately and merge.

### Q: Video resolution is too low?
A: YouTube may have regional or quality restrictions on certain videos. Try other formats like `best` instead of `bestvideo`.

### Q: ffmpeg error "No such file"?
A: Make sure ffmpeg is installed: `brew install ffmpeg`

### Q: How to specify output directory?
A: Pass the second parameter as output directory when running the script, or modify the OUTPUT_DIR variable in the script.

