/PowerToysRun-VideoDownloader

PowerToysRun-VideoDownloader is a plugin for Microsoft PowerToys Run that allows you to quickly download videos from various platforms (primarily YouTube) directly from your PowerToys Run interface. Simply type dl followed by a video URL to get started.

Primary LanguageC#MIT LicenseMIT

πŸŽ₯ PowerToys Run: Video Downloader

Download Now

Latest version: v1.0.11 (x64 & ARM64) | Other versions | Changelog Demo

πŸ“Š Download Statistics

Total Downloads Latest Release Downloads

⚠️ Warning: This project is created for educational purposes only. Use of this software for downloading videos is at your own risk and responsibility. Please respect copyright laws and terms of service of the platforms you download from.

⚠️ Technical Note: Muxed streams are deprecated by YouTube and are not guaranteed to be available for every video. If possible, avoid relying on them too much and instead perform muxing manually using the provided audio-only and video-only streams.

Note: Subtitle and metadata features are disabled by default for speed. Use the "Download Video with Subtitles" option when subtitles are needed.

Plugin Logo

πŸ“₯ Video Downloader for PowerToys Run

Download videos from YouTube and 1000+ other sites directly from your keyboard

Build Status Latest Release Version Maintenance C# .NET 9 Windows 10+ x64 | ARM64 GitHub stars GitHub issues GitHub all releases License Last Commit Commit Activity PRs Welcome PowerToys Run Plugin
Download Latest Release
Supported Sites PowerToys v0.75+ Automated Builds Mentioned in Awesome PowerToys Run Plugins

πŸ“‹ Table of Contents

πŸ“ Overview

VideoDownloader is a PowerToys Run plugin that lets you download videos from the internet instantly from your keyboard. Just type dl [URL] in PowerToys Run (replace [URL] with the video URL) and start the download, no browser required!

  • Plugin ID: B8F9B9F5C3E44A8B9F1F2E3D4C5B6A7B
  • Action Keyword: dl
  • Platform: Windows 10/11 (x64, ARM64)
  • Tech: C#/.NET, WPF, PowerToys Run API

🌟 Features

  • πŸš€ One-Click Downloads - Download videos with a single command
  • πŸŽ₯ Multiple Formats - Supports both video (MP4) and audio-only (MP3) downloads
  • πŸ” Smart URL Detection - Automatically recognizes video URLs from various platforms
  • ⚑ Lightning Fast - Built with performance in mind
  • 🎨 Dark/Light Theme - Seamlessly integrates with your system theme
  • πŸ“‚ Custom Download Folder - Choose where to save your downloads
  • πŸ› οΈ No Dependencies - Auto-downloads required components
  • 🌍 1000+ Sites - Works with YouTube, Vimeo, and many more via yt-dlp

πŸ”” Quick Start

Plugin Logo
  1. Download the latest release from the Releases page
  2. Extract the ZIP file
  3. Copy the extracted folder to %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\
  4. Restart PowerToys
  5. Press Alt+Space to open PowerToys Run
  6. Type dl [URL] to download a video URL, and hit Enter!

🎬 Demo

Demo 1 Demo 2 Demo 3

πŸ“š Usage

Basic Commands

  • dl [URL] - Download a video in the best quality
Plugin Icon

Examples

dl https://www.youtube.com/watch?v=dQw4w9WgXcQ

βš™οΈ Configuration

Access settings through PowerToys Settings β†’ PowerToys Run β†’ Plugin Manager β†’ Video Downloader

Available Settings:

  • Action Keyword: Change from default dl if desired
  • Default Download Location: Set your preferred download folder
  • Audio Format: Choose between MP3, M4A, etc.
  • Video Format: Choose between MP4, MKV, etc.
  • Auto-Open Folder: Open download folder after completion

πŸ› οΈ Building from Source

Prerequisites

Build Steps

git clone https://github.com/ruslanlap/PowerToysRun-VideoDownloader.git
cd PowerToysRun-VideoDownloader
dotnet restore
dotnet build -c Release

The built plugin will be in bin\Release\net9.0-windows10.0.22621.0

🀝 Contributing

Contributions are welcome! Please submit a pull request to suggest changes.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgements

πŸ› οΈ Troubleshooting

Common Issues

  • Plugin not showing up: Ensure you've extracted to the correct folder and restarted PowerToys
  • Download fails: Check your internet connection and try again
  • Video not supported: Some sites may have restrictions
  • yt-dlp not found: The plugin will automatically download yt-dlp on first use. Make sure you have internet access
  • Slow downloads: Try a lower quality setting or check your internet connection

Getting Help

If you encounter any issues, please open an issue with the following information:

  • Video URL you're trying to download
  • Command you used (if any)
  • Any error messages received
  • Screenshots if applicable

🎨 Assets

Plugin Icons

Plugin Logo

Plugin Logo

Light Theme Icon

Light Theme Icon

Dark Theme Icon

Dark Theme Icon

All assets are available in the assets/ directory of this repository.


πŸ“ Overview

VideoDownloader is a PowerToys Run plugin that lets you download videos from YouTube and 1000+ other sites instantly from your keyboard. Just type dl followed by a video URL in PowerToys Run to start downloadingβ€”no browser required!

  • Plugin ID: 9B6621426ABD46EC9C8B30F165866711
  • Action Keyword: dl
  • Platform: Windows 10/11 (x64, ARM64)
  • Tech: C#/.NET, WPF, PowerToys Run API

✨ Features

  • ⚑ One-command video downloads from PowerToys Run
  • πŸ“Š Supports YouTube and 1000+ other video sites
  • πŸ–ΌοΈ Modern WPF UI with real-time progress and results
  • 🎨 Theme-aware (dark/light icons, adapts to system theme)
  • πŸ“ Copy/share results instantly
  • πŸ› οΈ Robust error handling and informative messages
  • πŸ§ͺ Automated tests and CI/CD (GitHub Actions)

🎬 Demo

Demo 1 Demo 2 Demo 3

πŸ”” Easy Install

  1. Download the release (x64)
  2. Download the release (ARM64)
  3. Extract to %LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Plugins\
  4. Restart PowerToys

πŸš€ Usage

  • Open PowerToys Run (Alt+Space)
  • Type dl followed by a video URL and select the download option
  • View real-time progress and detailed results
  • Click the result URL to view/share your result online

πŸ› οΈ Building from Source

  • Requires .NET 9.0 SDK and Windows 10/11
  • Clone the repo and open VideoDownloader.sln in Visual Studio
  • Build the Community.PowerToys.Run.Plugin.VideoDownloader project (x64 or ARM64)
  • Output: VideoDownloader-x64.zip or VideoDownloader-arm64.zip in the publish directory

πŸ“‚ Project Structure

VideoDownloader/
β”œβ”€β”€ Community.PowerToys.Run.Plugin.VideoDownloader/  # Plugin source code
β”œβ”€β”€ tests/                                          # Unit & integration tests
β”œβ”€β”€ publish/                                        # Build output
β”œβ”€β”€ screenshots/                                    # Demo and documentation assets
└── .github/workflows/                              # CI/CD workflows

πŸ‘₯ Contributors

Thank you to all the amazing people who have contributed to this project and create issues for bug reports and feature requests!

❓ FAQ

How do I change the download location?

You can set a custom download folder in the plugin settings. Access it through PowerToys Settings β†’ PowerToys Run β†’ Plugin Manager β†’ Video Downloader.

Which video platforms are supported?

The plugin supports YouTube, Vimeo, and 1000+ other sites through yt-dlp. See the full list of supported sites.

Does it work offline?

No, an internet connection is required to download videos.

Can I download videos in 4K quality?

Yes, if the source video is available in 4K and the platform allows it. Use the --quality 2160p parameter.

πŸ€” yt-dlp FAQ

What are the advantages of using yt-dlp over youtube-dl?

yt-dlp offers additional features and options not available in youtube-dl. It also has an active development community that ensures that bugs are quickly fixed and new features are added.

How do I install yt-dlp?

The plugin includes yt-dlp and will automatically download it on first use. For manual installation, you can download the binary from the official releases page.

Can I download videos in different formats?

Yes, you can download videos in different formats using yt-dlp. You can specify the format using command-line options or by editing the configuration file.

Is it legal to use yt-dlp to download YouTube videos?

Some content on YouTube may be copyrighted, and downloading it without permission may be illegal. Downloading videos from YouTube is against YouTube's Terms of Service. Users are responsible for ensuring they have the right to download and use the content.

Can I download entire playlists with yt-dlp?

Yes, yt-dlp lets you download entire playlists by simply pasting the playlist URL. The plugin supports this functionality automatically.

Can I download audio-only files?

Yes, use the --audio flag to download audio-only files in MP3 format.]

Is yt-dlp actively maintained?

Yes, yt-dlp is actively maintained by a team of developers who regularly release updates and bug fixes. The plugin automatically checks for yt-dlp updates.

Is there a GUI for yt-dlp?

