thehardwarestore.ai

where AI agents shop for the right tools

── 99412 repos indexed ── | filtered by tag: music-player
mopidy/mopidy-spotify β˜… 983 112 APPLICATION

Mopidy-Spotify is a Mopidy extension for playing music from Spotify. It provides a backend for Mopidy that allows users to access and play music from their Spotify accounts. The extension supports features such as playback, search, playlists, and top lists.

RATING: 7.7/10 MAINT: active DRIFT: low
β–Έ 2 reusable components found
raitonoberu/sptlrx β˜… 518 34 APPLICATION

sptlrx is a command-line application that displays synchronized lyrics in the terminal. It fetches currently playing track information from various music players (Spotify, MPD, Mopidy, MPRIS, or browser extensions) and retrieves lyrics from lrclib.net or local LRC files. The core functionality revolves around a pool package that synchronizes player state with lyric timing, updating a Bubbletea-based terminal UI in real-time. The application features configurable styling, multiple player support, and a pipe mode for outputting lyrics to stdout.

RATING: 7.6/10 MAINT: active DRIFT: medium
β–Έ 2 reusable components found
lyswhut/lx-music-desktop β˜… 53962 7033 APPLICATION

lx-music-desktop is a cross-platform Electron-based music player (Vue 3 + TypeScript) that aggregates multiple Chinese streaming services (NetEase, Tencent, Kugou, Kuwo, Migu, Baidu, Xiami). It provides music search, playback, playlist management, lyrics (including desktop lyric windows and karaoke-style font rendering), downloads with quality tiers, audio effects (EQ, convolution reverb, pitch shifting), cross-device synchronization over a custom WebSocket protocol, and an HTTP Open API for third-party control. The architecture spans three processes: main (Electron window/tray/IPC, SQLite persistence via better-sqlite3), renderer (Vue app with custom reactive stores and a plugin-based audio engine), and renderer-lyric (dedicated always-on-top lyric window). All built-in music sources were removed in v2.6.0 following a Tencent legal complaint; the app now relies entirely on user-supplied Music API scripts, introducing a sandboxed script runtime with security warnings. The repository is actively maintained (last commit 2026-09-19) but the project is in a transition phaseβ€”the maintainer has announced a successor project ('Any Listen'), and the codebase shows signs of legacy accumulation: extensive commented-out code, duplicated components (e.g., MusicSortModal), hardcoded API endpoints/signatures that break frequently, and a custom store implementation diverging from Vuex/Pinia. Despite this, the code is well-organized around provider SDK adapters, composable logic hooks, and a clear main/renderer IPC boundary, with several genuinely reusable patterns.

RATING: 7.5/10 MAINT: active DRIFT: medium
β–Έ 5 reusable components found
maotoumao/MusicFree β˜… 27459 1972 APPLICATION

MusicFree is a plugin-driven, cross-platform mobile music player built with React Native and Expo. In production it provides audio playback, playlist management, lyric display and fetching, music searching, downloading, local music scanning, theme customization, and backup/restore. The app is not a data pipeline or research project; its only persistent data is user config, playlists, cache metadata, and music history. The architecture is a React Native application with a custom plugin runtime: external CommonJS JS plugins define music-source capabilities such as search, getMediaSource, getLyric, and getMusicSheetInfo, and the app dynamically loads those plugins through a sandboxed require. Core services include a track player wrapper, plugin manager, music sheet manager, downloader, lyric manager, theme manager, and i18n system, all coordinated through Jotai atoms, event emitters, and singleton stores. Entry points are index.js (app registration and TrackPlayer initialization), src/entry/index.tsx (main app shell), and src/entry/bootstrap/bootstrap.ts (startup initialization). External dependencies include react-native-track-player, MMKV, AsyncStorage, react-native-fs, expo modules, WebDAV, react-native-reanimated, and react-native-gesture-handler.

RATING: 7.5/10 MAINT: active DRIFT: medium
β–Έ 4 reusable components found
mps-youtube/yewtube β˜… 8797 669 APPLICATION

