thehardwarestore.ai

where AI agents shop for the right tools

── 99392 repos indexed ── | filtered by tag: music-downloader
spotDL/spotify-downloader ★ 26303 2279 APPLICATION

spotDL is a production-grade Python CLI that turns Spotify URLs, playlist links, or plain song searches into locally downloaded audio files with embedded metadata. In operation, it resolves track/album/playlist/artist metadata from the Spotify Web API (via official spotipy or free SpotipyFree), searches configured audio providers such as YouTube, YouTube Music, SoundCloud, BandCamp, and Piped, then downloads the best match through yt-dlp, converts it with ffmpeg, and embeds album art, tags, and lyrics using Mutagen. Additional commands support syncing local files to playlists, saving song metadata for later download, printing metadata, resolving URLs, and hosting a FastAPI-based web UI with Server-Sent Events and a Datastar-driven frontend.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 6 reusable components found
spotiflacapp/SpotiFLAC-Mobile ★ 6709 317 APPLICATION

SpotiFLAC-Mobile is a cross-platform mobile application (Android and iOS) that enables users to download and play high-fidelity music in lossless formats such as FLAC and DSD. It operates through an extension-based architecture where community-provided plugins supply download sources, metadata, lyrics, and cover art. The application integrates with streaming services like Deezer, Tidal, Qobuz, and Spotify via these extensions, handling authentication, rate limiting, and content resolution. The system is built on a multi-language stack: a core Rust backend handles audio processing, metadata tagging, library management, and network communication; a Flutter (Dart) frontend provides the user interface; and platform-specific code in Kotlin (Android) and Swift (iOS) bridges native features like file system access, USB audio output, and system audio routing. The Rust backend is exposed to mobile languages via UniFFI-generated bindings. Key data flows include: extension-based download orchestration with cancellation and progress reporting, audio file finalization (metadata embedding, ReplayGain scanning, cover art insertion), incremental library scanning with SQLite persistence, and multi-provider lyrics fetching with caching. The application also features hi-res audio authenticity verification using STFT analysis, direct USB audio output for bit-perfect playback, and a comprehensive extension management system with sandboxed JavaScript runtimes. External dependencies include FFmpeg for audio conversion, libusb for USB audio transport, and various web APIs (Deezer, MusicBrainz, LRCLib, Apple Music, etc.) for metadata and lyrics enrichment. The project demonstrates strong engineering practices with extensive unit and integration tests, a modular crate architecture, and reusable patterns for cancellation, progress tracking, and caching.

RATING: 8.5/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
fiso64/sockseek ★ 1092 67 APPLICATION

Sockseek is a command-line music downloader for the Soulseek peer-to-peer network, written in C# (.NET). It searches the Soulseek network for songs and albums, ranks candidates using a sophisticated multi-level sorting algorithm (bitrate, format, user reputation, etc.), and downloads the best match. The application supports multiple input sources: free-text search strings, Spotify/YouTube/Bandcamp/MusicBrainz URLs, CSV files, Soulseek links, and list files. It can run as a one-shot CLI tool or as a persistent daemon with an HTTP API and SignalR real-time event hub for remote control and live progress monitoring. Architecturally, the codebase is modular with four main projects: `Sockseek.Core` (core domain logic, search, download orchestration, extractors, file management), `Sockseek.Cli` (CLI entry point, interactive mode, progress rendering), `Sockseek.Server` (ASP.NET Core daemon with SignalR, event coalescing, state store), and `Sockseek.Api` (DTOs, JSON serialization context, client library). The system uses an event-driven architecture for decoupled progress reporting and state management. Extensive unit and integration tests (over 50 test files) and performance benchmarks (BenchmarkDotNet) ensure reliability and performance. Key features include incremental search result projection (album folders, aggregate tracks), a flexible profile system with condition-based auto-profiles, file condition evaluation (bitrate, sample rate, strict title/artist/album matching), fallback downloads via yt-dlp, stale download detection, and post-download command execution with variable substitution. The daemon exposes a full REST API and OpenAPI specification, enabling remote CLI clients and potential third-party integrations.

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 6 reusable components found
spotbye/SpotiFLAC ★ 11365 587 APPLICATION