This plugin serves as a GUI for yt-dlp, integrated directly into PowerToys Run. For standalone GUI options, consider: - yt-dlp-gui - youtube-dl-gui - yt-dlp Web UI

Can I use yt-dlp on mobile?

This plugin is designed for Windows via PowerToys Run. For mobile use, you'll need to use the command-line version of yt-dlp with a terminal emulator like Termux on Android or a-Shell on iOS.

β˜• Support

Enjoying Video Downloader? β˜• Buy me a coffee to support development:

Buy me a coffee

πŸ“„ License

MIT License. See LICENSE.

πŸ™ Acknowledgements


πŸ› οΈ Troubleshooting

  • Plugin not showing up
    Make sure you extracted the plugin to the correct folder and restarted PowerToys.
  • Download fails
    Check your internet connection and try again. Some videos may have restrictions.
  • yt-dlp not found
    The plugin will automatically download yt-dlp on first use. Make sure you have internet access.
  • Slow downloads
    Try a lower quality setting or check your internet connection.

πŸ”’ Security & Privacy

  • The plugin does not store your download history.
  • All downloads are performed directly by yt-dlp.
  • No third-party APIs or data collection beyond what yt-dlp requires.

πŸ§‘β€πŸ’» Tech Stack

  • C# / .NET 9.0
  • WPF (UI)
  • PowerToys Run API
  • yt-dlp (video downloading)
  • YoutubeExplode
  • GitHub Actions (CI/CD)

πŸ“ Changelog

v1.0.11 (Latest)

  • Added option to download videos with subtitles on demand
  • Metadata features remain disabled to improve speed and reliability

v1.0.8 βœ… PTRUN Compliant

  • πŸ”§ Fixed: All PowerToys Run linting issues (PTRUN1301, PTRUN1303, PTRUN1401, PTRUN1402)
  • πŸ“¦ Improved: Package naming follows <name>-<version>-<platform>.zip convention (removed 'v' prefix)
  • πŸ” Added: SHA256 checksums for all release packages
  • βš™οΈ Enhanced: Automatic version synchronization between plugin.json and releases
  • πŸ—‘οΈ Removed: Unnecessary PowerToys dependencies from packages
  • 🎯 Optimized: Reduced package size and improved compatibility
  • πŸš€ Enhanced: CI/CD pipeline with proper artifact validation
  • πŸ› Bug Fix: Resolved setup timeout issues
  • ⏱️ Improved: Extended download timeout to 10 minutes
  • πŸ“± Enhanced: Better user messaging during setup
  • πŸ”§ Fixed: ARM64 build compatibility

v1.0.7

  • New Feature: Added support for viewing available video formats before downloading
    • Click on "ℹ️ Video Information" to see all available formats and qualities
    • View detailed information about each available stream
    • Choose the exact format/quality you want to download

v1.0.6

  • Added support for ARM64 architecture
  • Improved plugin settings validation
  • Fixed issues with special characters in download paths
  • Added more detailed error messages for download failures

v1.0.5

  • Fixed build issues by replacing problematic Community.PowerToys.Run.Plugin.Dependencies package with standard PowerToys dependencies:
    • Added Microsoft.PowerToys.Settings.UI.Library (v0.75.0)
    • Added Wox.Plugin (v1.4.0)
  • Updated GitHub Actions workflow for proper artifact naming and build process:
    • Fixed all references from "SpeedTest" to "VideoDownloader"
    • Corrected project paths and build directories
    • Added explicit NuGet source configuration
    • Added dedicated restore step before building
  • Added proper support for both x64 and ARM64 builds
  • Fixed NuGet package references for better compatibility with PowerToys v0.75+
  • Enhanced README with additional badges, better documentation, and improved formatting
  • Updated UnitTests project to target .NET 9.0 to match the main project
  • Fixed all links and references to ensure consistency across the project

🌐 Localization

Currently, the plugin UI is in English. Localization support is planned for future releases.

Contributions for translations are welcome! If you'd like to help translate the plugin to your language, please check the Contributing Guidelines.

Plugin Logo

πŸ“Έ Demo & Screenshots

Basic Usage

Basic video download Downloading a video with default settings using the 'dl' command

Audio Download & Format Selection

Audio download and format selection Downloading audio-only (MP3) and selecting different video qualities

Advanced Features

Advanced features Using advanced features: opening download folder and changing download location

Available Video Formats

Available Video Formats View all available video formats and qualities before downloading

Theme Support

Dark Theme Icon Dark Theme Light Theme Icon Light Theme

Made with ❀️ by ruslanlap