YouTube Analytics Pipeline

6 channels

Scraped, modelled and compared through the YouTube API, and refreshing on its own in Microsoft Fabric.

Kind of work
Data engineering
Year
2025
Built with
Python, YouTube Data API, MySQL, Microsoft Fabric, Data Factory, Lakehouse, Power BI
The MrBeast page of the YouTube report, with subscriber, view and like totals, the most engaging videos and a views trend.

An automated pipeline that collects video and channel statistics for six YouTube channels, models them, and serves a Power BI report that refreshes itself in Microsoft Fabric.

The question

My younger brother asked how many likes MrBeast had collected across his whole channel. Answering that properly means collecting every video, not reading one total, so I built it for six channels instead of one.

Collecting the data

A Python script calls the YouTube Data API for each channel and collects every video’s ID, publish date, title, category, duration, views, likes, favourites and comments, along with each channel’s subscriber count. Video records land in MySQL, subscriber counts in a CSV file, and the category names come from a web source.

The API has strict daily quotas, so the script batches its requests to stay under them. Indexes on the MySQL tables keep the report quick as the history grows.

Shaping it for analysis

YouTube returns durations in ISO 8601 and timestamps in mixed formats. I converted durations to seconds, normalised the dates, handled missing values, and added an engagement rate:

engagement rate = (likes + comments) / views

Moving it to Microsoft Fabric

The first version refreshed through an on-premises data gateway, which meant my laptop had to be on. I ported the whole pipeline to Microsoft Fabric. Data Factory runs the extraction on a schedule, the data lands in a Lakehouse with incremental loads, and the report refreshes from it in the Power BI Service. It has run end to end in the cloud ever since, with no local machine involved.

The report

The home page leads to a page for each channel and to the Face-Off Arena. A channel page shows how the channel has grown, its most and least engaging videos, and how often it posts against how well those videos do. The Face-Off Arena lets you pick any two channels and compare likes per video, subscriber growth and engagement side by side.

The live dashboard

The report as published in Power BI. Use the arrows at its foot to move between pages.

or open it in Power BI