lukadlm97 / yt-videos-downloader

Personal project for easier downloads of videos and audios from YouTube resources.
0 stars 0 forks source link

Project description

VideoAndAudioDownloader is a suite of projects that enables users to download and save videos and playlists from YouTube to their local file system. It is built using .NET 6 and utilizes dependency injection (DI). The core business logic is contained in a library project, which can be accessed in two different ways: through a command-prompt console app or via a user-friendly desktop app built with WPF.

VideoAndAudioDownloader.BusinessLogic

VideoAndAudioDownloader.BusinessLogic is a project that provides the business logic for fetching YouTube assets and saving them to the file system. It uses the YoutubeExplode library to retrieve details of individual videos and playlists, as well as to manipulate the assets for storage on the file system. This project is essential for the functionality of the VideoAndAudioDownloader app, as it handles all of the behind-the-scenes work required to fetch and save YouTube content. With its robust and reliable logic, VideoAndAudioDownloader.BusinessLogic ensures a seamless experience for the user.

VideoAndAudioDownloader.ConsoleApp

VideoAndAudioDownloader.ConsoleApp is a self-hosted console application that utilizes the functionality provided by the VideoAndAudioDownloader.BusinessLogic project. It allows the user to execute the app from the command prompt, providing a convenient and flexible way to use the app's features. The console app is enhanced with the use of the ConsoleAppFramework library, which enables advanced parameterization of the app's execution. This allows for a more powerful and customizable experience when using the app from the command line. Overall, VideoAndAudioDownloader.ConsoleApp provides a robust and user-friendly interface for accessing the capabilities of the VideoAndAudioDownloader app.

VideoAndAudioDownloader.Desktop

This is a desktop app built with WPF and .NET 7. It follows the MVVM design pattern and has three main windows. The first window allows you to import a YouTube playlist and perform a search to return all of the songs/videos in the playlist. You can also remove certain items from the playlist. The second window allows you to add more playlist and songs using a helper user control. Finally, the third window allows you to select one or more folders as destinations where all of the songs from the playlist will be saved to the file system.

Console app demo

App helper:

home-screen

Command for import single song:

single song download

Single song at file system:

single-song-on-current-directory

Command for download and save to files system playlist:

playlist-import

Song from playlist at destination folder:

playlist-import-songs

Desktop app demo

Start screen:

start-screen

Simple use case:

simple-use-case

Add new song to playlist:

add-new-song

Select destinations:

select-destinations

Another pop-up for selecting exact folder path:

select-single-destination

Example of downloaded videos:

example-of-downloaded-videos

Example of donwloaded audios:

audio-example