// case study · personal project · [●] live
Scrobble Vault
20 лет музыкальной истории Last.fm с двух аккаунтов, объединённых в одну базу — скроблы с 2005 года превращены в исследуемый дашборд: вкус, привычки, эволюция жанров и созвездия артистов.
ИДЕЯ
Last.fm копит скроблы годами, но история разбросана по аккаунтам,
а встроенная аналитика — поверхностная. У меня их три:
santych, crust_botan и santozzzzzz — суммарно с 2005 года.
Идея — слить все три в одну базу и построить дашборд для настоящих раскопок: 20 лет вкуса одним полотном. Не просто «топ-100 артистов», а эволюция жанров, сезонность, лояльность, одержимости и даже «созвездия» — граф артистов, связанных общими тегами.
ВХОДНЫЕ ДАННЫЕ
// last.fm api → база → дашбордsantozzzzzz
→ JSON
- Слияние аккаунтов: старый и новый Last.fm сшиваются в единую непрерывную историю 2005→2025 без дублей.
- TimescaleDB: гипертаблицы для быстрых time-series агрегаций (по дням/неделям/годам) поверх сотен тысяч строк.
- Скрапер уважает rate-limit и «reasonable usage» Last.fm, тянет полную историю порционно через пагинацию.
ЧТО ВНУТРИ
// 20+ вьюСводка: тоталы, первый/последний скробл, топ артистов, треков и альбомов
Стримграф эволюции жанров за 20 лет — как менялся вкус год к году
Граф «созвездий» — артисты, связанные общими тегами/жанрами
Музыкальное путешествие — нарратив по эпохам прослушивания
Одержимости — артисты и треки, захватившие конкретный период
Лояльность — кого слушаю стабильно годами, а кто пропал
Сезонность — что играет зимой vs летом, паттерны по месяцам
Year in review — разбор каждого года отдельной страницей
Страницы артиста, альбома, трека, жанра и конкретного дня
СКРИНШОТЫ
// клик = полный размер · music.devisfun.ru
Дашборд — 270 403 скробла, первый/последний, топы
Constellations — граф артистов по общим тегам
Genre Evolution — стримграф вкуса за 20 лет
Genres — DNA жанров и распределение
Journey — нарратив по эпохам прослушивания
Obsessions — что захватывало в каждый период
Seasonal — зима vs лето, паттерны по месяцам
Loyalty — кого слушаю стабильно годами
Year in review — разбор каждого года
└─ drill-down страницы // артист / альбом / день
СТЕК & АРХИТЕКТУРА
Монорепо из четырёх частей: скрапер на Python тянет историю из Last.fm API, PostgreSQL + TimescaleDB хранит её как time-series, Express + Prisma отдаёт REST с фильтрами и пагинацией, а Vue 3 + Pinia рисует 20+ аналитических вью. Оркестрация — PM2 и Docker.


