posts / yt-for-me

yt-for-me was a project I wrote in 2019, designed to be a YouTube clone with download capabilities.

The backend uses Express and Mustache for templating. It's available in both English and Spanish. It uses a vanilla JS stack, without any frameworks. The app consists of 3 different views: the homepage, the search view, and the video view. I chunked my code so that only scripts critical for loading this specific view are loaded, and all other scripts are are async + deferred.

A video illustrating the user flow and video discovery.

Under the hood, yt-for-me uses both ffmpeg and ytdl-core. As a web developer, I don’t often work with binaries like ffmpeg, but luckily there’s a precompiled binary that works with Heroku.

The download dropdown table with a multitude of options.

The info panel, indicating a song's name, view count and publisher with music copyright information, along with related videos.

The dropdown table with more options, featuring Gumi peeking at us from the YouTube embed.