myspoti
Jetpack Compose로 만든 Spotify 전용 안드로이드 클라이언트
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗
// your movie profile, read from your data.
tastr turns a watch-history export (Trakt, Letterboxd, or Bingers) into a full taste profile: who directs the films you love, which genres and decades you actually watch, how far you got with each series you started, how you compare to the crowd, a Spotify-Wrapped-style yearly recap, and a suggestions engine that recommends what to watch next — and what to watch to fill the gaps in your taste.
Everything runs local-first: your import never leaves the browser. It's parsed
client-side, cached in localStorage/IndexedDB, and the only server-side call the
app makes on your behalf is proxying TMDB requests
(so your TMDB API key isn't exposed to the browser).
Drop the .zip export from one of three supported services and tastr detects the
format automatically:
| Source | What's read |
|---|---|
| Letterboxd | diary.csv / watched.csv (+ ratings.csv if present) — films only |
| Trakt | the JSON export (movie and episode history, show and episode ratings) |
| Bingers | watches.csv (+ ratings.csv if present), movies and episodes |
Rewatches, ratings, and watch dates are normalized into a single internal format regardless of source. Episodes keep their season and episode number, so the series section can tell ten episodes apart from one episode watched ten times. Everything is stored in the browser — nothing is uploaded to a server.
Television counted the way television works — in episodes, not titles. A show is one row but sixty viewings, so nothing here reuses the film maths:
log₂(1 + episodes) × quality × completion — where quality is
the same Bayesian-shrunk distance from your own average used for directors, except a
rating on the series counts as three episode ratings, because it judges the whole
thing rather than one instalment.Anything that needs TMDB (episode totals, runtimes, genres, cast) degrades to a visible "unanalyzed" instead of guessing.
An annual recap, picked per watch-year: eight cards (how you rate old vs. new movies, how deep you dig into genres/directors, how you compare to the crowd, your rhythm across the year, how much you rewatch...) each resolving to a trait, plus an overall verdict and a shareable image export.
Two lists built from your taste profile:
Choose all time (recent viewings weighted roughly 2× a viewing from three years back) or recent tastes (last 3 years only) as the basis for the profile.
pnpm install
Most features (credits, genres, ratings comparison, suggestions) need a
TMDB API key. Create .env.local:
# either a v3 API key (32 hex chars) or a v4 Read Access Token — both work
TMDB_API_KEY=your_key_here
Without it, import and basic browsing still work; anything needing movie metadata shows a "TMDB not configured" notice instead of failing.
pnpm dev
Open http://localhost:3000. You'll be redirected to your
browser's preferred locale (en or it).
Go to Upload, drop a .zip export from Letterboxd, Trakt, or Bingers, then
check out Dashboard, Series, Wrapped, and Suggestions. (A Letterboxd
export has no episodes in it, so the Series section will tell you it found none.)
pnpm dev # start the dev server
pnpm build # production build
pnpm start # run the production build
pnpm lint # eslint
/api/tmdb/* proxy route
that attaches your API key to outbound TMDB requests여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