Introdução
Às vezes eu gosto de fazer perguntas completamente inúteis para os meus dados.
Não “qual foi o artista que eu mais ouvi?”, porque o last.fm responde isso facilmente. Também não “qual é a música mais tocada?”. Essas perguntas já vêm prontas.
A pergunta da vez foi outra:
Qual foi o artista que eu passei mais tempo sem ouvir antes de voltar a escutá-lo?
E já que estava nisso, resolvi perguntar a mesma coisa para músicas individuais.
A ideia é simples: para cada música (ou artista), calcular quanto tempo passou entre uma execução e a seguinte. Depois é só procurar o maior intervalo.
Baixando os dados
Uso o pacote scrobbler para baixar todo o meu histórico de execuções registrado no last.fm.
library(scrobbler)
library(tidyverse)
api_key <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
shared_secret <- "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
my_songs <-
download_scrobbles(
username = "grandeabobora",
api_key = api_key
) |>
as_tibble(
tail(-1),
validate = NULL,
.name_repair = "check_unique"
) |>
mutate(date = dmy_hm(date))
O objeto my_songs possui uma linha para cada scrobble, incluindo artista, álbum, música e a data da execução.
A partir daí, basta reorganizar os dados.
Quanto tempo fiquei sem ouvir cada música?
A estratégia foi ordenar as execuções por música e por data. Em seguida, dentro de cada grupo, usar lag() para recuperar a execução anterior da mesma música.
A diferença entre as duas datas é exatamente o intervalo que fiquei sem ouvi-la.
diferenca <-
my_songs |>
arrange(song_title, artist, date) |>
group_by(song_title, artist) |>
mutate(
tempo_desde_ultimo_play = date - lag(date),
dias_desde_ultimo_play =
as.numeric(
tempo_desde_ultimo_play,
units = "days"
)
) |>
ungroup() |>
select(
artist,
song_title,
date,
dias_desde_ultimo_play
)
O topo da lista ficou assim:
diferenca |>
arrange(desc(dias_desde_ultimo_play))
## # A tibble: 158,726 × 4
## artist song_title date dias_desde_ultimo_play
## <chr> <chr> <dttm> <dbl>
## 1 The Strokes Killing Lies 2026-07-31 12:05:00 6098.
## 2 Nico Nicolaiewsky A Vida É Confus… 2025-06-25 01:22:00 6033.
## 3 The Beach Boys Don't Talk (Put… 2025-06-11 17:27:00 6021.
## 4 Radiohead Coke Babies 2026-02-15 12:44:00 5948.
## 5 Arctic Monkeys Fake Tales of S… 2026-02-05 12:10:00 5940.
## 6 The Pastels Over My Shoulder 2025-09-17 17:52:00 5936.
## 7 The Pastels Thru' Your Heart 2025-09-17 11:58:00 5936.
## 8 Nico Nicolaiewsky Nada faz sentido 2025-06-24 17:10:00 5912.
## 9 Elastica Annie 2025-05-13 12:58:00 5895.
## 10 Pelvs Barbecue 2025-08-26 23:54:00 5819.
## # ℹ 158,716 more rows
A campeã foi “Killing Lies”, do The Strokes.
Entre uma execução e outra passaram 6.098 dias.
Isso corresponde a aproximadamente 16 anos e 8 meses.
Na verdade, o resultado faz bastante sentido. Meu histórico do last.fm começa no fim dos anos 2000, então basta uma música ter tocado uma única vez naquela época e ser redescoberta recentemente para aparecer no topo da lista.
Aliás, olhar essa tabela foi uma viagem no tempo. Várias músicas que eu nem lembrava que existiam apareceram ali.
E se a pergunta for sobre artistas?
Depois fiquei curioso para saber quais artistas ficaram mais tempo esquecidos.
O código muda muito pouco. Basta agrupar por artista em vez de música.
diferenca_artistas <-
my_songs |>
arrange(artist, date) |>
group_by(artist) |>
mutate(
tempo_desde_ultimo_play = date - lag(date),
dias_desde_ultimo_play =
as.numeric(
tempo_desde_ultimo_play,
units = "days"
)
) |>
ungroup() |>
select(
artist,
dias_desde_ultimo_play
)
O resultado é esse:
diferenca_artistas |>
arrange(desc(dias_desde_ultimo_play))
## # A tibble: 158,726 × 2
## artist dias_desde_ultimo_play
## <chr> <dbl>
## 1 Redd Kross 5581.
## 2 The Shazam 5440.
## 3 Olho Seco 5233.
## 4 Cólera 5233.
## 5 Astrud Gilberto 5106.
## 6 White Rabbits 4758.
## 7 The Weirdos 4680.
## 8 Jad Fair 4613.
## 9 Erykah Badu 4568.
## 10 Stiff Little Fingers 4562.
## # ℹ 158,716 more rows
O artista que ficou mais tempo longe dos meus ouvidos foi Redd Kross.
Foram 5.581 dias, ou cerca de 15 anos e 3 meses, entre duas audições.
O interessante é que os resultados são bem diferentes dos obtidos para músicas.
Uma música pode ficar esquecida por mais de uma década, enquanto continuo ouvindo outras faixas do mesmo artista. Da mesma forma, um artista inteiro pode simplesmente desaparecer da minha rotina por anos até reaparecer por algum acaso, seja uma recomendação de alguém, um show, uma conversa ou uma playlist.
Uma métrica diferente
Gosto desse tipo de análise porque ela foge das estatísticas tradicionais do last.fm.
Todo mundo sabe descobrir quais artistas ouviu mais, quais discos dominaram determinado ano ou qual música tocou centenas de vezes.
Mas olhar para os maiores intervalos entre audições conta outra história.
É uma história sobre reencontros.
Sobre discos que fizeram sentido em uma fase da vida, desapareceram completamente e, muitos anos depois, voltaram como se nunca tivessem ido embora.
Acho que, no fim das contas, essa é uma estatística bem mais interessante do que simplesmente contar plays.