Coder Social home page Coder Social logo

yt-red-ui's Introduction

YT-RED-UI

Windows .NET Framework GUI Application for Downloading Video and Audio Files from YouTube, Reddit, Vimeo, Twitter, Instagram, Twitch, and other popular media hosts.

ytr-banner-1 0 1 1

News

10/19/2022 : Beta 1.0.2.0 Official Release Now Available

10/17/2022 : Beta 1.0.2.0 Release Coming 10/19

5/26/2022 : YT-RED IS NOW IN BETA STAGE!

We are out of alpha testing and moving to Beta. Please send any issues or enhancement requests by adding a new issue on GitHub.

View All Releases on GitHub

Table of Contents

Overview

Project Status: In Beta

Latest Stable: N/A

Latest Beta: v1.0.2.0

Latest Alpha: v1.0.2.1

Updated 10/21/2022

Roadmap: The Future of YT-RED

Windows

YT-RED was built for Windows, targeting .NET Framework 4.8. Development of the original .NET Framework version will continue for the foreseeable future.

While YT-RED can only run on Windows at this time, a multi-platform version will be available in the future.

While development continues on the current Windows version, I will be collecting feedback from those who are using the Beta releases. All features and enhancements during this time will be used as the foundation of a new multi-platform version of the program.

Multi-Platform

Initial development has started on the multi-platform project YT-RED-MAUI However, further development will depend on the status of Linux support. If complications prevent development of a Linux compatible program, development will be restarted on a different App UI framework.

YT-RED Multi-Platform intended support:

  • Windows
  • Linux
  • Android
  • Chrome OS (Android)

I hope to create iOS and MacOS compatible versions at a later date. Due to Apple policies and requirements, development for MacOS and iOS is not feasible at this time

About YT-RED

YT-RED is a Windows .NET Framework GUI Application for Downloading Video and Audio Files from YouTube and Reddit


Screenshots from v1.0.1.20-alpha

YTRMain

2022-08-21_0-03-18

Requirements

  • Windows 7, 8, 10
  • .NET Framework 4.8

Acknowledgements

Most of the the hard work that makes this possible was done thanks to many other awesome developers

YT-RED is built using the following open-source libraries

A lot of magic happens behind the scenes.

YT-RED uses the following open-source applications for downloads and post-processing

Current Features

  • List Formats

    This will retrieve all video formats available to download. An individual format can be selected and downloaded.

  • Format Selection Mode - Choose from one of two available selection modes

    1. Preset - Select a single format from one of the automatically generated format options
    2. Custom - Combine the audio and video format of your choice for a single merged file
  • Download Best

    The "Download Best" option evaluates all available video and audio formats before downloading the best available.

    Note Download Best often requires downloading separate video and audio files, which are then merged after downloading. This can take a little longer than downloading a specific format.

  • Download Segment

    The "Download Segment" option can be toggled on and off. This feature is only available when downloading a specific format in order to improve performance and reduce resource usage.

    Specify the start time of the segment, and the duration.

  • Automatic ID3 Tagging

    When downloading audio, video thumbnails are automatically embedded as cover art, and titles are set to the video title.

  • Crop Video

    The "Crop Video" option is available for all video downloads. The feature only accepts crop sizes in pixels at this time.

    Enter the number of pixels to crop on each desired side, and then start the download.

  • Convert Format

    Specify a Video or Audio format for the resulting download. YT-RED will convert the original media to the format of your choice.

  • Download History (Optional)

    When enabled, YT-RED will locally record each download, including settings. Download History can be configured to store download logs for the number of days specified. Recorded downloads can be redownloaded by right-clicking on the associated log and choosing the "re-download" option, or you can run a new download by choosing the "Use URL for New Download" option. Download History can be manually cleared in Settings, with the option to delete all associated download files.

  • Quick Downloads

    Quick Download is only available when YT-RED has been minimized to the System Tray. Right-click on the YT-RED icon in the tray, and select "Quick Download" to open the Quick Download form.

  • Quick Download Hotkey

    When the Quick Download Hotkey is enabled in advanced settings, YT-RED will register a custom Hotkey that initiates a Quick Download.

    To use, Highlight a youtube or reddit media post url in your browser, and press the configured hotkey. This will perform an automatic "Best Download" with the progress displayed above the system tray.

  • Layout Options

    Change the position of certain panels for the layout you like.

  • Update Assistant

    Check for updates and download release packages directly in the app. Optional Updater for one-click update installs Open Settings -> About and click the "Check for Update" button.

    2022-08-21_0-03-35

Contact

To report bugs or request enhancements, please submit a new Issue on GitHub

