Skip to content

Extension to download videos using yt-dlp directly from PowerToys Command Palette.

License

Notifications You must be signed in to change notification settings

DevLGuilherme/CmdPal-VideoDownloader

Repository files navigation

Logo

Video Downloader

For PowerToys


A Command Palette extension for downloading videos and playlists using yt-dlp

GitHub Downloads (all assets, all releases) GitHub Downloads (all assets, latest release)
SneakPeek

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.

demo

✨ Key Features

  • Download videos from hundreds of websites (supported websites).
  • 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

πŸ“¦ Installation and Requirements

Requirements

  1. PowerToys v0.90 or later
    Install with:
    winget install "Microsoft.PowerToys"
  2. yt-dlp (any version, recommended: Latest)
    Install with:
    winget install "yt-dlp.yt-dlp"

Note

If yt-dlp is not installed, the extension will show an error message and offer an option to Install yt-dlp (winget)

Installation Methods

Microsoft Store

Install from the Microsoft Store's CmdPal Video Downloader page

Winget

You can install the extension through windows package manager (winget) with the following command:

winget install "DevLG.CmdPalVideoDownloader"

GitHub with MsiX

Go to the releases page, click on Assets at the bottom to show the files available in the release and download the installer for your specific platform.

Description Filename
x64 DevLG.VideoDownloaderforCommandPalette_0.0.9.0_x64.Msix
ARM64 DevLG.VideoDownloaderforCommandPalette_0.0.9.0_arm64.Msix

βš™οΈ Settings

  • Mode: Two modes are available Simple and Advanced (default: Simple)
  • 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)
  • Embed thumbnail: Embeds thumbnail into the file's metadata. (default checked)
  • 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)

trim video

πŸ› οΈ Advanced

This mode has all the features enabled such as QuickMerge and the full list of available formats and metadata of each format.

trim video

πŸ‘‰ How to use

Playlist

  1. Paste an YouTube Playlist URL or a Videos Tab URL from a channel.
  2. Wait the data to be fetched (can take longer depending of the playlist video count).
  3. Click the first item on the list Download full playlist
  4. 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
  5. Click Download to start

Parallel Downloads

trim video
  • 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).
trim video

Note

This feature will only work if you select exactly one video format and one audio format

Video Trimming

trim video
  • 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.

  1. Paste and Livestream URL
  2. Select the format and click download
  3. You'll be prompted with a message saying that a terminal window will open.
  4. 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

About

Extension to download videos using yt-dlp directly from PowerToys Command Palette.

Resources

License

Stars

Watchers

Forks

Languages