Fact-checked by Grok 2 weeks ago

Rhythmbox

Rhythmbox is a free and open-source audio player software, , and organizer designed for the desktop environment on and operating systems. Inspired by Apple's , it serves as a comprehensive management application that supports importing and ripping audio CDs, playing various formats, and burning new CDs. Key features of Rhythmbox include library organization using ID3 tags for metadata display, playlist creation via drag-and-drop, playback of local music files in formats like and Ogg Vorbis, and support for stations and podcasts. It integrates with online services such as for scrobbling and artwork retrieval, and offers connectivity for device synchronization. The application uses the multimedia framework for audio playback and provides a user-friendly interface tailored to GNOME's design principles. Developed as part of the project, Rhythmbox has been the default music player in many distributions, including (as of 2025) and formerly , since its early versions in the 2000s. The project is hosted on under the General Public License version 2 or later, with ongoing maintenance by the Rhythmbox team, though development has been noted as slow in recent years, with the latest stable release being version 3.4.9 as of October 2025. Despite discussions in some communities about its age and reliance on GTK3, it remains actively used and available via package managers and Flathub.

History

Origins and initial release

Rhythmbox emerged as an open-source music player tightly integrated with desktop environment, developed by members of the GNOME community to offer a straightforward for audio playback and . The project drew direct inspiration from Apple's , which had launched earlier that year, aiming to replicate its emphasis on user-friendly organization of digital music collections within a context. Initial development began in 2001 under the lead of Bastien Nocera, with the first public release—version 0.1—debuting later that year as a basic application centered on core playback functionality. This early version relied on the multimedia framework to handle audio decoding and playback, enabling support for common formats like and Ogg Vorbis from the outset. Shortly after launch, contributions from other developers, including Marco Pesenti Gritti and Colin Walters, bolstered the project, while Jorn Baayen took over maintenance in 2003. The application's native compatibility with quickly fostered its adoption within the broader community, positioning Rhythmbox as the default music player in prominent distributions such as (starting with Fedora Core 4 in 2005) and in its early releases. This early integration underscored its role as a foundational tool for users, setting the stage for subsequent enhancements like plugin extensibility in later versions.

Major version milestones

Following version 0.13.3 in 2011, the next major release was 3.0 in 2013 after a development period under the 2.9x series. In 2004, version 0.11 introduced robust capabilities and full support for audio playback and burning, marking a significant step toward reliability for users managing personal music collections. In late 2008, version 0.12 introduced subscription and playback features, enabling seamless integration with feeds for audio content, alongside DAAP (Digital Audio Access Protocol) sharing for network-based music access across devices, and enhanced integration with the multimedia framework for improved audio decoding and playback performance. Version 0.12.8 in 2009 added support for smart playlists that dynamically filter tracks based on user-defined criteria. Version 3.0, released in 2013, represented a comprehensive rewrite of the application, adopting GTK3 for modern rendering, and incorporating for automatic to ensure consistent volume levels across tracks. A notable milestone in 2016 came with version 3.3, which integrated MTP () support via , allowing direct access to music libraries on devices without additional software, thereby expanding compatibility with mobile ecosystems. The 3.4 series, spanning 2016 to 2025, focused on iterative enhancements and stability, with version 3.4.8 in November 2024 addressing DAAP server reliability issues and refining handling for better episode management and download reliability. Subsequently, version 3.4.9 arrived in October 2025, delivering minor stability improvements, including bug fixes for playback interruptions and library scanning efficiency.

Development

Project governance and maintenance

