Skip to content

A simple GUI wrapper for youtube-dl and yt-dlp.

License

Notifications You must be signed in to change notification settings

shoklan14/youtube-dl-wpf

This branch is 173 commits behind database64128/youtube-dl-wpf:master.

Folders and files

NameName
Last commit message
Last commit date
Nov 25, 2021
May 11, 2021
Nov 20, 2021
Dec 20, 2021
Dec 9, 2020
Nov 25, 2021
Apr 24, 2020
Apr 21, 2020
Nov 25, 2021
Nov 25, 2021
Nov 25, 2021
Dec 9, 2020

Repository files navigation

🎞⬇ Cube YouTube Downloader - youtube-dl-wpf

Build Release

A simple GUI wrapper for youtube-dl and yt-dlp.

Home Settings

Features

  • Follow 🎨 system color mode, or choose between 🌃 dark mode and 🔆 light mode.
  • Update youtube-dl/yt-dlp on startup.
  • List all available formats.
  • Override video, audio formats and output container.
  • Embed metadata into downloaded file.
  • Download and embed thumbnails.
  • Download playlists.
  • Select types of subtitles (default, all languages, auto-generated) to download and embed.
  • Specify custom download filename template.
  • Specify custom download path.
  • Specify custom ffmpeg path.
  • Specify custom proxy.
  • Specify custom command-line arguments.

Usage

  1. Download the pre-built binary or build it from source.
  2. Download youtube-dl or yt-dlp from the upstream. Optionally but recommended, get ffmpeg either by building from source or downloading pre-built binaries for Windows.
  3. The framework-dependent binary requires an installed .NET 6 Runtime to run. Alternatively, download the self-contained binary that bundles the runtime. The upstream youtube-dl binary requires MSVC++ 2010 x86 runtime.
  4. Run youtube-dl-wpf.exe. Go to Settings. Set the path to youtube-dl/yt-dlp and ffmpeg.
  5. Go back to the home tab. Paste a video URL and start downloading! 🚀

FAQ

  1. Q: The Download button is grayed out and I can't click it!

    A: youtube-dl-wpf is a simple GUI wrapper. It doesn't bundle any downloader with it. You have to download youtube-dl/yt-dlp from the upstream. The ffmpeg binary is required by youtube-dl/yt-dlp when downloading and merging separate video and audio tracks, which is the case for any video resolution higher than 360p on YouTube.

  2. Q: How can I use a proxy to download?

    A: Leave the proxy field empty to use system proxy settings. Otherwise the format is similar to how curl accepts proxy strings. Examples are, socks5://localhost:1080/, http://localhost:8080/. Currently the upstream doesn't accept socks5h protocol and treat socks5 as socks5h by always resolving the hostname using the proxy. This is tracked in this issue.

  3. Q: Downloading the whole playlist doesn't work!

    A: It's an upstream bug, just like many other issues you might discover. There's nothing I can do. Just report the bug to the upstream.

  4. Q: youtube-dl and yt-dlp behave differently!

    A: In some cases, yes, and youtube-dl-wpf tries to align their behavior by sending different options and arguments for different backends. See the backends documentation for more information.

Known Issues

  • 🎉 No known issues!

To-Do

  • v2.0 - The Parallel Update: download management and download queue for parallel downloads.

Build

Prerequisites: .NET 6 SDK

Note for packagers: The application by default uses executable directory as config directory. To use user's config directory, define the constant PACKAGED when building.

Build with Release configuration

dotnet build -c Release

Publish as framework-dependent

dotnet publish YoutubeDl.Wpf -c Release

Publish as self-contained for Windows x64

dotnet publish YoutubeDl.Wpf -c Release -r win-x64 --self-contained

Publish as self-contained for packaging on Windows x64

dotnet publish YoutubeDl.Wpf -c Release -p:DefineConstants=PACKAGED -r win-x64 --self-contained

License

© 2021 database64128

About

A simple GUI wrapper for youtube-dl and yt-dlp.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%