Skip to content

feat: add /yt-dlp slash command#233

Merged
marcusquinn merged 1 commit intomainfrom
feature/yt-dlp-command
Jan 26, 2026
Merged

feat: add /yt-dlp slash command#233
marcusquinn merged 1 commit intomainfrom
feature/yt-dlp-command

Conversation

@marcusquinn
Copy link
Copy Markdown
Owner

@marcusquinn marcusquinn commented Jan 26, 2026

Summary

  • Add /yt-dlp slash command for OpenCode (auto-discovered from scripts/commands/yt-dlp.md)
  • Wraps yt-dlp-helper.sh with auto-detection of URL type and pass-through options
  • Supports: /yt-dlp <url>, /yt-dlp audio <url>, /yt-dlp transcript <url>, /yt-dlp convert <path>, /yt-dlp status, etc.

Follows up on PR #232 which added the agent and helper script.

Summary by CodeRabbit

  • Documentation
    • Added comprehensive documentation for yt-dlp helper functionality, including workflow steps, supported subcommands (video, audio, playlist, channel, transcript, and more), passthrough options, and usage examples for various download scenarios.

✏️ Tip: You can customize this high-level summary in your review settings.

Auto-discovered command that wraps yt-dlp-helper.sh with auto-detection
of URL type (video/playlist/channel) and pass-through options.
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the system's media handling capabilities by integrating yt-dlp through a new, user-friendly slash command. It streamlines the process of acquiring online media by providing an intuitive interface that supports a wide range of download and conversion options, including intelligent URL type detection and dependency management. This addition builds upon previous work, making yt-dlp more accessible and powerful for users.

Highlights

  • New Slash Command Added: Introduced the /yt-dlp slash command, allowing users to download media from YouTube and other supported sites directly within OpenCode. This command is auto-discovered from the new yt-dlp.md file.
  • Enhanced Functionality and Auto-detection: The new command provides comprehensive functionality, including auto-detection of URL types (video, playlist, channel), and supports various operations such as downloading video/audio, extracting transcripts, converting local files, and checking installation status. It wraps the existing yt-dlp-helper.sh script.
  • Flexible Options and Examples: Users can pass through various options like --output-dir, --format, --cookies, and --sub-langs. The command documentation includes clear examples for common use cases, making it easy to get started.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Jan 26, 2026

Walkthrough

This pull request introduces agent documentation for the yt-dlp helper, detailing workflow steps, supported subcommands, passthrough options, and practical usage examples for video/audio downloads, playlists, transcripts, and conversions via a subagent interface.

Changes

Cohort / File(s) Summary
Agent Documentation
\.agent/scripts/commands/yt-dlp.md
New markdown documentation describing yt-dlp subagent workflow (Parse Arguments, Check Dependencies, Execute Download, Report Results), 10 supported subcommands, 7 passthrough options, dependency checks for yt-dlp and ffmpeg, and 8 usage examples covering auto-detection, audio extraction, 4K downloads, playlists, transcripts, and authentication scenarios

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Poem

🎬 A blueprint blooms for video's quest,
Eight examples guide the very best,
▶️ Playlists, transcripts, audio divine—
yt-dlp docs now crystalline!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a new /yt-dlp slash command. It directly matches the changeset which introduces documentation for this command.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new /yt-dlp slash command by adding a markdown file that defines its behavior for an agent. The documentation is comprehensive and well-structured, with clear examples for various use cases. I've provided a few suggestions to enhance the clarity and precision of the descriptions for the audio, convert, and config subcommands to ensure the documentation is as unambiguous as possible for users.