SpotiFLAC is a cross-platform desktop application (built with Wails v2) that enables users to download high-quality FLAC audio from streaming services (Tidal, Qobuz, Amazon Music, Deezer) by leveraging Spotify metadata. The user inputs a Spotify track, album, playlist, or artist URL; the backend fetches metadata via Spotify's internal GraphQL API using reverse-engineered TOTP authentication, resolves streaming URLs through Songlink/Songstats, then downloads from the chosen service. The app includes a comprehensive suite of audio processing tools: audio analysis (spectrogram, FFT), BPM/key detection (Essentia.js), format conversion, resampling, ReplayGain tagging, lyrics management (LRCLIB), metadata enrichment, and file management. The frontend is built with React 19, TypeScript, Tailwind CSS, and shadcn/ui components, communicating with the Go backend via Wails bindings. The backend handles persistent storage (BoltDB for queue, history, caches), FFmpeg integration, and community API sessions for Tidal/Qobuz/Amazon. The architecture is a monolith desktop app with a clear separation between frontend UI and backend services, but the backend modules are tightly coupled to the app's specific workflow. The app is open-source (MIT) with a Patreon funding model and has a large internationalization footprint (11 languages). Key entry points include the SearchBar for URL input, the download queue for batch processing, and various tool pages (Audio Analysis, Converter, Resampler, ReplayGain, File Manager, Lyrics Manager). External dependencies include Spotify's undocumented API, Tidal/Qobuz/Amazon community APIs, Songlink, LRCLIB, MusicBrainz, FFmpeg, and Essentia.js. The codebase demonstrates significant reverse-engineering effort but carries maintenance risks due to reliance on fragile third-party APIs and hardcoded secrets.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
nathom/streamrip ★ 5075 427 APPLICATION

streamrip is a CLI application that downloads music tracks, albums, playlists, and artist discographies from Qobuz, Tidal, Deezer, and SoundCloud. It operates as an async pipeline: user input (URLs, IDs, or search queries) is parsed into pending items, resolved into metadata-rich media objects, and then concurrently downloaded with rate limiting. The system handles audio conversion (via ffmpeg), metadata tagging (via mutagen), artwork embedding, and maintains a SQLite database to avoid re-downloading known tracks. The codebase is modular with separate client classes for each streaming service, media abstraction layers, and a config system based on TOML. It uses rich for console output and progress bars.

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 5 reusable components found
b4ird/spotify_sync ★ 198 8 APPLICATION

spotify_sync is a CLI application that downloads Spotify-liked songs and playlists by matching them to Deezer equivalents via ISRC and downloading the matched tracks. It features a modular architecture with separate components for Spotify API interaction, Deezer matching/downloading, persistent data storage, and configuration management. Key features include multi-threaded downloading, scheduling, Pushover notifications, and Plex library scanning via Autoscan. The application supports multiple profiles for different Spotify accounts and includes robust configuration validation with legacy migration capabilities.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
spotiflacapp/SpotiFLAC-Extension ★ 842 596 APPLICATION

This repository contains the extension ecosystem for SpotiFLAC, a mobile application that downloads high-quality music from streaming services. The extensions are JavaScript modules that run in a sandboxed environment (vm.createContext) and implement service-specific adapters for providers like Amazon Music, Tidal, Qobuz, Deezer, Apple Music, and YouTube Music. Each extension exposes hooks such as search, download, handleUrl, and checkAvailability, and communicates with the host app via injected APIs (registerExtension, utils, session). The architecture is a set of isolated adapters with a shared pattern of quality fallback chains, retry logic with exponential backoff, metadata matching (ISRC, title, artist), and signed session authentication via a proxy API (api.zarz.moe). The primary data flow begins when a user provides a track URL or search query. The extension resolves the track metadata, checks availability (often via ISRC lookup or direct API calls), selects the highest available audio quality (e.g., Dolby Atmos, Hi-Res, Lossless), and initiates a download using signed tickets. The download process includes retry modes (poll_existing, new_ticket) and respects rate limits. The repository also includes a build script (scripts/build_packages.py) that creates reproducible .sflx archives and updates a central registry.json with SHA-256 digests for versioning and distribution. Key entry points are the source files in sources/<provider>/index.js, which contain the core business logic, and the corresponding manifest.json files that declare capabilities and permissions. The test files in tests/ demonstrate a sandbox testing pattern where host interfaces are mocked, allowing unit testing of fallback and matching logic. The repository is actively maintained with a community contribution model via pull requests, and the extension format is designed for easy addition of new streaming services.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 3 reusable components found
markcxx/coco-downloader ★ 553 166 APPLICATION

CoCo Downloader is a multi-platform music retrieval and acquisition tool with a web frontend (Next.js/React) and a desktop client (Python/PyQt5). It enables users to search, preview, and download music from multiple Chinese streaming services (QQ Music, NetEase Cloud Music, Kugou, etc.) by reverse-engineering their APIs and scraping their HTML. The architecture follows a monolithic design for each platform, with shared provider abstraction patterns but separate implementations. The web app exposes API routes that proxy requests to music providers, while the desktop client uses a similar pattern with Qt-based UI. Notable features include multi-quality downloads, playback with lyrics display, caching, and theme support. The repository demonstrates moderate engineering craftsmanship with clean provider interfaces but suffers from duplicated code across platforms, hardcoded and potentially brittle API parameters, and security concerns (exposed API keys). It is a functional hobbyist-grade application with a dedicated community (553 stars, 166 forks).

RATING: 6.4/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: