Skip to content

luisecm/lastfmdiscogsscrobbler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luisecm LastFM/Discogs Scrobbler 🎵

A modern web application that automatically syncs your Discogs vinyl collection with Last.fm scrobbling. Perfect for vinyl collectors who want to keep their Last.fm profile updated with their physical music collection.

✨ Features

  • Discogs Integration: Import your vinyl collection from Discogs
  • Last.fm Scrobbling: Automatically scrobble tracks to your Last.fm profile
  • Real-time Updates: WebSocket support for live scrobbling
  • Beautiful UI: Modern, responsive design that works on all devices
  • Collection Management: Browse, search, and organize your vinyl collection
  • Listening History: Track what you've listened to and when
  • Mobile Ready: Progressive Web App (PWA) that can be installed on mobile devices

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Discogs account with API access
  • Last.fm account with API key

Installation

  1. Clone the repository

    git clone https://github.com/luisecm/lastfmdiscogsscrobbler.git
  2. Install dependencies

    npm run install:all
  3. Set up environment variables

    cp .env.example .env

    Edit .env with your API keys:

    DISCOGS_CONSUMER_KEY=your_discogs_key
    DISCOGS_CONSUMER_SECRET=your_discogs_secret
    LASTFM_API_KEY=your_lastfm_key
    LASTFM_API_SECRET=your_lastfm_secret
    LASTFM_USERNAME=your_lastfm_username
    LASTFM_PASSWORD=your_lastfm_password_hash
  4. Start the development server

    npm run dev
  5. Open your browser Navigate to http://localhost:3000

🏗️ Architecture

  • Backend: Node.js + Express server with SQLite database
  • Frontend: React + Vite with modern UI components
  • Real-time: WebSocket support for live updates
  • Database: SQLite for local storage of collection and history
  • APIs: Discogs API for collection data, Last.fm API for scrobbling

📱 Mobile App Potential

This web app is designed to be easily converted to a mobile app:

  • PWA Support: Can be installed on mobile devices
  • Responsive Design: Works perfectly on all screen sizes
  • Native-like Experience: Smooth animations and touch interactions
  • Offline Capability: Caches collection data for offline browsing

🔧 API Setup

Discogs API

  1. Go to Discogs Developer Settings
  2. Create a new application
  3. Get your Consumer Key and Consumer Secret

Last.fm API

  1. Go to Last.fm API Applications
  2. Create a new application
  3. Get your API Key and API Secret

📊 Database Schema

The app uses SQLite with the following main tables:

  • collections: Your Discogs vinyl collection
  • tracks: Track information for each album
  • scrobbles: Listening history and scrobble status
  • users: User preferences and API credentials

🎯 Future Enhancements

  • Spotify Integration: Link with Spotify for enhanced track matching
  • Social Features: Share collections with friends
  • Analytics: Detailed listening statistics and insights
  • Mobile App: Native iOS/Android applications
  • Cloud Sync: Multi-device synchronization
  • Import/Export: Backup and restore functionality

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Discogs for their comprehensive vinyl database
  • Last.fm for their scrobbling API
  • The vinyl collecting community for inspiration

About

What I have always wanted to build even if it will have 2 users: An app to scrobble into LastFM reproductions from your vinyl collection from Discogs

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors