PM SHRI KENDRIYA VIDYALAYA
Artillery Centre Nashik Road Camp
Session : 2023-24
Computer Science Project
A Project Report On : Python
YouTube Video Downloader
Submitted By: Utkarsha Jitendra Patil
Class – XII B Submitted to:
Roll no: 16 Mrs. Pooja Agrawal
PGT(Computer science)
1
CERTIFICATE
This is to certify that utkarsha
Jitendra patil of class 12th B
have successfully completed
their Computer Science
project on “Python YouTube
Video Downloader” under the
guidance of Mrs. Pooja Agarwal
during the academic year 2024-
2025 as per the guidelines
issued by Central Board of
Secondary Education (CBSE).
Signature of Subject Teacher Signature of External Examiner
Signature of Principal
2
Acknowledgements
I would like to thank our teacher, Mrs.
Pooja Agarwal who gave me this
opportunity to work on this project. I am
very grateful to her for her support and
guidance in completing this project. I
must also thank my parents and friends
for the immense support and help during
this project. Without their help,
completing this project would have been
very difficult.
Thank You
3
Table of Contents
Page
1. Cover Page
1
2. Certificate
2
3. Acknowledgements
3
4. Table Of Contents
4
5. Introduction To Project
5
6. Objective of the Project
6
7. Scope of the Project
7
4
8. The Existing System
8
9. Proposed System
9
10. Input / Output Requirements
10
11. Future Scope of the Project
11
12. Conclusion
12
13. Python YouTube Video Downloader
13
14. Code
14 - 17
5
1. Introduction To Project
Python YouTube Video Downloader is an
application to download videos from
YouTube. This provides users to download
videos they need in their devices and watch
them offline.
In this python project, user has to copy the
YouTube video URL that they want to
download and simply paste that URL in the
‘paste link here’ section and click on the
download button, it will start downloading
the video. When video downloading finishes,
it shows a message ‘downloaded’ popup on
the window below the download button.
6
2. Objective of the Project
The Python YouTube Video Downloader is a
python project. The objective of this project is
to download any type of video in a fast and
easy way from YouTube in your device.
YouTube is very popular video sharing
website. Downloading a video from YouTube
is a tough job. Using Python, this task is very
easy. Few lines of code will download the
7
video from YouTube for you. And this is the
main function of the project.
3. Scope of the Project
Steps to Develop Python YouTube Video Downloader:-
Project Prerequisites: -
To implement this project I have used basic
concept of python, tkinter, and Pytube library.
Tkinter is a standard GUI library and it is one of
the easiest ways to build a GUI application.
Pytube used for downloading videos from
YouTube.
8
To install the required modules run pip installer
command on the command line:
pip install tkinter
pip install pytube
4.The existing system
Currently, there are many websites
that provide the functionality of
downloading YouTube videos, but
these websites are filled with Ads,
9
malicious pop ups and sometimes can
download malware instead of the
video we need. So, it is safe for us to
make our own simple Python YouTube
Video Downloader and download
videos without any fear of getting
malware.
Some examples of these harmful
websites: -
10
5.Proposed System
Python YouTube Video Downloader is a
simple software that allows the user to
download any YouTube videos directly on to
their devices. It also provides the
functionality of downloading the video in a
specific folder, chosen by the user. These
are the main features of this application.
Besides these features, the user can choose
the quality of the video before downloading
it. The user can also download an MP3
sound file of the desired video.
And the GUI is very user friendly and easy
to understand.
11
6. Input/output Requirements
• For Input:-
1. Standard Keyboard
2. Standard Mouse
• For Output: -
1. Standard Monitor
• Other Necessary Requirements: -
1. Python 3 (> 3.5)
2. Modules Required:
i. Tkinter
ii. Pytube
3. Windows, Mac, Linux OS only.
4. Minimum Hardware Requirement
a. 4 GB RAM
b. 64 GB storage
c. Standard CPU
12
7. Future Scope of the Project
Below are some extra features that can be added
in the future, to the project to make it more
efficient: -
Downloading multiple videos: -
The basic task of downloading the multiple videos
is same as downloading a single video. We can
use a for loop for downloading the video.
Revealing various Information about the
Video: -
Now, when we have the link, we can play with the
link and reveal all sorts of information about the
video like its title, number of views, ratings,
description, length of the video and various other
things.
13
The Option for downloading the thumbnail: -
We can also provide the option for downloading
the thumbnail of video in high quality.
8.Conclusion
With the help of this project and the
application discussed in it, the user can
download any YouTube video for their
office presentation, or for their school
work, or to just watch videos offline,
without the fear of malware and
inappropriate Ads.
In the end, we can safely say that I have
managed to create a prototype or early
14
version of a fully functional Python
YouTube Video Downloader that can be
used in day-to-day life and is user
friendly.
# working python YouTube video
downloader.
15
16
#CODE
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from pytube import YouTube #pip install pytube3
Folder_Name = ""
#file location
def openLocation():
global Folder_Name
Folder_Name = filedialog.askdirectory()
if(len(Folder_Name) > 1):
locationError.config(text=Folder_Name,fg="green")
else:
locationError.config(text="Please Choose Folder!!",fg="red")
#donwload video
def DownloadVideo():
choice = ytdchoices.get()
url = ytdEntry.get()
if(len(url)>1):
ytdError.config(text="")
yt = YouTube(url)
17
if(choice == choices[0]):
select = yt.streams.filter(progressive=True).first()
elif(choice == choices[1]):
select = yt.streams.filter(progressive=True,file_extension='mp4').last()
elif(choice == choices[2]):
select = yt.streams.filter(only_audio=True).first()
else:
ytdError.config(text="Paste Link again!!",fg="red")
#download function
select.download(Folder_Name)
ytdError.config(text="Download Completed!!")
root = Tk()
root.title("YTD Downloader")
root.geometry("350x400") #set window
root.columnconfigure(0,weight=1)#set all content in center.
#Ytd Link Label
ytdLabel = Label(root,text="Enter the URL of the Video",font=("jost",15))
ytdLabel.grid()
#Entry Box
ytdEntryVar = StringVar()
18
ytdEntry = Entry(root,width=50,textvariable=ytdEntryVar)
ytdEntry.grid()
#Error Msg
ytdError = Label(root,text="Error Msg",fg="red",font=("jost",10))
ytdError.grid()
#Asking save file label
saveLabel = Label(root,text="Save the Video File",font=("jost",15,"bold"))
saveLabel.grid()
#btn of save file
saveEntry = Button(root,width=10,bg="red",fg="white",text="Choose Path",command=openLocation)
saveEntry.grid()
#Error Msg location
locationError = Label(root,text="Error Msg of Path",fg="red",font=("jost",10))
locationError.grid()
#Download Quality
ytdQuality = Label(root,text="Select Quality",font=("jost",15))
ytdQuality.grid()
#combobox
choices = ["1080p","720p","480p","360p","144p","Only Audio"]
ytdchoices = ttk.Combobox(root,values=choices)
ytdchoices.grid()
#donwload btn
19
downloadbtn =
Button(root,text="Donwload",width=10,bg="red",fg="white",command=DownloadVideo)
downloadbtn.grid()
#developer Label
developerlabel = Label(root,text="SMK Developers",font=("jost",15))
developerlabel.grid()
root.mainloop()
20