Windows graphical interface for yt-dlp, designed as a simple YouTube downloader

Overview

ytdlp-interface

This is a Windows graphical interface for yt-dlp, that is designed as a simple YouTube downloader. It doesn't download playlists, and generally speaking it doesn't attempt to accommodate the crazy number of features offered by yt-dlp (it just downloads a video using the selected format, with a few options for the download).

Some third-party binaries are distributed with the program binary:

To use, it's easiest to just dump the files in the folder where yt-dlp.exe is located, although you can put them anywhere. To completely remove from your system, also delete the settings file %AppData%\ytdlp-interface.json.

Download link: https://github.com/ErrorFlynn/ytdlp-interface/releases/download/v1.0.0/ytdlp-interface.7z


Building the source

The project depends on two static libraries: Nana C++ GUI library v1.8 or later (at the time I'm writing this v1.8 is in development, so you must build branch develop-1.8), and libjpeg-turbo. To build Nana with JPEG support see this thread.

The program also uses JSON for modern C++ to get video info from yt-dlp.exe and to read/write the settings file, but that's just a header file that's included in the project (you can replace it with its latest version if you really want to).

The easiest way to build the project is to open the solution file with Visual Studio 2019 or later. If that's not an option, you're a resourceful individual, I'm sure you'll come up with something (that's as far as my support goes, sorry).


ytdlp-interface 1


ytdlp-interface 2


ytdlp-interface 3

Issues
  • Any change to download from other site other than YouTube?

    Any change to download from other site other than YouTube?

    Hi,

    I've just come across this repo - Excellent BTW!

    yt-dlp can download from other types of sites, however, when trying with your app is says 'not a valid link'...

    Any chance this can be used for other types of site?

    opened by jamesbrindle 5
  • FFmpeg special version

    FFmpeg special version

    Hello, thank you very much for this wonderful and amazing software ! juste a question, I wonder if Ytdlp-interface uses the special version of FFmpeg to avoid bugs? because there is a special builds of FFmpeg for yt-dlp to fix some bugs, it will be great if Ytdlp-interface can add and update automatically this special builds of FFmpeg to fix some bugs for example

    [Fix AAC HLS streams being truncated mid stream]

    [Fix for YouTube's VP9 encodes with non-monotonous DTS]

    https://github.com/yt-dlp/FFmpeg-Builds

    opened by trimechee 3
  • Portable Mode

    Portable Mode

    Hello,

    First I would like to say that ytdlp-interface turned out to be a well-designed and very pleasant to use GUI fpr yt-dlp, good work, thanks.

    As of version 1.4.1 program settings are saved in configuration file (ytdlp-interface.json) in AppData:

    C:\Users\User\AppData\Roaming\ytdlp-interface.json

    My request- when ytdlp-interface starts it should check its program folder for the configuration file, ytdlp-interface.json, and if it is there (next to the executable, ytdlp-interface.exe), it should use it to load and save settings without re-creating it in AppData.

    I suppose an additional useful enhancement might be a new check box in Settings:

    • Portable mode

    which, if enabled, will save both the configuration file and the downloaded videos in program folder, so nothing will be written outside the program folder. This would be particularly convenient for using the program from external drives on other machines without leaving any traces behind (all data is saved in program folder)

    Regards

    opened by smaragdus 3
  • aria2c integration

    aria2c integration

    yt-dlp can use aria2c as external downloader. The main reason of using aria2c is download thread parallelization. Can you please add detecting aria2c on %PATH% (or selecting manually in Settings) and corresponding changes in UI:

    • Checkbox "Use aria2c"
    • Integer input "Download threads count"

    Command with this options looks like: yt-dlp --external-downloader "aria2c" --external-downloader-args "-j 8" ...

    opened by AHOHNMYC 3
  • Unable to download from Arte

    Unable to download from Arte

    Hi !

    Trying to downlaod a film on Arte leaves me with

    ERROR: [ArteTV] 063571-000-A: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: 'Not Found'>);

    I wasn't able to download a film with the program when I could some days ago. I attempted to download this one https://www.arte.tv/fr/videos/063571-000-A/la-loi-du-marche/ (it won't be available tomorrow so of course it'll give a 404 but until then it was available but yt-dlp can't dl it.

    I don't know if I use the ticket tool correctly, it's my first time.

    Thank you and have a nice day !

    opened by Strabisme 2
  • Audio preset and download with one click

    Audio preset and download with one click

    Hello, it will be great please if there an option preset to choose by default to download the worst audio quality for a faster download, and possiblity to choosing the native audio quality "opus" or "m4a" , I use another program to automatically download the worst audio quality of youtube videos and I always get the audio quality with "opus" format with 64kbps bitrate or 48kbps bitrate and we would like to have the worst audio quality because I put these audios in my smaprtphone using the "snapdrop.net" sharing site and I would like to preserve the battery of smartphone by using the most worst audio quality, it will be great to add the "opus" 64kb/s audio format or "m4a" audio format for the "worstaudio" preset!

    Please I have an important suggestion, it will be great to make the button "download" next to the "paste from clipboard" button for more speed, and also it will be amazing to merge and unify the "paste from clipboard" and "download" buttons into a single button with memorization of the "worstaudio" preset, so we can download audio or video just by clicking on a one and only unified button and we no longer need anymore to click on 2 distant buttons "paste from clip board" and "Download"!

    Thank you so much for this wonderful software jewel of technology :)

    opened by trimechee 2
  • N_m3u8DL-CLI

    N_m3u8DL-CLI

    Hello, Hello, since Ytdlp-Interface is aN amazing a graphical interface of command line tools , it well be great if our beloved Ytdlp-Interface add support for m3u8 with adding support for this tool updated recently N_m3u8DL-CLI :

    https://github.com/nilaoda/N_m3u8DL-CLI

    opened by trimechee 0
  • lux and streamlink

    lux and streamlink

    Hello, it will be great if our beloved Ytdlp-Interface adds support for lux which is fast and simple video download library and CLI tool written in Go and support for the awesome streamlink because some videos are huge and bulky so it's annoying and a waste of time to wait for the end of download but with streamlink, you can watch the video directly without waiting for the download but the problem is that it's in the command line and can be difficult to use for newbies......

    https://github.com/iawia002/lux

    https://streamlink.github.io/

    opened by trimechee 0
Releases(v1.5.1)
  • v1.5.1(Jun 8, 2022)

    Changes

    • fixed: Ctrl+V wouldn't work after pressing the "Back" button on the dl page
    • some minor improvements

    Just a quick bugfix version (pasting media link with Ctrl+V wouldn't work immediately after pressing the "Back" button on the download page). Among the minor improvements is a "changelog" view to the release notes window (Settings -> Updater -> Release notes).

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(62.10 MB)
  • v1.5.0(May 31, 2022)

    Changes

    • yt-dlp output: text in square brackets is highlighted for improved readability
    • can paste media link by pressing Ctrl+V (follow up with Enter to go to next page)
    • config file now saved in program folder when possible (needs write permission)
    • 10 sets of custom arguments are now remembered, selectable from a drop-down list
    • yt-dlp and ffmpeg are now updatable from the interface (Settings -> Updater)
    • various minor improvements under the hood

    This is a pretty big release, please open an issue if you find any bugs. I've done a reasonable amount of testing, but I may have missed something.

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(61.47 MB)
  • v1.4.1(Apr 3, 2022)

    Changes

    • fixed a malformed completion message

    This version fixes a very minor but annoying bug. When selecting a single format from the YouTube format list, the program would append (format ) to the completion message (which looks like 100% of [size] in [time]). That was a vestigial feature that is completely removed now.

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(58.25 MB)
  • v1.4.0(Mar 30, 2022)

    Changes

    • fixed incorrect format auto-selection (issue #2)
    • proper support for downloading live streams
    • ability to add custom arguments to the command line
    • ability to adjust the contrast for the color themes
    • the usual minor improvements
    • ffmpeg 2022-03-22 Auto-Build

    I have chosen not to include the latest version of yt-dlp in this release (yt-dlp 2022.03.08.1), because it seems to break the download rate limiting. If you wish to update yt-dlp to the latest version anyway, run it with the command line argument -U, or manually download the latest version from https://github.com/yt-dlp/yt-dlp/releases

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(58.25 MB)
  • v1.3.0(Feb 16, 2022)

    Changes

    • added a dark color theme
    • added a self-updater
    • minor fixes and improvements
    • yt-dlp 2022.02.04
    • ffmpeg 2022-02-15 Auto-Build

    The program now automatically checks if there is a new version on GitHub, and lets you know in the title bar if one is available. The self-updater (Update button in the settings window) downloads the archive of the new version to a folder for temporary files, and then unpacks it to overwrite the current version (the program then automatically restarts if successful).

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(59.81 MB)
  • v1.2.0(Jan 6, 2022)

    Changes

    • YouTube storyboard formats (introduced in yt-dlp 2021.12.01) are no longer listed
    • stopped using curl.exe
    • now allowing all types of links (including YouTube playlist URLs)
    • added a settings window
    • minor fixes and improvements
    • yt-dlp 2021.12.27

    From this version forward, the interface is no longer limited to YouTube videos (now it accepts whatever URL you give it). To see which sites are supported by yt-dlp, check out this list: https://docs.yt-dlp.org/en/latest/supportedsites.html

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(56.28 MB)
  • v1.1.0(Dec 17, 2021)

    Changes

    • dl progress output from yt-dlp is now displayed in a progress bar
    • now using a more reliable method of ending the yt-dlp process
    • all dl options are now saved to the settings file
    • new dl options: embed chapters, embed subtitles, embed thumbnail, file modification time = time of writing
    • minor fixes and improvements

    From this version forward, yt-dlp.exe will also be distributed with the rest of the binaries, for user convenience.

    Source code(tar.gz)
    Source code(zip)
    ytdlp-interface.7z(58.54 MB)
Owner
I am an amateur programmer who has a passion for modern C++. My handle is a clever and very funny reference to the late Hollywood actor Errol Flynn.
null
Sample Project that I'm trying to build on YouTube (Live)

GTK-Project Sample Project that I'm trying to build on YouTube (Live) Streams discussing this: S.No. Date Title Limk 1 30/08/2021 Code Along: Building

null 4 Mar 18, 2022
A simple but powerful multimedia player library designed for Qt Quick.

QtMediaPlayer A simple but powerful multimedia player library designed for Qt Quick. Features Full-featured multimedia player Cross-platform: support

Yuhang Zhao 12 Jul 26, 2022
DTV is a library that provides a simple interface for generating video files from a C++ application

Direct to Video (DTV) What does DTV do? DTV is a library that provides a simple interface for generating video files from a C++ application. It uses F

Ange Yaghi 12 Aug 3, 2022
GB Studio Extended Nominal Player Adaptation/Interface

gbsenpai gbsenpai - GB Studio Extended Nominal Player Adaptation/Interface - is a project to port the GB Studio player to additional, non-GB/GBC platf

Adrian Siekierka 60 Jul 31, 2022
Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games.

An open source video game library manager and launcher with support for 3rd party libraries like Steam, GOG, Origin, Battle.net and Uplay. Includes game emulation support, providing one unified interface for your games.

Josef Nemec 4.3k Aug 7, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive Team 6.3k Aug 8, 2022
mpv to vlc converter (for anilabx-lite-windows)

mpv-to-vlc Simple CPP project, created for AniLabX-Lite (requested by @themrlokopoff) Compiling Open project in Visual Studio Select "Release" version

raywave's junk projects 3 Aug 18, 2021
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 18.8k Aug 4, 2022
SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

SortNode is a JS binding for SORT: Simple, online, and real-time tracking of multiple objects in a video sequence.

Techainer 10 Aug 2, 2022
⏺️ A simple recording program with the ability to record screens and audio on your computer.

⏺️ A simple recording program with the ability to record screens and audio on your computer.

kimhwan 371 Aug 3, 2022
a simple example of video streaming with a ESP32 AI Thinker

esp32-video-streaming its a simple camera system that im trying to make for fun I want to make an async server but idk it doesnt works correctly and w

ranon rat 6 Mar 9, 2022
Sentry-Picam is a simple wildlife / security camera solution for the Raspberry Pi Zero W, providing 1080p/30fps motion activated H.264 video capture.

Sentry-Picam is a simple wildlife / security camera solution for the Raspberry Pi Zero W, providing 1080p/30fps motion activated H.264 video capture.

null 121 Jul 29, 2022
simple mp4 player based on rockchip rv1109 platform

mp4player RV1109平台上实现一个简单的 mp4 播放器,主要是本人使用的开发板QT无法播放mp4,应该是没有编译qst所致,因而想利用rockchip平台自有的 功能实现一个简单的播放器。 base目录包含一些基础框架实现,包含信号,线程,时间等,线程和消息泵的实现非常非常简单,因而不

null 9 Jul 17, 2022
A simple example showing how to render a video with libvlc + raylib.

Hey! I bet you have been trying to render and control a video with raylib for a long long time. Don't you think you should at least buy me a beer? Wha

Andrea Fontana 36 May 23, 2022
A Flutter Youtube and Video Downloader

A Flutter Desktop GUI App of Youtube-dl which download video from Youtube, Facebook (both public and private)

superatom 20 Jul 27, 2022
Media Downloader is a Qt/C++ front end to youtube-dl

media-downloader This project is a Qt/C++ based frontend to youtube-dl and it can be used to download any media file supported by youtube-dl. Features

null 488 Aug 6, 2022
Free Media Player for Windows and Linux with Youtube support.

SMPLAYER SMPlayer is a free media player for Windows and Linux with Youtube support.

Ricardo 274 Aug 7, 2022
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

omar 40.3k Aug 5, 2022
o/ ImGui Builder is a graphical framework for assembling imgui codes in your interface easily

IMGUI BUILDER The project consists a gui editor of the Imgui framework EDITOR Menu Export 1 - Export cpp file 2 - Cpp file Credits Credits for Shadowy

Code Building 358 Aug 9, 2022
A graphical interface to set options on devices with coreboot firmware

Corevantage A graphical interface to set options on devices with coreboot firmware. Introduction This is a utility that allows users to view and modif

null 30 Jan 22, 2022
ROS_Melodic_Qt_GUI_Template is a Graphical User Interface programmed with Qt framework.

This is a GUI template for ros to control your robot and read data from sensors.

null 26 Jul 16, 2022
AnUI is a powerful Graphical User Interface framework made for people that actually care about design!

What's AuUI ** Project is not finished ** AuUI, an abbreviation for "Actual Understandable User Interface" is a graphical user interface framework to

Goat 4 Jun 17, 2022
Dear ImGui is a bloat-free graphical user interface library for C++

dear imgui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

Douglas McCloskey 6 Oct 27, 2020
This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain

This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window and input handling but instead provides a very modular library approach by using simple input state for input and draw commands describing primitive shapes as output.

Micha Mettke 13.4k Aug 4, 2022
Graphical small-internet client for windows, linux, MacOS X and BSDs. Supports gemini, http, https, gopher, finger.

Graphical small-internet client for windows, linux, MacOS X and BSDs. Supports gemini, http, https, gopher, finger.

Felix Queißner 543 Aug 9, 2022
Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Unix pager (with very rich functionality) designed for work with tables. Designed for PostgreSQL, but MySQL is supported too. Works well with pgcli too. Can be used as CSV or TSV viewer too. It supports searching, selecting rows, columns, or block and export selected area to clipboard.

Pavel Stehule 1.8k Aug 7, 2022
The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects

olcPixelGameEngine The official distribution of olcPixelGameEngine, a tool used in javidx9's YouTube videos and projects. You only need the one file -

Javidx9 3.1k Aug 8, 2022
Convert YouTube Subscriptions JSON into RSS Reader Compatible OPML

OPMLify Convert YouTube Subscriptions JSON into RSS Reader Compatible OPML Brief Overview OPMLify allows you to import your YouTube Subscriptions to a

null 13 May 25, 2022
This repo consists of aditya verma youtube channel code for different section.

Aditya-verma-youtube-playlist-code This repo consists of aditya verma youtube channel code for different section, I am still working this soon it will

Shivendra k jha 270 Aug 7, 2022