The main objective of this project was to find a way to download videos from Youtube at their highest quality possible.
Why?
Everytime I looked for a website to download a video or audio files, it didn't work or was full of ads.
So I created this tiny webapp where you and I can download mp3's or mp4's at their highest quality possible.
Since heroku has a timeout request at 30sec. If the download takes more than that it will break. It works for small video files (around 2/3min), depends on internet connection though. ๐
-
First copy and enter the URL of the desire Youtube video.
-
Select the format and Click Download.
-
In this Web app
node-ytdl-core
will firstly download Youtube videos inmp4
format no matter if itsAudio only
orVideo only
. -
If the selected output was
mp3
,FFmpeg
will convert thatmp4
file intomp3
. and then send it to the client. -
If the selected output was
mp4
,FFmpeg
will download first theirhighest quality audio possible
and then theirhighest quality video
. Why? because ytdl does not allow downloads highest audio and video at the same time. -
And finally FFmpeg will merge them into a single mp4 file and send it to the client.
Make sure to have NodeJS & FFmpeg.
Once you install them, go to /client
and /server
folders and run
npm install
And finally run on /server
folder
npm run dev
It will run client and server concurrently
HTML
,CSS
,ChakraUI
,JS
,ReactJS
,Express
,NodeJS
client
chakra-ui
,fortawesome
,axios
,framer-motion
,styled-components
,ytdl-core
,react-router
,formik
,framer-motion
server
ytdl-core
,@ffmpeg-installer/ffmpeg
,fluent-ffmpeg
,concurrently
,cors
,nodemon
.