Skip to content

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

License

Notifications You must be signed in to change notification settings

sharkchow/youtube-dl-wpf

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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

322b017 · Dec 6, 2024
Mar 21, 2024
May 11, 2021
Nov 19, 2024
Dec 6, 2024
Dec 9, 2020
Nov 25, 2021
Apr 24, 2020
Apr 21, 2020
Mar 22, 2024
May 3, 2022
Apr 17, 2024
May 3, 2022
Dec 9, 2020

Repository files navigation

🎞⬇ Cube YouTube Downloader - youtube-dl-wpf

Build Release

WPF GUI 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 whole playlists.
  • Select items from playlist to download.
  • Select types of subtitles (default, all languages, auto-generated) to download and embed.
  • Specify custom output 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 yt-dlp or youtube-dl.
  3. It's optional but highly recommended to also download FFmpeg. Otherwise you won't be able to merge separate video and audio tracks.
  4. The framework-dependent binary requires an installed .NET Runtime to run. Alternatively, download the self-contained binary that bundles the runtime.
  5. Run youtube-dl-wpf.exe. Go to Settings. Set the path to youtube-dl/yt-dlp and FFmpeg.
  6. 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 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.

  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 (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.

  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 yt-dlp or youtube-dl, whichever you use.

  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 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.

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

© 2024 database64128

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%