Friday, July 11, 2025

Programming Scripting Automation: PART I (INTRODUCTION) Video Downloader with 4K/8K Support

Video Downloader v1.11.2-stable by https://myportfolioreview13.blogspot.com/.

    Good afternoon, good people! How are you all doing? It’s been a while since my last post, and I’m excited to finally share something new with you. Back in December 2024, I finished the beta version of a program I’ve been working on from scratch. After months of testing and refinement, I’m happy to announce that it has reached a stable release.

This program is built as a complete replacement for the YTDownloader, which is still in use and currently at version v5.5.2. While YTDownloader has served its purpose well, this new tool brings a fresh start with better stability, cleaner architecture, and full support for 4K and 8K video downloads.

Let's dive deeper with code snippets and a demonstration!


Program Features

 

  • Easy video downloads: Download videos from supported websites with ease.
  • High resolution support: Download YouTube videos in resolutions up to 8K.
  • Dynamic resolution addition: Add custom video resolutions on the fly for broader compatibility.
  • Cross platform compatibility: Works on Linux, Windows, and Android devices via Termux.
  • Playlist download support: Easily download entire YouTube playlists.
  • Dynamic sorting: Automatically organizes downloaded videos into folders by channel or playlist name.
  • Duplicate URL check: Detects and skips previously downloaded URLs to prevent duplicates.
  • Audio only downloads: Extract audio in best or standard quality, ideal for music listening.
  • Quality control: Choose between the lowest or highest quality formats to suit your bandwidth.
  • Direct unsupported video downloads: Use the yt-dlp module to download videos not directly supported.
  • Cookie based downloads: Supports authenticated downloads using browser cookies (Firefox) or a cookies.txt file.

 

Program Design

 

Compiled program and ready to run.

Source code designed based on the MVC architecture.

This program is built using the MVC (Model-View-Controller) architecture, which separates concerns into modular components:

  • Models handle data and configuration.
  • Views manage the display and user interface.
  • Controllers act as the bridge between models and views.

Thanks to this design pattern, developers benefit from easier maintenance, clearer structure, and greater flexibility when updating or modifying the codebase.


Models and Views


Main CLI Display.

 

Snippet code of models.

Views act as the main display unit, handling navigation whether the program runs with a GUI or in a CLI environment.

Models manage the program’s data and configuration. By centralizing these elements into a single module, developers can easily modify settings or data structures without touching other parts of the code.

 

Controllers


Snippet code of controllers.

The data flow is determined and managed by the controllers. This part of the program regulates data storage and distributes it to all modules within the application, functioning as an internal API that facilitates communication between storage components and other modules.

 

Supported Resolutions


This program is highly flexible. If a user encounters a video that can't be downloaded due to an unsupported resolution, they can easily add it themselves by editing the JSON configuration file.

The program's default directory stores video resolution settings, logs, and other configurations.

Users can edit the resolution settings to add support for more video resolutions.


End

 

This post serves as an introduction to my new program. In Part II, I’ll walk you through how it works and highlight its key features.

As always, thank you for visiting my blog and taking the time to review my work. I hope you have a great day, and I look forward to seeing you in the next post!