![]() |
YTDownloader CLI Program |
Hi there! Welcome to my blog. I want to share you one of my project, its called "YTDownloader". Although the name is related to YouTube, its feature not only download for YouTube video but now I want to show you how easy to download YouTube video with this program.
First Things First, About Program
Lets talk about the idea of making this program. If you know program or formerly python module "yt-dlp" it's a Python program to download video from supported sites one of them is from YouTube. I used to use this program to download my favorite video from YouTube channel like music video, tutorial, review and even m4a collection. But I feel lazy every time I download video needs the correct format options, so I can download with 360p, 480p, 720p, 1080p even 4k or 8k video resolution. That's why I made myself easy with this program.
I use 'json' to store supported resolutions, and I can adds or deletes the resolution if needed. And for 'Ultra' resolutions, for now I still don't need it due to huge download and stored file size:
![]() |
Supported video resolution |
MVC Design
What is MVC? MVC, which stands for Model-View-Controller, is a design pattern used in software engineering to separate an application into three interconnected components. This separation helps in organizing code, making it more modular, and managing complex applications.
So whenever I need to change the GUI or adding more feature or fixing bug, it can be done easily with MVC design pattern.
![]() |
MVC design architecture. |
How To Use It?
Say that I want to download video from my favorite channel Primitive Technology by John Plant. I would copy the video link and paste into my program, and because I use metered connection I want the video size as small as possible with HD format in low video size here we go:
![]() |
Downloading video from YouTube |
My program support up to full HD video and can be programmed to download 8k video or depending on supported resolution of video itself. The picture above is downloading the link and after it is done, the video file is located in my home folder 'Videos_Downloaded'.
Command Line Formats
Among the others are:
1. low, to download video in low video size (the program natively download with best video coded format makes the size bigger in same resolution).
2. c, to 'check' the downloaded links before if it is ever been downloaded, you will be prompted to select continue download away or pass to the next link.
3. 140, download with good quality audio support only for YouTube link (natively the program download with normal quality audio 139 m4a 49k TBR format) and usually I use this format for music video or m4a audio file.
Difference Using 'low' And Without?
![]() |
From yt-dlp, list of available video formats |
In a resolution, video consists of several resolutions, qualities and formats, the program will download depends on the command. In below picture I demonstrate download YouTube video in 'Medium' selection:
![]() |
Medium selection download |
![]() |
Those are supported resolutions in Medium selection |
Download YouTube Playlist Video In One Folder
The program is capable of download YouTube playlist video and put them automatically in one folder, but user also have option to download only related video. When user download for all playlist must be consider of huge bandwidth especially if the playlist consist of many videos:
![]() |
Download YouTube playlist video |
What Do I Do Usually With This Program?
I like to watch great channel, watching review, documentary even tutorial video. I also like house mix, lofi and music video but I can't always play it online and I need way to make myself easy storing those videos locally. So this program really help me a lot when I need to save video to watch again anytime and to convert video for my music collection.
I made this program in MVC standard so it easy to be maintained and developed. I would to say thank you very much to whoever the developer and community of yt-dlp python module and program, thank you so much to make it happen for us, finally a real video downloader.
P.S:
When I program, I use interchangeable operating systems simultaneously between a Windows virtual machine and a Linux host machine. If the switching images caused any confusion, I apologize. Thank you for your understanding and for visiting.
Due to personal project I can't show you all the source code. Have a great day, good people...