Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:24:22 +08:00
commit 24daaa2002
11 changed files with 624 additions and 0 deletions

90
commands/yt-analyze.md Normal file
View File

@@ -0,0 +1,90 @@
---
model: claude-sonnet-4-5
allowed-tools: Task, Bash, Read, Write, WebFetch
argument-hint: <video-url> [--detailed] [--check-captions] [--quality-report]
description: Analyze YouTube video metadata and technical properties
---
# YouTube Analyze Command
Inspect and analyze a YouTube video without downloading it. Get detailed metadata, assess transcribability, check available captions, and generate quality reports.
## Arguments
**$1 (Required)**: `video-url`
The full YouTube URL to analyze. Example: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`
**Optional flags**:
- `--detailed` - Show comprehensive technical specifications (codecs, bitrates, etc.)
- `--check-captions` - Detailed inspection of available subtitle/caption tracks
- `--quality-report` - Generate quality assessment and transcription feasibility report
- `--format-options` - List all available format combinations
- `--estimate-sizes` - Estimate file sizes for each available quality
## Examples
```bash
/yt-analyze "https://www.youtube.com/watch?v=VIDEO_ID"
/yt-analyze "https://www.youtube.com/watch?v=VIDEO_ID" --detailed --check-captions
/yt-analyze "https://www.youtube.com/watch?v=VIDEO_ID" --quality-report --format-options
/yt-analyze "https://www.youtube.com/watch?v=VIDEO_ID" --detailed --estimate-sizes
```
## How It Works
The analyzer inspects the video and provides:
1. **Basic Metadata** - Title, channel, duration, view count, upload date
2. **Technical Specs** - Available codecs, resolutions, frame rates, bitrates
3. **Caption Analysis** - Available subtitles, auto-generated status, language options
4. **Access Information** - Age restrictions, geo-blocking, authentication requirements
5. **Quality Assessment** - Estimated transcription quality, audio clarity indicators
6. **Format Recommendations** - Best formats for different use cases (streaming, archival, etc.)
## Output Structure
```
Video: {Title}
Channel: {Channel Name}
Duration: {HH:MM:SS}
Published: {Date}
METADATA
- Views: {count}
- Likes: {count}
- Language: {language}
CAPTION TRACKS
- English (auto-generated)
- Spanish (user-provided)
- French (user-provided)
TECHNICAL SPECIFICATIONS
- Best video: {codec} @ {resolution}p {fps}
- Best audio: {codec} {bitrate}
- Available formats: {count}
QUALITY ASSESSMENT
- Transcription feasibility: {High/Medium/Low}
- Recommended approach: {API/Speech-to-text/Manual}
- Audio clarity: {Good/Fair/Poor}
RECOMMENDATIONS
- For download: {recommended format}
- For transcription: {recommended method}
- For streaming: {recommended quality}
```
## Tips
- Use without flags for quick overview
- Add `--quality-report` to assess transcription reliability before committing to download
- Check `--captions` to see all available subtitle options before downloading
- Use `--estimate-sizes` to plan bandwidth if internet is limited
- Detailed technical info is helpful for troubleshooting download issues
---
Invoke the video-analyzer agent to perform comprehensive video inspection and quality assessment.

70
commands/yt-download.md Normal file
View File

@@ -0,0 +1,70 @@
---
model: claude-sonnet-4-5
allowed-tools: Task, Bash, Read, Write
argument-hint: <video-url> [--format format] [--audio-only] [--quality quality]
description: Download a YouTube video with intelligent format selection
---
# YouTube Download Command
Download a YouTube video using yt-dlp with support for JavaScript-protected content, flexible format selection, and optional post-processing.
## Arguments
**$1 (Required)**: `video-url`
The full YouTube URL to download. Example: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`
**Optional flags**:
- `--format` - Format selection: `best` (default), `best-video`, `best-audio`, `mp4`, `webm`, `mkv`
- `--audio-only` - Extract audio only (creates m4a/mp3 file)
- `--quality` - Quality preference: `1080p`, `720p`, `480p`, `360p`, `auto` (default)
- `--no-js` - Disable JavaScript rendering (faster for standard videos)
- `--output-dir` - Custom output directory (default: `./downloads`)
- `--convert-to` - Convert to target format using ffmpeg (e.g., `mp3`, `wav`)
## Examples
```bash
/yt-download "https://www.youtube.com/watch?v=VIDEO_ID"
/yt-download "https://www.youtube.com/watch?v=VIDEO_ID" --format best --quality 720p
/yt-download "https://www.youtube.com/watch?v=VIDEO_ID" --audio-only --convert-to mp3
/yt-download "https://www.youtube.com/watch?v=VIDEO_ID" --format webm --quality 1080p
```
## How It Works
1. **Video Analysis** - Inspects video source and available formats
2. **Format Selection** - Recommends optimal codec/container for your use case
3. **Download** - Executes yt-dlp with JavaScript support for protected content
4. **Post-Processing** - Optionally converts format or extracts audio
5. **Validation** - Confirms successful download and file integrity
## Configuration
The downloader automatically:
- Enables JavaScript rendering for protected content
- Sets appropriate user agents and headers
- Handles throttling and rate limiting
- Embeds metadata (title, description, thumbnail)
- Creates output directory if needed
## Output
- Downloaded video file with metadata embedded
- File naming: `{Video Title}.{extension}`
- Metadata includes thumbnail, description, and upload date
- Console output shows progress, speed, and estimated time remaining
## Tips
- Use `--audio-only` for podcasts, music, or when video content isn't needed
- `--format best` auto-selects best available quality (usually 1080p60 if available)
- JavaScript rendering is enabled by default but can be disabled for speed with `--no-js`
- Conversions use ffmpeg, so ensure it's installed for audio extraction
- Downloads are stored in `./downloads` by default; change with `--output-dir`
---
Invoke the media-downloader agent to handle download operations and format optimization.