```text
/yt-dlp <url> → Auto-detect (video/playlist/channel)
/yt-dlp video <url> [options] → Download video
/yt-dlp audio <url> [options] → Extract audio (MP3)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The description for the audio subcommand states it extracts audio as MP3. While this might be the default format, yt-dlp can extract to other formats like m4a, opus, etc., as indicated in the --format option and other examples. To be more general and avoid potential confusion, I suggest removing the specific format from this description.

Suggested change
/yt-dlp audio <url> [options] → Extract audio (MP3)
/yt-dlp audio <url> [options] → Extract audio

/yt-dlp channel <url> [options] → Download channel
/yt-dlp transcript <url> [options] → Download subtitles only
/yt-dlp info <url> → Show video info
/yt-dlp convert <path> [options] → Extract audio from local file(s)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The description for the convert command is slightly ambiguous. It says it processes "local file(s)", but the argument is <path>, which typically refers to a single file path. To improve clarity, please specify if the command handles single or multiple files. If it only handles a single file, I suggest changing the description to "Extract audio from a local file".

Suggested change
/yt-dlp convert <path> [options] → Extract audio from local file(s)
/yt-dlp convert <path> [options] → Extract audio from a local file

/yt-dlp convert <path> [options] → Extract audio from local file(s)
/yt-dlp install → Install yt-dlp + ffmpeg
/yt-dlp status → Check installation
/yt-dlp config → Generate default config
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The config subcommand is listed with the description "Generate default config", but there's no further explanation of its behavior. It would be beneficial for users to understand what this command does, for instance, whether it prints the config to stdout or creates a file. Please consider adding more details to this description or including an example of its usage.

@github-actions
Copy link
Copy Markdown
Contributor

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 457 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Mon Jan 26 01:10:52 UTC 2026: Code review monitoring started
Mon Jan 26 01:10:53 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 457
Mon Jan 26 01:10:53 UTC 2026: Qlty - 0 issues found, auto-formatting applied
Mon Jan 26 01:10:55 UTC 2026: Codacy analysis completed with auto-fixes

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 457
  • VULNERABILITIES: 0

Generated on: Mon Jan 26 01:12:19 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Jan 26, 2026

🤖 Augment PR Summary

Summary: Adds a new OpenCode slash command, /yt-dlp, auto-discovered from .agent/scripts/commands/yt-dlp.md.
Changes:

  • Introduces a workflow-style command doc that parses subcommands and auto-detects URL types (video/playlist/channel).
  • Routes actions (video/audio/playlist/channel/transcript/info/convert/install/status/config) through yt-dlp-helper.sh.
  • Documents dependency checks and an install flow for missing yt-dlp / ffmpeg.
  • Defines supported pass-through options and provides usage examples.
Technical Notes: Intended as a follow-up to PR #232, leveraging the existing helper script for the actual downloads/conversion behavior.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 1 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

| Option | Description |
|--------|-------------|
| `--output-dir <path>` | Custom output directory |
| `--format <fmt>` | Format: `4k`, `1080p`, `720p`, `480p`, `mp3`, `m4a`, `opus`, `wav`, `flac` |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The --format table lists wav/flac, but in yt-dlp-helper.sh those values are only handled by the convert command; using them with audio/video will likely fail (e.g., -f flac). Consider clarifying which --format values apply per subcommand to avoid misleading usage.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

@marcusquinn marcusquinn merged commit ac9df67 into main Jan 26, 2026
20 of 21 checks passed
@marcusquinn marcusquinn deleted the feature/yt-dlp-command branch January 26, 2026 01:13
alex-solovyev added a commit that referenced this pull request Mar 13, 2026
…, and format applicability

Address PR #233 review feedback (GH#3781):
- audio: remove hardcoded 'MP3' — format is configurable via --format
- convert: clarify accepts a single file or a directory of video files
- config: specify output path (~/.config/yt-dlp/config) instead of vague 'Generate default config'
- --format table: note wav/flac are convert-only; audio/video subcommands do not support them

Closes #3781
alex-solovyev added a commit that referenced this pull request Mar 13, 2026
…, and format applicability (#4436)

Address PR #233 review feedback (GH#3781):
- audio: remove hardcoded 'MP3' — format is configurable via --format
- convert: clarify accepts a single file or a directory of video files
- config: specify output path (~/.config/yt-dlp/config) instead of vague 'Generate default config'
- --format table: note wav/flac are convert-only; audio/video subcommands do not support them

Closes #3781
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant