Professional Documents
Culture Documents
Youtube Playlist Downloader
Youtube Playlist Downloader
Abbottabad Campus
By
Supervisor
Sir Kashif Nasr
The candidate confirms that the work submitted is their own and appropriate
credit has been given where reference has been made to the work of others.
COMSATS University, Islamabad
Abbottabad Campus
A project presented to
COMSATS Institute of Information Technology, Islamabad
In partial fulfillment
of the requirement for the degree of
By
2
DECLARATION
We hereby announce that this program has not been copied from any source in whole or as a
part of it. It is further reported that on the basis of our personal efforts, we have created this
program and accompanied report entirely. If any part of this project is proven to be copied
from any source or reproduced from any other source. We're going to stand by the
consequences. No Portion of the work presented has been submitted of any application for
any other degree or qualification of this or any other university or institute of learning.
3
CERTIFICATE OF APPROVAL
It is to certify that the final year project of BS (CS) “Youtube Playlist Downloader” was
developed by AMER HAMEED (CUI/FA16-BTN-017), RAHEEL HUSSAIN
(CUI/FA16-BTN-014) and BASIL KHAN (CUI/FA16-BSE-108) under the supervision of
“Sir Kashif Nasr” and that in (their/his/her) opinion; it is fully adequate, in scope and quality
for the degree of Bachelors of Science in Computer Sciences.
---------------------------------------
Supervisor
---------------------------------------
External Examiner
---------------------------------------
Head of Department
(Department of Computer Science)
4
EXECUTIVE SUMMARY
Many downloader are available on Playstore and on different website are available but that
all have one problem they download only one video at one time and there downloading speed
is slow and they have another main problem is that they can’t download youtube playlist so
we developed the downloader with new future which will download the playlist of youtube.
Project proposes Youtube playlist downloader which provides user the flexibility to download single,
multiple, on selection basis or the whole playlist from Youtube, Facebook and Instagram in all
available formats. Download Scheduling can also be done. This results in effective utilization of time
as well as bandwidth.
5
ACKNOWLEDGEMENT
All praise is to Almighty Allah who bestowed upon us a minute portion of His boundless
knowledge by virtue of which we were able to accomplish this challenging task.
We are greatly indebted to our project supervisor “Sir Kashif Nasr” and our Co-Supervisor
“Mr. Mukhtar Zamin”. Without their personal supervision, advice and valuable guidance,
completion of this project would have been doubtful. We are deeply indebted to them for
their encouragement and continual help during this work.
And we are also thankful to our parents and family who have been a constant source of
encouragement for us and brought us the values of honesty & hard work.
6
TABLE OF CONTENT
1 Introduction............................................................................................................................9
1.1 Brief...................................................................................................................................9
1.2 Relevance to Course Modules...........................................................................................9
1.3 Project Background...........................................................................................................9
1.4 Literature Review............................................................................................................10
1.5 Analysis from Literature Review (in the context of your project)..................................10
1.6 Methodology and Software Lifecycle for This Project...................................................10
1.6.1 Rationale behind Selected Methodology...................................................................10
2 Proble Defination.................................................................................................................11
5.1 Algorithm........................................................................................................................37
5.2 External APIs..................................................................................................................37
5.3 User Interface..................................................................................................................38
6 Testing and Evaluation........................................................................................................43
7.1 Conclusion.......................................................................................................................53
7.2 Future Work....................................................................................................................53
References.....................................................................................................................................54
7
LIST OF FIGURES
8
Youtube Playlist Downloader
1 Introduction
Now a days we live in age of information communication and technology (ICT). We can’t
think single moment without Internet.
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube, Facebook
and Instagram in all available formats. Download Scheduling can also be done. This results
in effective utilization of time as well as bandwidth.
1.1 Brief
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube,
Facebook and Instagram in all available formats. Download Scheduling can also be done.
This results in effective utilization of time as well as bandwidth.
We are developing an android based smart phone and desktop application for mobile and desktop
users.
The user will download complete videos playlist from Youtube, Facebook and Instagram through
one click.
1.5 Analysis from Literature Review (in the context of your project)
When we review all the relevant downloader we analysed that there download speed is so
less and they can’t download the playlist of youtube videos.
1.6.1 Rationale behind Selected Methodology
Generates working software quickly and early during the software life cycle.
More flexible – less costly to change scope and requirements.
Easier to test and debug during a smaller iteration.
Easier to manage risk because risky pieces are identified and handled during its
iteration.
Each iteration is an easily managed milestone
2 Problem Definition
In the application “Youtube Playlist Downloader” have lots of problem during development
so we face the problem in connection, synchronization, designing and with APIs etc. which
are discussed below in details.
Chapter 1:
2.1 Problem Statement
How to synchronization between Websites.
It’s challenge for us how to connect our downloader to each website where we
want to download video.
How to install Visual Studio.
The main problem here is occur how to install Visual Studio and Android Studio
latest version for normal laptop which was so challenging task for us.
Designing of Interface.
During the design of interfaces we have problem the color combination and
choose some attractive and comfortable color.
How to set API version.
The other challenge for us is that when we successful setup the environment and
want to start new project than the selection of API version was challenging task
for us and understanding the restriction of API version.
How to design accurate algorithm.
When we write some algorithm for downloader, we have a lot of problem in the
code to get correct result.
How to set Desktop Application resolution.
Its challenging task for us how to manage desktop resolution for all PCs and
Laptops.
Managing of multiple downloading at a time.
It’s the main problem in our algorithm how to manage multiple downloading at a
time.
Managing connection among the Websites.
Another task for us is that to manage the connection among the downloader and
websites.
Managing APIs level of android.
The other problem is for us is that to manage the API level of android OS.
Managing the flow of downloader.
The main problem was that how to handle the flow and sequence of youtube
playlist downloader.
2.2 Deliverables and Development Requirements
Download videos with complete size.
We provided the different file size option for downloading so it depends on user
which size he/she like to download.
Download history.
We facilitate the user to see the history of downloading.
Using Local Storage.
We provide that the video will download into localstorage.
Accurate results and outputs of the downloader.
The downloader is giving us the accurate result at real time.
Attractive graphic of the application.
We provide good graphics in our downloader which are more attractive and easier
to use and understand.
Successfully connectivity among the downloader and website on run time.
We provided the successful connection between the website and downloader at
real time.
Provide 100% accuracy of the downloader.
Our first version of the youtube playlist downloader is giving us 100% accurate
result.
3 Requirement Analysis
The following parts of Software Requirements Specification (SRS) report should be
included in this chapter.
3.1 Use Cases Diagram
The Figure 3.1 shows how the primary users interact with the system.
Description: User can select video format size to choose correct format
size for download.
Trigger: When the user will paste the link and after that he/she will
choose video size.
Preconditions: PRE-1. System should be ideal.
PRE-2. User must provide the link before.
Postconditions: POST-1. User will successfully choose the format size which
they want.
Normal Flow: 1. User will request for to choose video file size.
2. System will show the menu to select file size.
3. User will choose the correct format size which he
wants.
Alternative 1.0 System fail/crash
Flows: 1. System will display an error message.
Exceptions: 1.0. E1 User will choose the format size correctly which he
wants.
Business Rules BR-1 After providing the correct link than user will choose
the file size.
Assumptions: N/A
Business Rules BR-1 User will successfully start the downloading of video.
Assumptions: N/A
Assumptions: N/A
Normal Flow:
1. User will request for Download Playlist Video.
2. System will show the next menu of format size.
Alternative 1.0 System fail/crash.
Flows: 1. System will display an error message.
Exceptions: N/A
Business Rules BR-1 User will download the complete Youtube playlist.
Assumptions: N/A
Normal Flow:
1. User will request for to visit Facebook.
3.3.1 Downloading:
Functional requirement of Join Downloading is shown in the table 3.26.
3.4.3 Reliability
RE-1: Generate error message when invalid data will be entered and should
recovered less than 3 second.
3.4.7 Extensibility
EX-1: System should be able to extend adding large amount of new feature.
4.
5 Implementation
In this chapter we will discuss the complete implantation of the project and you can
easily understand internal and external structure of our project. We try our fully effort to
explain you our project algorithm, interfaces and external APIs which we used in the
project.
3.
5.1 Algorithm
We used the list concept in our project when we need to download complete list of
Youtube. And we used socket.io for real time response which will help us to get real
time response.
We used external APIs of Youtube, Facebook and Instagram to download the videos
from these websites and we used APIs for to establish connection through internet.
And we make two separate algorithms for downloading of video from Youtube one
will download single video and other will download the complete list from youtube.
Further we make a separate algorithm which download the video from Facebook and
Instagram that was very difficult task for us to manage and handle their APIs.
5.2External APIs
Describe the APIs used in the table 5.1.
4.
1.
6.1 Manual Testing
The manual testing result is list down with complete description and detail.
1.
6.1.1 System testing
Upon completion, the system must be tested to ensure proper functioning
and to satisfy the system's specifications. So we checked our application it
match the system specifications.
6.
7.1 Conclusion
We have been developed the android and desktop application of “Youtube Playlist
Downloader” for all, in this application we cover the mostly module of the
downloader so we can download the single video and complete playlist of video
download from the Youtube and also we can download video from Facebook and
from Instagram. We got 100% successfully working of version 1.0 of our application.
which is completed and we will launch it on google play store for all users free of
cost.
we developed the downloader with new future which will download the playlist of
youtube.
Project proposes Youtube playlist downloader which provides user the flexibility to
download single, multiple, on selection basis or the whole playlist from Youtube, Facebook
and Instagram in all available formats. Download Scheduling can also be done. This results in
effective utilization of time as well as bandwidth.
References
In this chapter we provide the references where we get the help to build the application. We
provide all references with complete detail. We get help with these references to build successful
application and to meet the criteria of comity.
[1].https://www.tutorialspoint.com/index.htm
[2].https://www.w3schools.com/bootstrap/bootstrap_ver.asp
[3].https://www.youtube.com/
[4].https://www.node.org/
[5].https://www.w3schools.com/nodejs/default.asp
[6].https://www.w3schools.com/graphics/default.asp
[7].https://developers.google.com/android/
[8].https://developer.android.com/guide/topics/ui/layout/recyclerview
[9].https://www.youtube.com/watch?v=IGGT_jfZQrA
[10].https://www.tutorialspoint.com/android/android_shared_preferences.htm
[11].https://www.geeksforgeeks.org/shared-preferences-in-android-with-examples/
[12].https://www.techotopia.com/index.php/Android_Broadcast_Intents_and_Broadcast_Re
ceivers
[13].https://www.concretepage.com/android/android-options-menu-example-using-
getmenuinflater-inflate-oncreateoptionsmenu-and-onoptionsitemselected