Collaboration Analysis

Which YouTube channels are actually worth collaborating with?

A four-stage data pipeline that scrapes commenter overlap between channels, scores it as an audience-fit signal, and trains a classifier to flag collaboration candidates.

48 channels analysed
~2.1M commenter IDs processed
Node.js · MongoDB · Python / scikit-learn

Audience overlap, by channel

Percentage of each channel's commenters who also commented on the reference channel (Coke Studio Pak) — the core signal the pipeline is built to measure.

Flagged as collaborator Not flagged

Nizam Torwali's 52.94% comes from a channel with only 51 unique commenters — small comment counts make overlap percentage noisy, which is exactly the kind of case the classifier has to weigh against subscriber count.

How it works

Four independent scripts, chained through MongoDB, run in sequence across each candidate channel.

01

Scrape commenters

Pull a channel's videos via the YouTube Data API, then every top-level commenter on each one.

Node.js · YouTube Data API v3 · axios

02

Import to MongoDB

Watch for scraped CSVs and stream each one into a per-channel collection as it lands.

Node.js · MongoDB · csv-parser

03

Compare audience overlap

Intersect commenter ID sets against the reference channel and compute overlap percentage.

Node.js · MongoDB aggregation

04

Classify collaboration fit

Train a decision tree on overlap score and subscriber count to predict good collaborators.

Python · pandas · scikit-learn

Classifier results

Decision tree trained on audience overlap score and subscriber count, evaluated on a held-out test split.

100%
Test accuracy — 20-sample held-out split
Pred: NoPred: Yes
True: No130
True: Yes07
Worth being upfront about: the test set is only 20 rows, and the "collaborator" label correlates fairly directly with overlap score in this dataset — so 100% accuracy reflects a small, closely-related dataset more than a production-grade model. The interesting part is the pipeline that produces the overlap signal in the first place, not the classifier's headline number.

Stack

Node.js MongoDB YouTube Data API v3 Python pandas scikit-learn