ytdl
How development started and was carried?
This project development started with wish to download youtube physics video(Center of mass) at 240p in March,2021 because 240p quality was managable and took decent amount of mobile data compared to 360p. Many people don’t have technical knowledge of how to use youtube-dl/yt-dlp command line, to make things easier to use (started to port yt-dlp/youtube-dl CLI to GUI) ,I thought of making GUI version of youtube-dl/yt-dlp for those having no knowledge about command line program. Initially it was a very basic program which lack many features as time passed encountered many bugs ; fixed it and added many features ,specially giving the live download progress in main window statusbar took almost 2 months to fix this removing black console window at startup was also challenging to fix without using --noconsole
option.
Threading helped execute many function at same time The function popens(cmd) never executed with object oriented programming (OOPs) Tkinter was easy to use and took less space compared to PySide2/PyQt5 After june, 2021 there was no update to youtube-dl. Development stopped for 3 months finally backend changed to yt-dlp During this development period many bugs were encountered and fixed , many features were added .Overall this project started in March,2021 and is active since then ,developing it was a journey with ups and downs ultimately it was fun tackling problems and come up with the solution, made me to look a wider perspective of problems and improved my problem solving skills ,hope this project will be active in future… Need help to make this project better so that anyone with poor internet connctivity can learn something.
Working
yt-dlp (youtube-dl for older version) searches streams available in website and displays streams. sometimes there may only be only video stream(s) available or no streams at all.Using VPN might help. User selects streams and browse location (default location in downloads could be changed). ffmpeg converts it into videos/audios. if m4a is selected audio format ffmpeg uses AtomicParsley to write metadata in m4a file. Pygame window displays live download progress (for older version).
Also Linux version work in progress.
Tools : ffmpeg , Atomicparsley , yt-dlp , pytube, youtube-dl , powershell , bash , Inno-Setup
Thanks
Thanks to all contributors