ViralVideos.com
Viral Videos was a website that aggregated and ranked videos from YouTube based on how “viral” they are. I redesigned and rebuilt the entire website as my first project working for Max Games. This project was also the first time I used NodeJS for a component of a larger production system.
The project consisted of three major components:
- A NodeJS scraper that ran on a cron job schedule to access the YouTube API and collect videos that met a certain threshold of interest. This scraper would then gather metadata about the video, generate assets for the website using whatever was available from YouTube, and store the video in a database for manual review.
- A custom backend for content editors to review the collected videos, extract original content such as thumbnails and background artwork, and publish the videos to the website. The killer feature for our editors was a custom video player that allowed them to quickly review a video and extract the necessary content interactively. Editors could scrub through the video, pause, and take a snapshot of the frame they wanted to use as the thumbnail or background. The trick to accomplishing this was to build a proxy for YouTube video files that was served from our domain. This way CORS would not be an issue and the browser would allow us to access the video data directly.
- A frontend for users to browse the collected videos, filter and search for videos based on various criteria, and vote on videos to influence their ranking. The frontend was the last that I built with my old approach of using jQuery and PHP for everything.
The stack was very successful, and for a period it generated a decent amount of interest and traffic with this formula. We eventually stopped paying for editors to review content but the scraper continued to find the most popular videos on YouTube. The website ran without content editors for 2 years after I left Max Games, closing completely in 2019 after changes to the YouTube API made it impossible to collect videos in the same way.
Key Features
- Multi-faceted search and filtering system that allows users to drill down on
- Cron-based NodeJS script that interfaced with the YouTube API to collect videos meeting a certain threshold of interest each day
- Custom backend for displaying collected videos for content editors to manually review
- Custom video player for content editors to quickly review a video and extract original content such as thumbnails and background artwork