Historical subscriber count tracker for any subset of YouTube channels. Flask backend and NextJS frontend for visualization.
This code is current deployed as PhaseTracker. Collecting the subscriber data for members of Phase Connect.
The code in this repo is the frontend. The backend API is available as a submodule. You can find the repo here
Below are the steps to set up the flask backend for data collection and serving data through a web server (/backend
folder of repo)
- PostgresSQL
- Python 3.11+
- Flask 2.1.2+ (Optional)
pip install -r requirements.txt
a. Add the environment variables in the .env.template
- B2API fields are uncessary if you are not auto upload to Backblaze B2
- YouTube API not necessary unless you plan on tracking a non-Holodex subset of channels
b. Specify trace colors in member_color.py
(based on Channel Name)
For collection using a set of channels belonging to a Virtual YouTuber organization listed on Holodex
- Edit main.py and edit
HOLODEX_ORG
to the organization name on Holodex andORG_MEMBER_COUNT
to the number of members that organization has
- Overshooting the member count may lead to additional loop iterations, but in general there will be no problems
HOLODEX_ORG = "Phase%20Connect"
ORG_MEMBER_COUNT = 75
- Add channels to be excluded from data collection in
data/excluded_channel.txt
- Execute with
python nijitrack.py
- Configure channels in data/channels.txt in the format
YOUTUBE_CHANNEL_ID,CHANNEL_NAME
for each line - Execute with
python nijitrack.py ytapi
A basic graph will be created using plotly and saved to index.html in the root directory
You can use app.py
to host your statistics through Flask or use any other services
Webpage design inspired by TrackHololive