View File

@@ -0,0 +1,98 @@
---
model: claude-sonnet-4-5
allowed-tools: Task, Bash, Read, Write, WebFetch
argument-hint: <video-url> [--method method] [--language lang] [--format format] [--quality quality]
description: Fetch transcript using YouTube API or speech-to-text
---
# YouTube Fetch Transcript Command
Retrieve the transcript from a YouTube video using the fastest available method. Supports YouTube's native transcript API, fallback providers, and speech-to-text.
## Arguments
**$1 (Required)**: `video-url`
The full YouTube URL to fetch transcript from. Example: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`
**Optional flags**:
- `--method` - Retrieval method: `auto` (default), `api`, `speech-to-text`, `fallback`
- `--language` - Specific language code (e.g., `en`, `es`, `fr`). Default: auto-detect
- `--format` - Output format: `text` (default), `markdown`, `json`, `vtt`, `srt`
- `--quality` - Quality preference: `best` (default), `high`, `standard`, `draft`
- `--timestamps` - Include timestamps in transcript
- `--preserve-formatting` - Keep original formatting and paragraph breaks
- `--validate` - Check transcript completeness and quality
## Examples
```bash
/yt-fetch-transcript "https://www.youtube.com/watch?v=VIDEO_ID"
/yt-fetch-transcript "https://www.youtube.com/watch?v=VIDEO_ID" --method api --language en
/yt-fetch-transcript "https://www.youtube.com/watch?v=VIDEO_ID" --method speech-to-text --quality best
/yt-fetch-transcript "https://www.youtube.com/watch?v=VIDEO_ID" --format json --timestamps --validate
```
## Retrieval Methods
### `auto` (Default)
Intelligent fallback chain:
1. Check YouTube's native transcripts (fastest)
2. Look for manually added captions
3. Fall back to auto-generated captions
4. If no captions, use speech-to-text on downloaded video
### `api`
Direct YouTube Transcript API call - fastest if captions exist
- Works for videos with any type of captions
- Returns immediately
- High accuracy (uses existing captions)
### `speech-to-text`
Local transcription using Whisper or similar
- Works for any video with audio
- Slower but doesn't depend on captions
- Good for videos without captions
### `fallback`
Try multiple transcript providers
- YouTube API first
- Third-party providers second
- Speech-to-text as last resort
## Output Formats
- **text** - Plain text with timestamps
- **markdown** - Structured markdown with headers and formatting
- **json** - Structured JSON with timing metadata
- **vtt** - WebVTT subtitle format (for subtitles)
- **srt** - SubRip format (for subtitles)
## Quality Levels
- **best** - Use highest quality available (manual captions preferred)
- **high** - Use auto-generated captions from YouTube
- **standard** - Accept any available captions
- **draft** - Quick retrieval, may be incomplete
## Output
Returns:
- Full transcript text with optional timestamps
- Metadata: language, source (auto-generated vs. human), quality indicator
- Coverage: percentage of video covered by transcript
- Recommendations for quality or alternative methods
## Tips
- `--method auto` provides best balance of speed and quality
- For videos without captions, expect `--method speech-to-text` to take longer
- Use `--format json` for downstream processing and analysis
- Use `--format vtt` or `--format srt` to create subtitle files
- Add `--validate` to check transcript completeness before proceeding
- Use `--quality best` for important content that needs high accuracy
---
Invoke the transcript-fetcher agent to retrieve transcripts via multiple methods and ensure data quality.

59
commands/yt-transcribe.md Normal file
View File

@@ -0,0 +1,59 @@
---
model: claude-sonnet-4-5
allowed-tools: Task, Bash, Read, Write, WebFetch
argument-hint: <video-url> [--output-format format] [--summary] [--language lang]
description: Transcribe a YouTube video and extract key insights
---
# YouTube Transcribe Command
Transcribe a YouTube video, fetch the transcript, and extract key insights and summaries.
## Arguments
**$1 (Required)**: `video-url`
The full YouTube URL to transcribe. Example: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`
**Optional flags**:
- `--output-format` - Output format: `text` (default), `markdown`, `json`, `vtt`
- `--summary` - Generate a concise summary alongside full transcript
- `--language` - Specific language code (e.g., `en`, `es`, `fr`). Default: auto-detect
- `--timestamps` - Include timestamps in output
- `--speakers` - Identify and separate speaker segments
## Examples
```bash
/yt-transcribe "https://www.youtube.com/watch?v=VIDEO_ID"
/yt-transcribe "https://www.youtube.com/watch?v=VIDEO_ID" --summary --format markdown
/yt-transcribe "https://www.youtube.com/watch?v=VIDEO_ID" --language es --timestamps
/yt-transcribe "https://www.youtube.com/watch?v=VIDEO_ID" --summary --speakers
```
## How It Works
1. **Video Analysis** - Uses the video-analyzer agent to inspect the video
2. **Transcript Fetching** - Uses the transcript-fetcher agent to get the best available transcript
3. **Processing** - Uses the transcript-processor agent to format and optionally summarize
4. **Output** - Delivers transcript in your specified format
## Output
The command returns:
- Complete transcript with timestamps (if requested)
- Speaker identification and segmentation (if requested)
- Summary and key points (if requested)
- Metadata including duration, language, source quality
## Tips
- For videos without captions, the system will attempt speech-to-text transcription
- Add `--summary` to get a concise overview alongside the full transcript
- Use `--speakers` to identify who's speaking and when
- Markdown format is best for reading; JSON is best for downstream processing
---
Invoke the transcript-fetcher agent to retrieve the transcript, then use the transcript-processor agent to format and analyze it.