Trending YouTube Videos
2017/11/14 - 2018/06/14

MAT 259, 2019
Jiaheng Tang

For this project, I want to explore the trending videos on YouTube. As we know, each day YouTube has a list of its trending videos. The list can go up to 200 videos. I want to explore the categories of these videos, as well as how they change over time. I found a good dataset on Kaggle, which contains all the trending videos from 2017/11/14 to 2018/6/14, with their view count, likes count, dislikes count, etc.

The dataset can be downloaded from here.

Final Result
My design is a 3d cube space, where each of the axes represents a different aspect of the data. The x-axis shows the likes / dislikes ratio; the y-axis shows the number of views, and I used a log() function to make the distribution smoother; the z-axis shows the trending date, from the earliest to the latest date. I picked these inputs I don't want the visuals to look too clustered.

I've also integrated with the YouTube Data API to get the channel information when the user clicks on each point.

Below are some screenshots.

There is a lot of information on the graph. We can see that there are some longer ribbons on the right side of the screen, and most of these are music videos. I suspect it's because that MVs usually longer last on the trending list, especially when they first came out. Another interesting thing is that a lot of the channels have disappeared. When the API searches for the channel name, it comes back with no results. It seems like some of the hot channels last year are declining or disappearing.

To run the app, you will need to install three libraries, ControlP5, PeasyCam, and HTTP Requests for Processing. You can install them using Processing's Library Manager.

Open Processing, and go to Sketch -> Import Library -> Add Library, and search for these three libraries. Click Install to install them.

Obtain an API Key
The app uses YouTube Data API v3. I've included my key in the program, but there's no guarantee of how long the key will be valid. Therefore, it is recommended that you get your own API key from Google. The link for getting an API key is here.

All work is developed within Processing
Source Code + Data