A simple GUI wrapper for youtube-dl and yt-dlp.
GPL-3.0 License
youtube-dl-wpf
WPF GUI for youtube-dl and yt-dlp.
youtube-dl-wpf.exe
. Go to Settings. Set the path to youtube-dl/yt-dlp and FFmpeg.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 or yt-dlp for it to work. FFmpeg is required by youtube-dl and yt-dlp when merging separate video and audio tracks, which is the case for most formats on YouTube.
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 (e.g. 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.
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 yt-dlp or youtube-dl, whichever you use.
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.
Prerequisites: .NET 8 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.
dotnet build -c Release
dotnet publish YoutubeDl.Wpf -c Release
dotnet publish YoutubeDl.Wpf -c Release -r win-x64 --self-contained
dotnet publish YoutubeDl.Wpf -c Release -p:DefineConstants=PACKAGED -r win-x64 --self-contained
youtube-dl
and yt-dlp
are licensed under The Unlicense.2024 database64128