How jmperez/spotify-dedup works
Spotify Deduplicator is a web app that authenticates with Spotify, scans a user’s playlists and liked songs for duplicates, and lets the user remove them without replacing playlists. The graph follows the evidenced login-to-scan workflow and includes the documented duplicate-removal capability, plus the product’s localized landing-page content. The scan internals and refresh endpoint were not excerpted, so their detailed calls are omitted; the README supports the broader Spotify-library workflow.
Main entry points: pages/index.tsx Landing page · deduplicator.ts Duplicate detection · spotifyApi.ts Spotify API client · fr/index.tsx Language pages
Components 20
Web experience
- Landing page
components/pages/index.tsx - Scan interface
components/main.tsx - Analytics events
utils/analytics.ts
Spotify authentication
- OAuth window
src/auth/oauth2window/index.ts - Authentication manager
src/auth/AuthenticationManager.ts - Token manager
src/auth/token/TokenManager.ts - Code exchange
app/api/auth/exchange/route.ts
Library deduplication
- Library processing
dedup/process.ts - Duplicate detection
dedup/deduplicator.ts - Paged requests
dedup/promiseForPages.ts - Spotify API client
dedup/spotifyApi.ts - API fetch
dedup/customFetch.ts
Localized content
- Translations
i18n.ts - Language pages
pages/fr/index.tsx - Product features
components/features.tsx - User reviews
components/reviews.tsx - Site footer
components/footer.tsx
Other components
- User
- Spotify accounts
- Spotify Web API
Connections 18
- User → Landing page: opens
components/pages/index.tsx - Landing page → OAuth window: starts login
components/pages/index.tsx - Authentication manager → Token manager: exchanges code
src/auth/AuthenticationManager.ts - Token manager → Code exchange: posts code
src/auth/token/TokenManager.ts - Code exchange → Spotify accounts: requests tokens
app/api/auth/exchange/route.ts - Landing page → Scan interface: renders after login
components/pages/index.tsx - Scan interface → Library processing: starts scan
components/main.tsx - Library processing → Duplicate detection: scans library
- Duplicate detection → Spotify API client: requests data
dedup/deduplicator.ts - Duplicate detection → Paged requests: uses pagination
dedup/deduplicator.ts - Spotify API client → API fetch: uses fetch
dedup/spotifyApi.ts - Spotify API client → Spotify Web API: calls
- User → Language pages: opens locale
pages/fr/index.tsx - Language pages → Translations: loads translations
pages/fr/index.tsx - Language pages → Landing page: renders
pages/fr/index.tsx - Landing page → Product features: renders
components/pages/index.tsx - Landing page → User reviews: renders
components/pages/index.tsx - Site footer → Analytics events: logs events
components/footer.tsx