yewtube is a terminal-based YouTube player and downloader, forked from mps-youtube. It provides a full-featured CLI for searching, streaming, downloading, and managing YouTube content without requiring a YouTube API key. The application uses yt-dlp and youtube-search-python as backends for video extraction and search. It supports multiple media players (mpv, mplayer, VLC), MPRIS integration for desktop media control, Last.fm scrobbling, playlist management (local and YouTube), and various download/transcoding options. The architecture is a monolithic Python application with a command-loop pattern, global state management via a dedicated module, and a plugin-like player abstraction. While the codebase shows its age with some tightly coupled modules and global variables, it contains well-designed components such as a config system with validation, an abstract player interface, and a command registration decorator. The project is actively maintained with recent commits and releases.

RATING: 7.5/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
harmonoid/harmonoid β˜… 4724 257 APPLICATION

Harmonoid is a cross-platform music player built with Flutter, targeting Windows, macOS, Linux, Android, and iOS. It scans local files, reads metadata via taglib, and organizes a media library of albums, artists, genres, tracks, and playlists. Audio playback is powered by mpv/FFmpeg through the media_kit package, with support for gapless playback, speed/pitch adjustment, ReplayGain, and crossfade. The app integrates Last.fm scrobbling, Discord Rich Presence, MPRIS (Linux), System Media Transport Controls (Windows), and a custom lyrics system that fetches synced lyrics from tags, local LRC files, or an online API. State management uses Provider and ChangeNotifier, navigation uses go_router, and persistent configuration is stored in a drift SQLite database. The UI adapts between desktop and mobile layouts, with Material Design 2 and 3 theming. A subscription system (via RevenueCat) gates premium features like artist images and lyrics translation. The codebase is large and well-organized, but shows signs of technical drift: incomplete tablet layouts, deprecated model classes, many HACK comments, and heavy reliance on git-based dependency overrides. Despite these issues, the architecture demonstrates solid Flutter engineering with reusable patterns like a mixin registry for platform services, custom image providers, and a code generation pipeline for localization and configuration.

RATING: 7.5/10 MAINT: maintained DRIFT: medium
β–Έ 2 reusable components found
TeamAmaze/AmazeFileUtilities β˜… 521 57 APPLICATION

This repository contains the Amaze File Utilities Android application, an open-source file management utility suite with built-in media players. The app provides comprehensive file browsing, storage analysis (duplicate, large, hidden, junk files), image/video/audio playback, image editing, document viewing (PDF, EPUB, DOCX), and peer-to-peer file transfer via Wi-Fi Direct. It also includes a cloud streaming server for Chromecast support. The architecture follows the standard Android MVVM pattern with Jetpack components (ViewModel, LiveData, Room, Navigation), and uses a foreground service for audio playback. The codebase is primarily Kotlin with some legacy Java, and is built with two product flavors: one for the Play Store (with billing and ML Kit) and one for F-Droid (without those features). The app demonstrates solid engineering with reusable abstractions like `AbstractMediaFilesAdapter`, `CloudStreamer`, and `FixedSizePriorityQueue`, though the central `FilesViewModel` is overly large (2000+ lines) and some deprecated Android APIs remain in use. The project is actively maintained with recent commits and zero Dependabot alerts.

RATING: 7.3/10 MAINT: maintained DRIFT: medium
β–Έ 4 reusable components found
qier222/YesPlayMusic β˜… 33175 4676 APPLICATION

YesPlayMusic is a third-party Netease Music player built as a Vue 2 single-page application with an Electron desktop wrapper. It provides a full-featured music playback experience including personal FM, daily recommendations, playlists, albums, artists, MVs, and synchronized lyrics. The application integrates with the Netease Music API for all content, supports UnblockNeteaseMusic for alternative audio sources, and offers Last.fm scrobbling, Discord Rich Presence, MPRIS (Linux), Touch Bar (macOS), and global shortcuts. The architecture follows a Vuex store pattern with a singleton Player class proxied into the state, and uses IndexedDB (Dexie) for caching track sources, lyrics, and album data. The Electron main process handles IPC for tray, menu, touchbar, and system integration, while the renderer process runs the Vue app with lazy-loaded routes and i18n support for multiple languages. The codebase is well-structured with reusable UI components (Cover, TrackList, ContextMenu, Modal, SvgIcon) and utility modules (lyrics parser, auth helpers, request interceptor). However, it relies on aging dependencies (Vue 2, Electron 13, Node 14/16) and is in maintenance mode per the README, with a new 2.0 alpha in development. Security concerns include disabled TLS verification in Docker and Electron webSecurity disabled. Despite these issues, the project demonstrates solid engineering practices for a feature-rich music player and offers several components that could be extracted for other Vue projects.

RATING: 7.1/10 MAINT: maintained DRIFT: high
β–Έ 5 reusable components found
moshstudio/wuji-tauri β˜… 515 33 APPLICATION

A cross-platform media aggregation desktop and mobile application built with Tauri v2 and Vue 3. It allows users to create, import, and manage custom JavaScript-based source extensions that scrape or fetch content from websites for books, comics, videos, photos, and music. The app includes a built-in code editor (Monaco) for authoring extensions, a download manager with HTTP and M3U8 support, text-to-speech (Edge TTS), cloud synchronization with conflict resolution (tombstones, incremental sync), DLNA casting (Android), and a source marketplace. The architecture is plugin-heavy, with many custom Tauri plugins for web scraping, media session, and command bridges. While the core functionality is comprehensive and actively maintained, the codebase exhibits tight coupling to custom plugins, limited test coverage, and security concerns from dynamic code execution of user-provided source scripts.

RATING: 6.8/10 MAINT: active DRIFT: medium
β–Έ 4 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
ZTFtrue/MonsterMusic β˜… 602 35 APPLICATION

MonsterMusic is a full-featured Android music player application built with Jetpack Compose, Material3, and Media3 (ExoPlayer). It provides local music playback with extensive audio effects including a 10-band equalizer, echo/reverb, spatial audio (virtual surround), pitch/speed control, and real-time FFT visualization. The app reads audio metadata via a bundled copy of the JAudioTagger library, supporting ID3v2, MP4, FLAC, Ogg, WAV, AIFF, and WMA formats. It includes synchronized lyrics display (LRC/SRT), playlist management (M3U import/export), sleep timer, home screen widget, and a drawer-based UI for browsing songs, albums, artists, genres, and folders. The codebase is a hybrid of Kotlin (app logic) and Java (embedded library), with moderate architectural separation via ViewModel, Repository, and Room persistence. While feature-rich, the project shows signs of stalled maintenance; the embedded metadata library is large and may have drifted from upstream, and several Compose APIs are marked experimental. The app is functional but not production-polished, with some dry code and unfinished fragments.

RATING: 6.3/10 MAINT: stale DRIFT: medium
β–Έ 2 reusable components found
0xd34df00d/leechcraft β˜… 224 51 APPLICATION

LeechCraft is a modular, cross-platform desktop internet client built with C++ and Qt. It provides a plugin-based architecture where each plugin implements standard interfaces (IInfo, IPlugin2, IHaveSettings, IHaveTabs) and can be dynamically loaded. The core handles plugin loading, entity-based inter-plugin communication, settings management via XML dialogs, and a hook system for customization. Plugins cover a wide range of functionality: instant messaging (Azoth with XMPP/IRC/Tox), web browsing (Poshuku), RSS/Atom feed aggregation (Aggregator), music player (LMP with GStreamer), document viewer (Monocle with PDF/ePub/DjVu), email client (Snails), BitTorrent client, system monitoring, power management, and more. The codebase uses modern C++20 coroutines for async operations, a custom compile-time ORM (oral) for SQLite persistence, and functional utilities (Either, Visitor, ScopeGuard). Despite its ambitious scope and well-structured plugin system, the project shows signs of age: many plugins have incomplete translations, deprecated Qt patterns (old-style SIGNAL/SLOT macros), and external dependencies that may be difficult to build with current toolchains. The last meaningful development appears to have stalled, making the repository more valuable as a reference for plugin architecture and Qt patterns than as an actively maintained application.

RATING: 6.1/10 MAINT: stale DRIFT: high
β–Έ 4 reusable components found
── end of results ──
$ submit: