A simple GUI wrapper for youtube-dl
and yt-dlp
.
- 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.
- Download the pre-built binary or build it from source.
- Download
youtube-dl
oryt-dlp
from the upstream. Optionally but recommended, getffmpeg
either by building from source or downloading pre-built binaries for Windows. - The framework-dependent binary requires an installed .NET 5 Runtime to run. Alternatively, download the self-contained binary that bundles the runtime. The upstream
youtube-dl
binary requires MSVC++ 2010 x86 runtime. - Run
youtube-dl-wpf.exe
. Go to Settings. Set the path toyoutube-dl
/yt-dlp
andffmpeg
. - Go back to the home tab. Paste a video URL and start downloading! 🚀
-
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 downloadyoutube-dl
/yt-dlp
from the upstream. Theffmpeg
binary is required byyoutube-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. -
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 acceptsocks5h
protocol and treatsocks5
assocks5h
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 the upstream.
-
Q:
youtube-dl
andyt-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.
- 🎉 No known issues!
- v2.0 - The Parallel Update: download management and download queue for parallel downloads.
Prerequisites: .NET 5 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
- This project is licensed under GPLv3.
- The icons are from Material Design Icons and are licensed under the Pictogrammers Free License.
youtube-dl
andyt-dlp
are licensed under The Unlicense.- Material Design Themes is licensed under MIT.
- Roboto Mono is licensed under the Apache License, Version 2.0.
- ReactiveUI and its dependencies are licensed under MIT.
© 2021 database64128