✧・゚: *✧ every song, remembered ✧*:・゚✧

Kanade

か な で ・ 奏

a tiny menu bar friend who writes down every song you play

about ABOUT.TXT
elysia@pink: ~/Developer/Kanade · zsh

elysia@pink:~/Kanade $ cat about.txt

a little scrobbler for the native apple music app.
she sits in the menu bar, listens quietly, and sends
every play to last.fm. no window, no fuss. ♪

elysia@pink:~/Kanade $ ./kanade --status

♪ watching apple music via system notifications
♡ scrobbles at half the song, like the rules say
✦ discord: "listening to apple music" · with art

elysia@pink:~/Kanade $

no polling loops, no accounts to make: your last.fm, your music, quietly kept.

what she does FEATURES.TXT
real scrobblinghalf the song or 4 minutes, the proper last.fm rules.
now playingyour profile updates the moment a track starts.
discord presence"listening to apple music" with album art & a live bar.
presence toggleone switch to go invisible. your listening, your call.
little controlsplay, pause & skip right from the popover.
seek awarescrub anywhere in apple music, kanade follows along.
pause awarepaused songs wait patiently. no drift, no fake plays.
album artfetched per song, shown in the popover & on discord.
honest countingseeking to the end won't fake a scrobble. she knows.

swift 6 strict concurrency, zero dependencies: the whole app is seven little files.

the popover MENUBAR.APP
listening...somewheresoftly
--:----:--
pharmacykitty · scrobblingquit

this one is css, but it's showing my real last.fm right now · the length is real, the position is her best guess ♡

on discord PRESENCE.IPC

Listening to Apple Music

listening...somewheresoftly
--:----:--

spoken over discord's local socket, by hand: frames, opcodes & a little nonce. no library.

how she listens NOTIFY.LOG
com.apple.Music.playerInfo

Player State → Playing ♪
Name → your song
Artist → your artist
Total Time → 254000ms

apple music announces every change,
kanade just listens politely.

system notifications, not polling · she naps between songs.

the rules SCROBBLE.TXT
1.a song must be longer than 30 seconds. tiny songs rest.
2.you must hear half of it, or 4 minutes. whichever is first.
3.pausing stops the clock. seeking doesn't cheat it.
4.then, and only then: scrobble ♪

the same rules last.fm has kept since forever · she follows them properly.

get kanade INSTALL.SH
♪ mac app store · coming soon ♡

kanade is getting dressed for the app store ♪
a little paid app, made with love: the link will live right here.

全部の歌を、覚えていてね

← back to main page ♡ privacy policy ✧