Rhythmbox is governed by the Foundation, a non-profit organization that coordinates the development and stewardship of projects, including core applications like Rhythmbox. As , it is licensed under the GNU General Public License version 2.0 or later (GPL-2.0-or-later), which permits modification, distribution, and use under specified conditions while ensuring the source code remains available. The project's source code is hosted on GitLab under the GNOME namespace (GNOME/rhythmbox repository), where development occurs through merge requests, issue tracking, and collaboration via GNOME's infrastructure, including IRC channels and forums. Development is coordinated in alignment with 's biannual release cycle, with Rhythmbox versions integrated into GNOME releases up to version 49, which was launched in 2025. As of 2025, Rhythmbox remains under active maintenance, though at a modest pace focused primarily on bug fixes and updates rather than major feature additions. The latest release, 3.4.9, arrived in 2025, addressing issues such as with GLib 2.86 and compile-time dependencies. However, perceptions of stagnation have led to discussions within the community; in August 2025, a emerged to drop Rhythmbox from pre-installation in , citing its reliance on the older GTK3 toolkit and outdated components that do not align with modern design standards. Rhythmbox employs the multimedia framework as its backend for audio playback and processing, a choice that facilitates broad format support and ensures compatibility across and other operating systems. This integration allows seamless handling of diverse media pipelines while leveraging GStreamer's plugin architecture for extensibility. support for international file names and metadata has been a core feature since early versions of Rhythmbox, enabling proper display and management of non-Latin characters in music libraries from the outset of its in the early 2000s. Ongoing refinements, such as typography improvements for Unicode handling, continue to be addressed through dedicated development branches.

Community contributions

Rhythmbox's development has been significantly shaped by key early contributors, including Colin Walters, who served as the lead developer from 2001 to 2005 and initiated the project as a -integrated music player inspired by . Walters handled initial architecture, packaging for distributions like , and core features such as integration during this period. Jonathan Matthew has been the ongoing maintainer since the mid-2000s, overseeing releases, bug fixes, and compatibility updates, including the transition to modern toolkits. The broader community plays a vital role through platforms like GNOME Discourse for discussions and GitLab for submitting merge requests, enabling collaborative enhancements to the codebase. This involvement has fostered approximately 50 third-party plugins, often developed in response to user feedback on features like equalizers, album art fetchers, and remote controls. Notable examples include the integration of libdmapsharing for DAAP support in 2009, which allowed seamless music over local networks and was contributed by community developers to extend Rhythmbox's . In 2025, community discussions on focused on packaging improvements for easier distribution and plugin compatibility with GNOME 49, addressing issues like custom plugin loading in sandboxed environments. These efforts ensure Rhythmbox remains adaptable to modern deployment methods and desktop updates. Additionally, translation efforts, coordinated through GNOME's localization infrastructure, support over 80 languages for the , broadening accessibility worldwide.

Core features

Audio playback

Rhythmbox utilizes the multimedia framework to handle audio playback, enabling seamless decoding and rendering of files through a plugin-based architecture. This integration allows Rhythmbox to support a variety of common audio formats, including (MPEG Layer 3 Audio), Ogg , (Free Lossless Audio Codec), and (Advanced Audio Coding) when the corresponding GStreamer plugins are installed. Format detection occurs automatically via GStreamer's pipeline, which probes file headers to identify and load the appropriate decoder without user intervention. The core playback controls in Rhythmbox provide intuitive management of audio streams, featuring buttons for play, pause, and next/previous on the main . Seeking within a is supported through a progress slider or shortcuts, allowing users to jump to specific timestamps during playback. adjustment is available via a dedicated slider or key bindings, enabling real-time modulation of output levels independently of system-wide audio settings. Additionally, and repeat modes facilitate varied listening experiences, with randomizing order and repeat options cycling through individual songs, playlists, or albums. Rhythmbox supports both static and dynamic playlists for organized playback, where static playlists maintain a fixed sequence of tracks for linear progression, and dynamic ones adapt based on user-defined rules or automatic generation. Sequential playback follows the playlist order, while random playback leverages the function to select tracks non-deterministically, ensuring no immediate repetitions in large collections. For robustness, Rhythmbox includes basic error handling during playback, such as skipping or halting on corrupted files by displaying GStreamer-generated alerts like "Internal GStreamer error: pad problem" and logging details for troubleshooting. Unsupported or damaged formats trigger similar notifications, prompting users to verify file integrity or install missing plugins, while the player continues operation on subsequent tracks. Gapless transitions between tracks are also supported natively through GStreamer's buffering mechanisms.

Library management

Rhythmbox organizes users' music collections through a that tracks without storing the audio files themselves. The database, implemented as the rhythmdb.xml file typically located at ~/.local/share/rhythmbox/rhythmdb.xml, records details such as file paths, , , , and user-assigned ratings for each . This XML-based structure allows for efficient querying and organization of large collections, supporting both local files and remote sources like network shares. Search and filtering capabilities enable users to navigate the library effectively. Rhythmbox provides full-text search across all metadata fields, with options to refine results by specific attributes such as artist, album, or title. The built-in browser view organizes content hierarchically by genre, artist, and album, supporting multi-selection for complex filtering (e.g., holding Ctrl to combine criteria). Custom smart playlists further enhance filtering by dynamically generating lists based on user-defined rules, including criteria like play count, last played date, or rating thresholds; default examples include "My Top Rated," "Recently Added," and "Recently Played." The rating system allows users to assign 0-5 star evaluations to tracks, which are stored in the database and influence automatic sorting and generation. Ratings enable features like prioritizing higher-scored songs in shuffles or creating dedicated views for favorites, with the system updating the library view accordingly upon assignment. To maintain an up-to-date collection, Rhythmbox supports automatic import scanning through a "watch" feature that monitors specified directories for changes. When enabled in preferences, this scans for new or modified files and updates the library database without manual intervention, ensuring seamless integration of freshly imported music.

Media handling

Importing and ripping

Rhythmbox supports importing local audio files into its through intuitive methods such as drag-and-drop from a like or by using the "Import" option in the menu to select folders, which recursively includes subfolders. Once imported, the application reads embedded metadata from the files, such as artist, album, and track titles, and can automatically fetch additional details from online databases like if enabled via its integration with the MusicBrainz service. Users can also enable folder watching in the preferences to monitor a designated directory for new files, automatically adding them without manual intervention. For acquiring music from physical sources, Rhythmbox includes an integrated CD ripping tool supporting output formats including , , and , with configurable quality settings. The process allows batch ripping of entire by selecting all tracks after inserting the disc, which appears under the Devices section, and clicking "Extract" to process them sequentially. Error correction is handled via cdparanoia, ensuring accurate reads from potentially scratched discs by employing multiple read passes and jitter correction. During CD ripping, metadata such as track names and album art is fetched automatically from MusicBrainz by default, with fallback to CDDB if needed, and users can customize track naming templates in the preferences to organize files like "%a/%l/%n - %t" for artist/album/track structures. Supported sources for importing extend to local directories on the filesystem and , including USB drives and optical discs, allowing seamless addition of content from . After ripping or importing, the library updates to reflect the new entries, integrating them into the overall collection management.

Exporting and burning

Rhythmbox supports burning audio s directly from playlists through its integrated CD recorder plugin, which relies on the Brasero disc burning backend. To burn a , users create or select a —such as a static list of tracks or a smart filtered by criteria like or —and then access the "Create Audio " option from the toolbar or the Music ▸ menu. Upon selecting this, a blank or is inserted into the drive, and the burning process begins after clicking Create, converting the tracks to audio format while preserving the original track order. The enables seamless integration with Brasero for the actual writing, allowing Rhythmbox to handle the selection and preparation of audio files without launching a separate application. While earlier versions or alternative configurations might reference tools like cdrdao for low-level operations, the standard implementation in modern distributions uses Brasero exclusively for this functionality. Multi-session burning is not natively supported within Rhythmbox's interface, limiting users to single-session audio unless external tools are employed post-burn. For exporting playlists outside of burning, Rhythmbox allows saving them as standard playlist files in M3U or PLS formats via the File ▸ Playlist ▸ Save to File menu option, which generates a text-based file listing track paths and metadata in the specified format. This export preserves track ordering and relative paths, making it suitable for sharing or importing into other media players. Users can select the format during the save dialog, with M3U being the most commonly used for broad compatibility. Export options during burning or file saving are limited but include basic format selection for playlists, such as choosing as an intermediate audio format for preparation to ensure high-fidelity output. Burning speed settings are managed through the underlying Brasero backend, where users can adjust write speeds (e.g., 4x to 16x) in the plugin's configuration if available, though Rhythmbox itself does not expose granular controls beyond defaults optimized for reliability. Rhythmbox does not provide direct digital export functionality for playlists or libraries to external devices like USB drives or smartphones within this module; such transfers are instead handled through the separate device synchronization features, which support MTP or protocols for copying files and playlists.

Enhanced capabilities

Metadata and visualization

Rhythmbox provides a built-in accessible via the properties dialog for individual tracks or multiple selections, allowing users to modify standard fields such as title, artist, album, , year, and composer. This editor supports ID3v2 tags for files and Vorbis comments for OGG formats, with options to enable ID3v2 writing and set Unicode for consistent handling across formats. Changes are applied directly to the audio files, ensuring persists independently of the library database. For album cover display, Rhythmbox includes a plugin that automatically fetches images from online sources like when no local artwork is embedded in the file. Retrieved covers are cached locally in the user's ~/.cache/rhythmbox/album-art directory, named by artist and album for quick retrieval, and displayed in library views, album browsers, and the playback interface to enhance navigation and visual feedback. As of version 3.4.4, support was added for fetching from coverartarchive.org. Song lyrics integration in Rhythmbox is handled through its built-in lyrics plugin, which fetches unsynchronized text from various providers and displays it in a sidebar during playback. Third-party plugins extend this functionality to support synchronized , enabling timed display that aligns with the audio for a karaoke-like experience. The visualization plugin, which provided graphical effects synchronized to audio, was removed in version 3.4.2.

Audio enhancements

Rhythmbox provides to ensure seamless transitions between consecutive tracks, eliminating pauses caused by decoding or encoding artifacts in audio files. This functionality leverages the multimedia framework, switching to the playbin2 element when crossfading is disabled to support true gapless mode for formats like , Ogg Vorbis, and that include gap information. The feature was introduced in version 0.11.0 with a dedicated backend for both gapless and crossfading playback, enhancing the listening experience for album-oriented music. In version 3.4.9, a new playback backend replaced the old crossfading backend, with continued support for . ReplayGain integration in Rhythmbox enables automatic volume normalization, adjusting playback levels based on embedded track or album gain tags to maintain consistent loudness without manual intervention. The dedicated ReplayGain plugin, added in version 0.12.7, processes these tags using GStreamer's rgvolume and rglimiter elements, applying gain adjustments while preventing clipping to avoid audio distortion. This support originated in version 0.7.0 but was refined over time, with processing simplified in version 3.3.1 to improve stability. Users enable the plugin via the preferences menu to apply normalization during playback. For sound customization, Rhythmbox supports a basic 10-band equalizer through third-party plugins, allowing users to adjust frequency responses for personalized audio profiles. These plugins integrate with the playback pipeline to apply real-time equalization effects. Crossfade functionality in Rhythmbox allows configurable overlap between tracks, with durations ranging from 0 to 10 seconds, to create smooth blends during playlist transitions. Setting the crossfade duration to 0 seconds activates gapless playback mode for compatible formats, while positive values enable fading overlaps to reduce perceived gaps in non-gapless files. This backend, refined across versions including improvements in 0.12.0 for better performance, builds upon basic audio playback by adding transitional processing layers. In version 3.4.9, the crossfading backend was replaced with a new playback backend.

Connectivity and sharing

Device support

Rhythmbox provides support for synchronizing music libraries with (MTP) devices, such as smartphones and tablets, through the libmtp library, enabling users to transfer playlists, albums, and individual tracks for direct playback on the device. This integration allows for seamless copying of audio files without requiring the device to be mounted as a traditional filesystem, though users may encounter occasional detection issues depending on the version and USB debugging settings. 3.4.8 (released in November 2024) included improvements to and MTP support, such as refined plugin handling and adding devices to the MTP allowlist. For USB devices, including flash drives and compatible iPods (primarily models), Rhythmbox can mount them automatically and facilitate playback directly from the device or transfer of music files to expand portable libraries. for iPods relies on the libgpod for database management and synchronization, but it is limited to older generations, as newer models with proprietary protocols are not fully compatible. In handling general portable media players, Rhythmbox offers basic detection upon connection, allowing users to copy files and playlists manually, but lacks advanced features like full database syncing akin to . As of 2025, the version of Rhythmbox maintains core device compatibility but requires explicit permissions via xdg-desktop-portal for accessing MTP and USB devices in sandboxed environments, with ongoing community efforts to enhance integration for smoother operation.

Online integrations

The application supports audio scrobbling via its plugin, which automatically submits information about played tracks to the user's account, enabling personalized recommendations, listening statistics, and the playback of radio streams based on artist or user profiles. Rhythmbox features DAAP (Digital Audio Access Protocol) music sharing, allowing it to act as a server for streaming the local music library to compatible clients such as or other DAAP-enabled devices on the local network; this functionality was restored and improved in version 3.4.8 released in 2024, addressing previous issues with server stability. A web remote control plugin provides a browser-based interface for managing playback over the local network, including functions like play/pause, skipping tracks, and volume adjustment, accessible via the user's IP address and a configurable port after enabling the plugin and setting an access code. Rhythmbox includes podcasting support for subscribing to or feeds, automatically downloading new episodes upon release, and queuing them for playback, with options to manage subscriptions and organize episodes in the library alongside local media.

Extensions

Built-in plugins

Rhythmbox includes a suite of built-in plugins, approximately 25 in total, that extend its core management and playback capabilities by adding support for devices, protocols, scrobbling services, and enhancements like and notifications. These plugins, developed primarily in C with some in and Vala, are bundled with the application's and can be selectively activated to customize the user experience without requiring external installations. Users enable or disable plugins through the dedicated Plugins tab in the Edit > Plugins preferences dialog, where a list of available options appears; activation may depend on system libraries such as extras for media handling or libdmapsharing for network features. Many plugins integrate seamlessly with desktop, enhancing usability across environments. Among the key built-in plugins are the following:
  • AudioScrobbler: Integrates with to scrobble playback history, track user listening habits, and fetch personalized radio stations based on the service's .
  • Audio CD: Provides playback and ripping support for audio s, including track import into the library with retrieval.
  • Brasero Disc Recorder: Enables burning audio s and data discs from the library or playlists using the Brasero backend.
  • DAAP: Allows sharing the library over a local network using the Digital Audio Access Protocol, compatible with clients like . This plugin was restored to full functionality in version 3.4.8 after compatibility updates with libdmapsharing 4.
  • iPod: Handles synchronization of , playlists, and with devices via libgpod, supporting photo and video transfers in older versions.
  • MTP Device and : Manages file transfer and library syncing with Media Transfer Protocol devices, including phones; version 3.4.8 improved split handling for better stability.
  • ReplayGain: Scans audio files to compute and apply volume normalization tags, ensuring consistent playback levels across tracks using the standard.
  • ListenBrainz: Submits scrobbles to the ListenBrainz service for open-source analytics and recommendations; introduced in 3.4.4 with hang fixes in 3.4.7.
  • IRadio: Supports browsing and playing internet radio stations from integrated directories like .
  • Lyrics: Fetches and displays song lyrics from online sources during playback.
  • Magnatune: Integrates with the Magnatune store for streaming and downloading independent , including support for gift cards.
  • MPRIS: Exposes media controls via the Media Player Remote Interfacing Specification, enabling integration with desktop shells like Unity for launcher-based HUD controls.
  • Notification: Displays desktop notifications for track changes, including album art and progress.
  • Power Manager: Inhibits system sleep or screen blanking while is playing to prevent interruptions.
The plugin, which allowed browsing and playing tracks from , was removed in version 3.4.9 due to lack of maintenance. These plugins evolve with releases, such as the plugin loader updates in 3.4.9 for improved compatibility with pygobject and libpeas, ensuring ongoing support for extensible features.

Third-party extensions

Rhythmbox supports an extensible plugin architecture through the libpeas library, allowing third-party developers to create custom extensions in C or languages. These plugins implement the Peas.Activatable , providing methods for activation and deactivation while accessing core components via the RB.Shell object. As of 2024, the wiki archives documentation on approximately 49 third-party plugins for Rhythmbox 3.x, with many hosted on repositories for community contributions and issue tracking. Notable third-party plugins enhance user interface customization, audio processing, and capabilities. The alternative-toolbar replaces the default large with a compact, client-side decorated version that supports dark mode themes and dynamic hiding, improving with modern environments. For audio enhancements, the 10 Band Equalizer adds a graphical 10-band interface, while the ParametricEQ offers advanced with up to 64 configurable bands for precise room response adjustments. Remote is exemplified by the rhythmbox-android-remote , which enables of playback via devices using the Banshee Remote app over on port 8484. Development of third-party plugins involves creating a metadata .plugin file alongside compiled .so files for C or .py scripts for , often hooking into Rhythmbox's signal system for events like song playback and using interfaces for UI and remote extensions. Plugins are typically placed in the user directory ~/.local/share/rhythmbox/plugins for testing or the system-wide /usr/lib/rhythmbox/plugins for , with modifications submitted via the official issue tracker. However, compatibility challenges persist in 2025 with Rhythmbox 3.4.x, as many older plugins remain tied to deprecated or unupdated for libsoup 3 and 3.16 requirements, leading to issues particularly with network-based extensions. Distribution occurs primarily through Linux package managers, such as Debian's rhythmbox-plugin-alternative-toolbar or PPAs like fossfreedom/rhythmbox-plugins for bundled installations, or via manual cloning and compilation from for the latest versions. Users enable plugins via the Edit > Plugins menu after installation, though some require additional dependencies like pygobject for support.

System integration

GNOME desktop environment

Rhythmbox has served as the default music player in many GNOME-based distributions since its initial release in 2004, providing seamless audio management tailored to users. It utilizes the toolkit for its user interface, ensuring visual and functional consistency with other applications while adhering to the for intuitive interaction and accessibility. Key integration points enhance Rhythmbox's synergy within the GNOME ecosystem. It responds to media keys configured via GNOME Settings, enabling global control over playback functions like play/pause and volume adjustment from the desktop level. Rhythmbox's notifications and media controls are unified with GNOME Shell's overview and compatible extensions via the MPRIS protocol, displaying now-playing information and transport buttons in the notification shade for effortless access. In 2025 updates, Rhythmbox received partial adaptations for compatibility with GNOME 49, including minor bug fixes in version 3.4.9, though it continues to rely on its GTK3 core without a full migration to GTK4. Rhythmbox also includes built-in plugin support for various GNOME-specific features.

Third-party applications

Rhythmbox exposes a interface that enables integration with third-party applications for features such as remote control and status updates in chat clients. This allows for custom or legacy plugins to update user status with currently playing track information in applications like , or broadcast song details in IRC clients. Historical browser extensions and apps have leveraged this interface for playback control and now-playing display, though many are outdated and may require updates for compatibility with recent versions. On the hardware side, Rhythmbox utilizes the multimedia framework for audio output, defaulting to as the primary on most contemporary distributions for its advanced mixing and network streaming features. For environments lacking or requiring lower-latency direct hardware access, users can configure to fallback to ALSA via the alsasink element, ensuring compatibility with a wide range of sound cards and avoiding server overhead. This flexibility allows Rhythmbox to integrate reliably with diverse audio subsystems without additional third-party dependencies.