Skip to content

CarlosFranzetti/discogs-stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎡 Discogs Vinyl Collection Streamer

🎧 Your entire vinyl collection, right in your pocket. πŸ”₯

Dig through your existing records, browse your wantlist, and discover what you already own - anytime, anywhere. Turn your Discogs collection into a fully streamable music library! πŸ“€βœ¨


✨ Features

🎸 Browse Your Collection - Explore all the vinyl records you already own from Discogs πŸ“Š CSV Import - Load your collection and wantlist directly from CSV exports - no login required πŸ” Background Scraping - Automatically finds YouTube audio and high-quality cover art for every track in the background πŸ’Ύ Smart Persistence - Saves all resolved metadata to the cloud database, so your collection loads instantly next time 🎨 Themes - Choose from multiple themes (Default Dark, Midnight Purple, Vintage Green) to match your vibe πŸ”€ Smart Shuffle - Toggle between shuffled and sequential (artist β†’ album β†’ track order) playback πŸ”Ž Playlist Search - Live-filter your queue by title or artist right in the playlist panel πŸ“± Mobile First - Designed for on-the-go access with a smooth, app-like experience that fits any screen 🎡 YouTube & Bandcamp - Dual playback providers for maximum compatibility ❀️ Like/Dislike Tracks - Curate your listening experience with track preferences πŸ›‘οΈ Failsafe Audio Chain - yt-dlp β†’ Invidious β†’ YouTube API ensures playback even when quotas run out πŸ” Auto-Retry Unavailable Tracks - Dimmed tracks retry in the background; tap once to queue the retry, tap again when resolved to play


πŸš€ Getting Started

Prerequisites

  • Node.js & npm installed
  • A Discogs account (optional, for OAuth via Settings)
  • Supabase project (for backend services)

Installation

# Clone the repo
git clone https://github.com/CarlosFranzetti/discogs-stream.git
cd discogs-stream

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Add your VITE_SUPABASE_URL and VITE_SUPABASE_PUBLISHABLE_KEY

# Start the development server
npm run dev

πŸŽ‰ Open http://localhost:8080 and start streaming!


πŸ› οΈ Development Commands

Command Description
npm run dev πŸ”₯ Start development server (localhost:8080)
npm run build πŸ“¦ Build for production
npm run build:dev πŸ› Build for development mode
npm run lint 🧹 Run linter
npm test βœ… Run all tests
npm preview πŸ‘€ Preview production build

πŸ“‚ Project Structure

src/
β”œβ”€β”€ components/          # 🧩 React components
β”‚   β”œβ”€β”€ ui/             # 🎨 shadcn-ui components
β”‚   β”œβ”€β”€ Player.tsx      # πŸ–₯️ Desktop player
β”‚   └── MobilePlayer.tsx # πŸ“± Mobile-optimized player (primary)
β”œβ”€β”€ hooks/              # 🎣 Custom React hooks
β”œβ”€β”€ pages/              # πŸ“„ Route components
β”œβ”€β”€ lib/                # πŸ”§ Utilities
β”œβ”€β”€ types/              # πŸ“ TypeScript types
└── integrations/       # πŸ”Œ Supabase client

🎯 Key Technologies

  • ⚑ Vite - Lightning-fast build tool
  • βš›οΈ React 18 - UI framework
  • 🎨 Tailwind CSS + shadcn/ui - Beautiful, accessible components
  • πŸ—„οΈ Supabase - Backend, edge functions & persistent cloud cache
  • 🎡 YouTube IFrame API - Audio playback
  • 🎢 Bandcamp Embeds - Alternative playback source
  • πŸ“€ Discogs API - Collection & release data
  • πŸ”§ yt-dlp + Invidious - Quota-free direct audio extraction

🌟 Recent Updates (Feb 2026)

πŸ›‘οΈ Failsafe Audio Chain - YouTube searches now always run through yt-dlp β†’ Invidious β†’ YouTube API, even after quota is exceeded. No more dead silence! πŸ’Ύ Cloud Persistence on Import - CSV imports now write resolved YouTube IDs and cover art straight to the database. Reopen the app and everything is there instantly πŸ”€ Sequential Shuffle - Shuffle OFF now sorts your playlist by artist β†’ album β†’ track position. Toggle ON to randomize, toggle back OFF to restore the ordered view πŸ”Ž Playlist Search - New search bar at the top of the playlist panel lets you filter your queue live by title or artist πŸ” Smart Dimmed Tracks - Tracks without a stream are dimmed (not removed). First tap triggers a silent background retry; second tap plays if it resolved. Background verifier also retries non_working tracks automatically over time πŸ“± Cleaner Title Screen - The "Connect via CSV files below or sign in" card is gone. Just upload your CSV and hit Start Listening 🎯 Track Sync on Start - If audio is already preloading when you tap Start Listening, the displayed track now correctly matches what's actually playing βš™οΈ Discogs OAuth in Settings - Discogs account connection moved to the Settings panel (gear icon) with a clear experimental warning


πŸ“œ License

This project is open source and available under the MIT License.


πŸ’– Built With Love

For vinyl lovers, by vinyl lovers. πŸ“€βœ¨

Happy Streaming! 🎧πŸ”₯

About

🎡 Your entire vinyl collection, right in your pocket. Dig through records, browse your wantlist.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages