Yt-Dlp extension for Microsoft PowerToys Command Palette
Video Downloader for Command Palette is a PowerToys extension designed to enable seamless video downloads directly from the Command Palette interface. Built on yt-dlp, it simplifies downloading videos, audio, playlists, captions, and subtitles from hundreds of supported websites.
Key Features:
Download videos, audio, and playlists in various formats with customizable output settings.
Manage output directories, set formats, and monitor download progress directly within the interface.
Trim videos by setting start and end times before downloading.
Support for captions and subtitles download when available.
Partial support for livestream downloads.
Audience & Benefit:
Ideal for users of Microsoft PowerToys who prefer a streamlined approach to video content management. This tool offers efficiency by integrating yt-dlp functionality directly into the Command Palette, eliminating the need to open additional apps or navigate complex interfaces.
The extension requires PowerToys v0.90 or later and can be installed via winget for easy setup.
README
Video Downloader
For PowerToys
<b>A Command Palette extension for downloading videos and playlists using yt-dlp</b>
> [!NOTE]
> This extension is currently in development, and is my first experience with the language.
> Bugs are expected
π Effortless Video Downloads with PowerToys!
Download and trim videos, audios, playlists, captions and subtitles directly from the PowerToys Command Palette using yt-dlp.
Simplified management: Choose output directories, set formats, and monitor progress directly from the interface.
Parallel download: Download each video format individually with progress tracking.
Quick audio download: Download audio with a single command.
Playlist download support!
Video trimming: Trim videos by setting start and end times before download
Captions and subtitles: Download auto-captions or subtitles from a video
Customized output format and merging support
Quick merging using yt-dlp's format selector expressions
Partial Livestream download support
π¦ Requirements
PowerToys v0.90 or later
Install with:
winget install "Microsoft.PowerToys"
yt-dlp (any version, recommended: Latest)
> [!NOTE]
> If yt-dlp is not installed, the extension will show an error message and offer an option to Install yt-dlp (winget)
> You can also install it manually:
Download location: the destination directory to download (default: User Downloads folder)
Video Output format: the output format (Container) of all downloaded videos (default: mp4)
Audio Output format: the output format of all downloaded audios (default: mp3)
Custom format selector: sets a custom yt-dlp format selector expression string. If a custom string is set, the audio and video output setting will be ignored. (default: blank)
Download on Paste: When a custom format selector is set, and this option is checked, the download will start automatically when pasting an URL. (default unchecked)
cookies.txt file location: the location of your exported cookies file. (default: blank)
> [!TIP]
> Leave Custom format selector blank if you don't need a specific video or audio codec
> Editing software like Premiere, After Effects, DaVinci Resolve, may not recognize videos encoded with VP9 or AV1, prefer videos encoded with AVC1 for broader compatibility.
πΉοΈ Modes
π Simple
It will only show available resolutions, making it easier to download without worrying about the technical details of the video.
> [!TIP]
> Download videos without worrying with codecs. (This mode will always prefer compatibility over quality)
π οΈ Advanced
This mode has all the features enabled such as QuickMerge and the full list of available formats and metadata of each format.
π How to use
Playlist
Paste an YouTube Playlist URL or a Videos Tab URL from a channel.
Wait the data to be fetched (can take longer depending of the playlist video count).
Click the first item on the list Download full playlist
On the Playlist Download Page, you can:
Select a resolution (if available for the video).
Set the start and end video.
Check if you want just the audio.
Or set a custom format selector by clicking Advanced Options
Click Download to start
Parallel Downloads
Each download runs independently.
You can download different formats, videos, audios β and monitor each download's progress in real time.
> [!WARNING]
> The only limitation applies to video trimming and livestreams, since FFmpeg cannot handle multiple simultaneous m3u8 streams.
QuickMerge
Once the list of available formats appears, you can select the formats you want to merge using the format ID present in each item in the list, typed in the URL input. For example 299+140-drc.
Alternatively, you can select a video and an audio using the Select Command in the Context menu button (3 dots).
> [!NOTE]
> This feature will only work if you select exactly one video format and one audio format
Video Trimming
Select any video format from the list, click the 3 dots on the bottom right and select Trim Video.
Set the start and end times (hh:mm:ss) and click download. This yt-dlp feature will basically watch the video and most of the time it will take the same amount of time to complete the download.
> [!TIP]
> In Advanced Mode you can make a custom selection by selecting 1 audio and 1 video with the Select Command before clicking Trim Video
Captions and Subtitles
If available for the video, both options will be displayed on the Context menu on the bottom right.
Livestreams
Currently, there's a partial support for livestreams.
Paste and Livestream URL
Select the format and click download
You'll be prompted with a message saying that a terminal window will open.
The download will start and you have to manually interrupt the process with a Ctrl + C to close the file
Cookies
Since --cookies-from-browser flag is not working on Windows (see),
the only way to download videos that require authentication, is to export and pass a cookies.txt file to yt-dlp, here is how to do it.
π€ Contributing
This is my first open source project, so I'm especially open to feedback, ideas, and contributions.
Feel free to share suggestions or improvements!
πΌ TODO
Fully implement QuickMerge feature
Implement the trimming form page
Implement captions and subtitle download
Code clean-up
Refactor and Restructure
Add a context command to download the video thumbnail