GithubHelp home page GithubHelp logo

ubc-mds / trending_youtube_viz_r Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 34.55 MB

Youtube Trend Dashboard - Find out what key characteristics make a particular youtube video land in the trending section

Home Page: https://lzung.shinyapps.io/youtube-trend-visualizer/

License: MIT License

R 100.00%
barplot boxplot bubble-chart dropdown hover polar-coordinate youtube shinydashboard

trending_youtube_viz_r's Introduction

shiny-deploy Testing workflow

📹 Youtube Trend Analytics

GIF

Authors: Daniel Cairns, Natalie Cho, Lauren Zung

Welcome!

Thanks for visiting our repository for our dashboard! This document (README.md) will have all the general information you need to know about our project. You can either scroll down or click from the links below to jump to a specific section:

Project Motivation

Why and how videos go viral on YouTube can seem random and unpredictable. For the growing number of content creators on the platform, understanding what makes a trending video is incredibly valuable. To support these creators, we propose to build a dashboard which highlights key information about trending YouTube videos over time. The social media video sharing platform combines multiple factors in their assessment of the top trending videos each calendar year; they are not just ranking videos based on their total number of views. By analyzing these metrics, creators can better understand trends within their category group(s) and strategically plan how to market and direct their channel accordingly to produce more trending videos.

Live Dashboard

See our dashboard live on shinyapps.io here!

Dashboard Features

This dashboard is designed to deliver insights to YouTube content creators and enthusiasts on the top daily trending videos hosted by the platform. The visualization tool captures user interactions (likes, views, comments), publishing and trending dates, tag lists and more across tens of thousands of videos, with aims to have users interpolate their own understandings of YouTube's data using an effortless and engaging online interface.

The landing page gives users the ability to customize their viewing experience by adjusting the timeframe of interest using calendar widgets. This will adjust all charts on the web app to only illustrate data from videos that were trending between the chosen date settings. The four key visualizations are as follows:

Category Boxplots

Users can select via dropdown menu whether to plot the distribution of likes, comment or views across video categories. This provides an overview of different measures of popularity (including the median and interquartile range) for each group.

Top Channels Bar Chart

Creators may wish to see who the trendsetters were during a time period. A bar chart can capture the number of trending videos published by each top creator (by category, selected via menu), thus allowing users to determine where they stand in the lineup and/or find new sources of inspiration for their channel.

Popular Tags Bubble Chart

Dashboard visitors can observe common words and phrases in tag lists from numerous trending videos. A checklist menu will permit viewers to view tags from multiple categories so that they may integrate terms that are popular across communities to improve overall reach. To enhance data visibility, users can mouse over the bubbles to view a tooltip displaying the frequency of each tag by category.

Publishing Date Circular Bar Chart

A dropdown menu will provide options to customize the display to organize results by time of day, day of the week, or month of the year to highlight popular upload days/times on YouTube. This will enable users to make informed decisions about when to post to best increase their chances of having a viral video.

Dashboard Sketch

Please click on the link below to access the sketch on Figma. More detailed mockups of the intended features are included in the image below.

Figma Prototype

Mockup

Dataset Used

Youtube. (2023). YouTube Trending Video Dataset (updated daily) [Data set]. Kaggle. https://doi.org/10.34740/KAGGLE/DSV/5003820 Note: As we are based in Canada, we are using data extracted from videos that were trending in Canada due to file size limitations and for ease of loading/extraction. However, given the flexibility of our web app, it can be easily extended to YouTube data from other countries.

Get involved

How to run the app locally and make contributions

If you would like to contribute to our project, please read the CONTRIBUTING.md file and then follow these steps:

  • Ensure that you have R and Rstudio installed on your computer
  • Fork our repository and clone it onto your computer
  • Create a new branch (named according to the specifications in the CONTRIBUTING.md file)

To run the app locally:

  • Open the project (i.e., the app.R file) in Rstudio
  • Ensure all the necessary packages are installed
install.packages(c("shiny", "bslib", "shinyWidgets", "shinydashboard", "ggplot2", "forcats", "plotly", "thematic", "scales", "rlang", "stringr", "showtext", "sysfonts", "packcircles", "lubridate", "rsconnect"))
  • Click "Run App"

To propose new changes:

  • Make your changes to the code in Rstudio
  • Commit your changes (with an informative commit message)
  • Push your changes to your fork
  • Submit a pull request