For all other inquiries, email [email protected]

Thank you for your support!

YT-RED - Copyright © 2022 JAMGALACTIC - WEAKNPC.COM

yt-red-ui's People

Contributors

adanvdo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

protiguous

yt-red-ui's Issues

Create Independent Log Server

The alpha branch is currently using weaknpc.com for the api endpoint to store logs.
Create an independent api server at jmconcepts.net and move the log api to that server.

Reddit Gif Download Support

Add Support for downloading GIF posts from reddit.

The underlying format of the GIF is actually a video file. Access to the gif url without the format=mp4 param results in 403
This may require conversion

Writing Error Logs to User AppData directory causes Windows Smart Screen to block exe

After adding the error logging functionality that stores logs in AppData, I downloaded the latest build on another PC and Windows Smart Screen blocked it from running.

I ran the windows app cert utility, and one of the things it checks for is that the app does not write to the Users directory.

Change this so error logs are stored in the app's directory

Add Crop Feature

Add the ability to crop videos. I'm not sure the best inputs to accept for this, but we can start with L,R,T,B pixels

Add System Tray Support

Add the ability to minimize the program to the system tray.
If it is possible, add some context menu items that make a quick download easily accessible.

Add Duration to Youtube Format Grid

When retrieving the list of available formats for a youtube video, duration is not included in the grid.
See if a duration property is available, and if so, add it to the grid.

Clear Format List when new url is entered

After listing formats for a link, the list remains after a download is completed. When you enter a new url, the list formats button is disabled because of the state of the list at that time.

Clear the format list and reset the button state when a new URL is entered

Youtube "Best" downloads are not converted to "preferred" format

When the option to use preferred file format is enabled and you "download best" youtube video, this tends to download the video file in vp9 format instead of h264 or avc1.

I am not sure if it's possible to change the encoding directly using ytdl, but currently no video recode format is specified for preferred downloads.

KeyShortcut is not consistently serialized across machines

I loaded the app on my lenovo laptop and ran it once. The settings were saved a very broken format, and the Hotkey control became disabled in settings. The hotkey itself was stored in json as what looks like an object. I am not sure why.

"dl_hotkey": { "Key": 131153, "IsExist": true },``

it also includes an empty "About" and then another empty object at the bottom.

The app crashed a few times with a stack overflow exception in event viewer.

Add Voluntary Log Reporting

Add support for sending error logs to server.
This should be integrated in the Exception Handler #32

When an exception occurs and a message is displayed, include the option to upload the logs.
Create an async upload method that posts the log data to external api.

Download Hotkey Editor in Advanced Settings includes unsupported option

The picklist of Shortcuts in the Download Hotkey editor includes the option "(custom)" which is not a valid KeyShortcut and cannot be saved.

I tried to find a way to remove the option, but I had no luck. I may have to create a custom shortcut class with predefined options and use that instead of the KeyShortcut class it is currently using.

Unless I can figure out how to edit the options in the editor.

Clean Up Files Feature

Add an option to clean up downloaded files, which deletes any files in the download history that still exist.
(include disclaimer regarding download history requirement)

Quick Download Hotkey Feature

Using the System Tray, add an option to register a hotkey for quick downloads.

Intended Behavior:

  1. highlight youtube / reddit media url in browser
  2. press registered hotkey
  3. check if content exists on clipboard and store it temporarily if so.
  4. copy url to clipboard
  5. start best quality download using url on clipboard
  6. restore original clipboard content

Add settings options to enable hotkeys.
Add setting to customize hotkey

Add "About" Section

Add an "About" section to the Settings Form. Add the following Read-Only fields to this section.

  • Version
  • Build
  • GitHub
  • Contact

Add Delete Download Options

Instead of deleting all downloads from the settings form, add options to delete downloaded videos, audio, or all.

YouTube Downloader does not support some URL formats

The YT downloader does not support the following types of URLs which can result in an unhandled exception and .NET Framework Crash.

  • youtu.be URL's
  • YouTube Short URL's youtube.com/shorts/[videoID]
  • YT URL's with additional parameters
  • other URL's that don't include watch?v=[videoID]

Add Visual Style for when Segment or Crop features are enabled

Add a visual style (background color or font color) to the Segment and Crop feature boxes that makes it more apparent when either feature is enabled. Right now it is easy to overlook when the features are enabled/disabled which can cause some confusion

Prevent Multiple Instances

If multiple instances of YT-RED are run on the same machine it can cause a problem with Hotkey registration and use of the system tray.
Obtain the mutex for the app and prevent multiple instances from running.

Optional Skins

Add skin selection to settings. Save the chosen skin for the user.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.