I like downloading music onto my phone, however, Android OS does not allow one to change downloaded filenames. After using many random video-downloading websites, my storage is now filled with files of junk file names. Not very pleasant to use day after day I do say so myself. So I decided to start a project to create an alternative.

What it does

The web app allows users to input any valid YouTube URLs of public videos. It offers a simple user interface and provides more video and audio specifications given the user's preference. Moreover, albeit there are many alike websites on the internet, we created the only downloader, at least to our knowledge, that allows users to download extremely high-resolution/quality videos with audio.

How we built it

The web app is built with SvelteKit for the frontend, FastAPI for the backend, and styled with TailwindCSS. Some of the notable libraries are youtube-dlp, ffmpeg, and axios. Frontend and backend are hosted with Vercel and DigitalOcean respectively.

Challenges we ran into

How many pages do we have? First, we had to figure out how to not buffer, but instead, stream the files onto the user's disk. This allows a better downloading experience, which involves conversions in binary, subprocessing/Popen/piping in Python, and respective frontend adjustments for users to receive the download. Second, in order to support all languages, we had to fix bugs in the source code of open-source Python libraries. Third, youtube-dlp does not support high quality videos with audio, hence why all other downloading platforms often do not support such option. Using ffmpeg, we were able to stitch together video and audio files and stream the data to the client. The list goes on, as we were mostly new to the technologies we chose, but we are glad we did it.

Accomplishments that we're proud of

Getting the data stream to download on the user's computer without buffer. UI Design and animation

What we learned

In addition to the technologies, we learned an immense amount about networking, file types, APIs, binary formatting, UI/animations, hosting, and etc.

What's next for EasyRip

There are more features we can implement, for we did not finish all user stories we planned, such as time stamp slicing, riding sponsor portions of videos, and more platforms such as Twitch and TikTok.

Built With

Share this project: