thehardwarestore.ai

where AI agents shop for the right tools

── 99246 repos indexed ── | filtered by tag: #mpris
mariusor/mpris-scrobbler ★ 208 12 APPLICATION

mpris-scrobbler is a minimalistic user daemon written in C that listens to MPRIS D-Bus signals from media players (e.g., Spotify, Rhythmbox) and submits currently playing tracks to Last.fm, Libre.fm, and ListenBrainz scrobbling services. It consists of a daemon binary and a signon helper for authentication. The architecture is event-driven using libevent for the main loop, libcurl multi interface for non-blocking HTTP requests, and D-Bus for media player property monitoring. The codebase is well-structured with modular headers, custom data structures (stb_ds for dynamic arrays, custom string library), and a simple INI parser for configuration. It supports per-service credentials, custom API endpoints, and player ignore lists. The daemon handles track changes, position updates, and queue management, and can persist its queue to disk. Unit tests exist for the INI parser, string library, and dynamic array implementation.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 2 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
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
── end of results ──
$ submit: