// case study · personal project · [●] live
Spotify Extended History
Интерактивный дашборд, который превращает сырую выгрузку Spotify Extended Streaming History за 2019–2026 в исследуемую карту: музыка, подкасты, жанры и привычки прослушивания.
ИДЕЯ
Spotify по запросу отдаёт Extended Streaming History — сырые JSON-файлы с каждым прослушиванием за все годы. Раз в год показывают Wrapped и забывают. А хотелось копаться в собственной истории как угодно: что слушал в 2020-м в ночи, как мигрировали жанры, какие артисты были одержимостью месяц и пропали.
Так появился дашборд: грузит выгрузку, обогащает метаданными из Spotify Web API и превращает 130 тысяч строк в живые графики, тепловые карты и «машину времени» — не годовой отчёт, а инструмент для самокопания в музыкальном вкусе.
ВХОДНЫЕ ДАННЫЕ
// сырой экспорт → дашбордanalytics.py → агрегации по фильтру
модалки · global search
- Данные статичны → бэкенд грузит все JSON в память один раз при старте, дальше каждый запрос — быстрая агрегация с фильтром по году.
- Обогащение идемпотентно: жанры, фото артистов и обложки тянутся из Spotify Web API и кэшируются в
enrichment.json, чтобы не дёргать API повторно. - Таймзона по умолчанию MSK (UTC+3) — настраивается в
loader.py.
ЧТО ВНУТРИ
Топы артистов, треков, альбомов и подкастов + сводка музыка vs подкасты и часы по годам
Облако из 571 жанра, «Music DNA» по топ-жанрам и стримграф эволюции жанров по годам
Тепловая карта прослушиваний день×час, доля скипов, shuffle, пиковый час и любимый день
Движок открытий: новые артисты, кратковременные одержимости, забытые любимые
Шаро-style итоговые карточки с AI-сгенерированными фонами (OpenAI)
Глобальный поиск + детальные модалки по артистам, жанрам и конкретным дням
СКРИНШОТЫ
// светлая тема · клик = полный размер ↗
Обзор — ключевые цифры, музыка vs подкасты, часы по годам
Жанры — облако, Music DNA, эволюция жанров
Привычки — тепловая карта день×час, скипы, shuffle
Открытия — новинки, одержимости, забытые любимые
Музыка — топы артистов, треков, альбомов
Подкасты — 2 721 час, топ-шоу
Машина времени — срез прослушиваний по датам
└─ drill-down модалки // клик по артисту / жанру / дню открывает попап
СТЕК & АРХИТЕКТУРА
Разделённая архитектура: FastAPI-бэкенд как процессор данных (pandas-агрегации поверх загруженного в память DataFrame, REST-эндпоинты) и тонкий React/Vite-фронт, который рисует графики на Recharts и кэширует запросы.