Places for improvement

  • Implement polar coordinate graph in ggplotly instead of ggplot2 for a more seamless dashboard integration
  • Add a tooltip for polar coordinate graph to show count of videos per segment
  • Distinguish between tooltip functionality for bubble graph
  • Colour-code bubbles in bubble graph by category

License

This dashboard is licensed under the terms of the MIT license.

trending_youtube_viz_r's People

Contributors

danielcairns avatar lzung avatar natalie-cho avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

natalie-cho

trending_youtube_viz_r's Issues

Milestone 2 Feedback

Congratulations on finishing milestone 2! We can see you put a lot of work into this project, excellent work! Below we list some specific feedback you can use to improve your project.

  • Submission instructions: mechanics: 4/4

  • Developing your Shiny App: mechanics: 12/15, quality: 5/5, viz: 15/15, accuracy: 7/7
    • The app's reactivity is working as expected -1
    o It takes a relatively long time for the app to be loaded. You might want to investigate possible ways to solve this.
    • There is one branch by each team member, making it obvious how much contribution each member had.
    • Labels in the Input widgets are not missing.
    • Plot axis are not missing.
    • The elements of the app are organized.
    • There is an app title
    • The plots, labels, and titles are easy to read
    • The link to the dashboard is clearly visible near the top of your README. -2
    • The app is correctly deployed.

  • Reflection: reasoning: 6/6
    • There is a reflection-milestone2.md file and it is more than 500 words 
    • reflection-milestone2.md is included in the docs folder
    • Reading reflection-milestone2.md and comparing it with the milestone1 sketch, it is possible to understand what has changed and why

  • Improve the README: reasoning: 6/6
    • README.md: There is a project motivation section/explanation.
    • README.md: There is a high-level users instructions and gif showing the app usage 
    • README.md: It is prepared for potential collaborators. There is information included on how to install the app and run it locally. 

Milestone 1 Feedback

  • Submission (4)
    o 4/4 mechanics
     Please make sure to follow the release naming instructions. I have not deducted a mark this time but will for future instances
  • Section 1 (8 + 2)
    o 6/8 reasoning
     It would have been good to have extended the detail in what your app will do for this space and how it will do it
    o 2/2 writing
  • Section 2 (8 + 2)
    o 6/8 reasoning
     The data was not cited properly* and further data quality analysis on it is required. *Since it was cited elsewhere, only one of the two marks were deducted for the citation portion of the rubric
    o 2/2 writing
  • Section 3 (12 + 2)
    o 12/12 reasoning
    o 2/2 writing
  • Section 4 (10 + 2 + 3)
    o 10/10 visualization
     This is a well thought out design just make sure to follow official branding guidelines when using other company logos - https://developers.google.com/youtube/terms/branding-guidelines
    o 2/2 writing
    o 3/3 reasoning
  • Section 5 (4)
    o 4/4 reasoning
  • Code of Conduct (1)
    o 1/1 reasoning
  • Contribution Guidelines (1)
    o 1/1 reasoning

Circle packer implementation and reflection-milestone2.md

  • Implement circle packer graph (simply ensure that the graph is useable, overall app formatting will be improved upon afterwards)
  • create reflection-milestone2.md inside a doc folder of the repository
  • complete reflection-milestone2.md (500 word limit)

Motivation and purpose, research questions and usage scenarios

  • Provide motivation for why you are creating a dashboard

  • Identify target audience

  • Identify our role

  • Explain problem that dashboard can solve for the intended user

  • Create a persona description of a member in the intended target audience

  • Write small user story for what they might do with your app including:

    • Specific context of usage
    • Tasks associated with that use context
    • Hypothetical walkthrough of how the user would accomplish those tasks

Description of the data, teamwork contract, collaborative documentation

Pie chart with polar coordinate implementation and README.md improvement

  • implement pie chart with polar coordinates (simply ensure that the graph is useable, overall app formatting will be improved upon afterwards)
  • Reiterate the project motivation (explain the problem you are solving and why it's important)
  • Possibly edit usage section to make it high level
  • Explain how contributors can install your app and run it locally
  • Make suggestions for possible places for improvement

Description of app and sketch

  • Give high-level description of the interface for the app
    • 200-300 words in the README.md
  • Design a few plot panels
  • Create a mock-up for the app's visual design and interaction design (max 3 images of the features)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.