Youtube Channel Monitoring System


🎞️ About The Project

YouTube analytics are essential for businesses partnering with channels to promote their products. However, without access to a specific channel's analytics information, assessing performance becomes challenging.

The YouTube Channel Performance Monitoring system can identify channels with higher performance in their views counts, engagement rate and upload frequency.

This Youtube channel monitoring system runs on the AWS Lambda serverless framework.
Once a day, the monitor logs youtube channel statistics such as subscriber count, video count, view count, etc.

Built with

  • Python 3.8
  • YouTube API V3
  • AWS Lambda
  • AWS RDS
  • MySQL Server

Project Repository

GitHub Repository

📈 Result

We are able to identify high-performing channels among listed channels.
Also, we can depict the viewership trend of high-performing channels.

💻 System Structure & process

  1. Input the list of Youtube channel names and channel IDs in the database (AWS RDS-MySQL)
  2. Request corresponding youtube channel statistics from Youtube Data API v3
  3. Store the Youtube channel information in the database automatically, once a day, using AWS Lambda serverless framework
  4. Data manipulation and visualization @Jupiter Notebook

Prerequisites

											pip install google-api-python-client
											pip install pandas
											pip install pymysql
											pip install sqlalchemy
											pip install boto3
										
MUST INPUT YOUR OWN Youtube API key & Database credentials
											api_key = 'Your API Key'
											hostname="Host Address"
											dbname="Database"
											uname="User Name"
											pwd="Your Password"
										

📊 Data

1. Input Data

Channel Name Channel ID
Example Channel UCK9M3uZMNjbqCI3O80-eF1k
... ...

2. Output Data

channel_name published_date subscribers views total_videos playlist_id retrieved_date
Example Channel 2015-12-27T21:31:03Z 1690000 680087428 185 UUJCx8aQrdx_ueXPmxTD2odQ 2022/09/15
... ... ... ... ... ... ...

published_date: The date channel was published
subscribers: Total subscriber count of the channel (Count in 1000)
views: Total view count of public viddeos in the channel (Decreases if video is unlisted)
total_video: Total number of public videos in the channel
playlist_id: Channel's playlist ID for further analysis
retrieved_date: The the data was retrieved

3. Data Manipulation

channel_name sub_diff view_diff upload_diff viewperupload sub_gain veiw_gain videoloads
Example Channel 2000 310902 4 777025.5 1000 42407 1
... ... ... ... ... ... ... ...

sub_diff: How much subscriber has increased overtime (Count in 1000)
view_diff: How much view has increased overtime
upload_diff: How many video was uploaded (or unlisted) overtime
viewperupload: Mean of view count affected per uploads, overtime: (view_diff/upload_diff)
sub_gain: Subscriber gain to the day before
view_gain: View gain to the day before

4. Evaluation

What we want to know: We want to know how much one video worth.
How to evaluate: How much view has increased overtime
Evaluation index: How many video was uploaded (or unlisted) overtime
Parameter Estimator: Mean of view count affected per uploads, overtime: (view_diff/upload_diff)

🚀 What's Next?

  • Conduct deeper channel analysis of top 3% youtube channels to identify which theme/concept of video is best performing
  • Run the system with +1000 samples to develop more precise prediction model for well-performing youtube channels.