Rhythmbox

Rhythmbox is a music playing application for GNOME using the GStreamer multimedia framework.

If your packaging system includes GNOME, it likely also includes Rhythmbox. It's also included in the default installation in some Linux distributions.

Development

Rhythmbox is developed on the GNOME GitLab platform and is translated by GNOME translation teams. You can build the current development version of Rhythmbox on any recent operating system that includes GNOME development libraries and tools. A brief overview of the installation requirements is included with the source code.

Contact

Bug reports and feature requests are managed using GitLab issues. For other types of questions and discussions, use the 'rhythmbox' tag under the 'Applications' category in GNOME Discourse, or join #gnome-rhythmbox on the Libera.Chat IRC network.

Plugins

Rhythmbox can be extended through its plugin system, which loads plugins written in Python and C. Many optional features of the application are built as plugins, and there are many third party plugins available.

Latest releases

  • 3.4.9
    Highlights:
    • Python plugin loader now works with new pygobject/libpeas
    • New playback backend, replacing the old crossfading backend
    Issues fixed:
    • 2009: apidoc not installed
    • 2111: Error activate plugins: libpeas: Could not load plugin loader 'python3'
    • 2112: Constant CPU usage and wakeups while idle with an Android device plugged in
    • 2118: GLib2 changed the way g_values copy GStrings. This breaks rhythmbox
    Merge requests:
    • 192: Add CUE plugin to Third Party Plugins list
    • 198: main: Fix window not being matched to application
    • 200: Update POTFILES.in
    Translation updates:
    • ca, courtesy of Assumpta, 2021
    • ca, courtesy of Jordi Mas i Hernàndez
    • da, courtesy of Alan Mortensen
    • fr, courtesy of Jean-Marc Tissières
    • id, courtesy of Andika Triwidada
    • it, courtesy of Milo Casagrande
    • ja, courtesy of Makoto Sakaguchi
    • lt, courtesy of Aurimas Černius
    • nl, courtesy of Nathan Follens
    • ru, courtesy of Ser82-png
    • sv, courtesy of Anders Jonsson
    • uk, courtesy of Yuri Chornoivan
  • 3.4.8
    Highlights:
    • Minor improvement release for 3.4
    • Improved support for podcast episode images
    • Better handling of the split between Android and MTP plugins
    • The long-broken DAAP server now works again
    • API documentation now generated by gi-docgen
    Issues fixed:
    • 1715: Sync fails to create playlist if directory does not exist
    • 1828: extdb: support cancellation
    • 1832: rhythmbox hangs when it cannot play the file
    • 2001: "Access key" string needs a translator comment
    • 2050: Orca does not present items in left panel correctly
    • 2052: The "rating" widget should not have the "unknown" accessible role
    • 2065: Trivial/Clerical fix on debug statement in MTP plugin
    • 2066: Pause/Stop button incorrect context (radio stream vs playlist queue)
    • 2067: Add Lenovo to android-mtp match/allow-list
    • 2072: Incorrect/missing URLs in app metadata
    • 2073: Phone not being recognized as Android PTP device
    • 2080: cgi module is being deprecated since Python >= 3.13
    • 2084: Access to Rhythmbox via DAAP from Android gets "Unable to Connect!"
    • 2086: Rhythmbox crashing sync with Android device
    Merge requests:
    • 27: generic-player: create directory when syncing playlist
    • 143: Updates iradio-initial.xspf
    • 144: Stronger sanitization for generic player sync
    • 153: Convert README and internals documentation to markdown
    • 175: build: Define _GNU_SOURCE for pthread_getname_np
    • 178: Add missing includes to fix crash with libxml2 2.12
    • 179: Appdata related patches
    • 180: data: Appdata fixes after Flathub review
    • 181: notification: Fix libnotify warning in Flatpak
    • 185: context: use html.escape instead of cgi.escape
    • 186: Add a "delete file only" option for podcasts.
    • 187: Fix strict prototype compiler warning with clang
    • 188: Fix Python3 invalid escape sequences.
    • 189: appdata: Use rDNS developer name
    Translation updates:
    • be, courtesy of Yuras Shumovich
    • ca, courtesy of Jordi Mas i Hernàndez
    • cs, courtesy of Daniel Rusek
    • da, courtesy of Alan Mortensen
    • de, courtesy of Tim Sabsch
    • fi, courtesy of Jiri Grönroos
    • hi, courtesy of Scrambled777
    • hu, courtesy of Balázs Úr
    • id, courtesy of Andika Triwidada
    • ka, courtesy of Ekaterine Papava
    • kk, courtesy of Baurzhan Muftakhidinov
    • lt, courtesy of Aurimas Černius
    • lv, courtesy of Rūdolfs Mazurs
    • oc, courtesy of Quentin PAGÈS
    • pl, courtesy of Piotr Drąg
    • pt_BR, courtesy of Juliano de Souza Camargo
    • pt, courtesy of Hugo Carvalho
    • ro, courtesy of Florentina Mușat
    • ru, courtesy of Ser82-png
    • sl, courtesy of Martin Srebotnjak
    • sv, courtesy of Anders Jonsson
    • th, courtesy of Kiatkachorn Ratanatharathorn
    • tr, courtesy of Emin Tufan Çetin
    • uk, courtesy of Yuri Chornoivan
    • zh_CN, courtesy of lumingzh
    • zh_TW, courtesy of Cheng-Chia Tseng
  • 3.4.7
    Highlights:
    • Bug fix release for 3.4
    • Requires libsoup 3
    • Party mode removed
    • debugpy support for Python plugin debugging
    Issues fixed:
    • 1591: 'Import playlist from file' does not retain playlist file name
    • 1818: ListenBrainz: Rhythmbox hangs when blocked by firewall
    • 1824: Listenbrainz: ResourceWarning: unclosed <ssl.SSLSocket>
    • 1983: podcast: Crashes with SIGSEGV during podcast subscribe
    • 1992: AttributeError: 'gi.repository.RB' object has no attribute 'gst_process_embedded_image'
    • 1993: test-widgets fails on arm64
    • 1996: Port to libsoup3
    • 2021: rhythmbox does not support WMA format audio files playing immediately
    • 2043: test_rhythmdb_thread_barrier failing in current Ubuntu serie
    Merge requests:
    • 149: data: Update appdata screenshot to an existing one
    • 155: podcast: do not set metadata errors on download status if download is complete
    • 156: build: Check that appdata and NEWS get updated on release
    • 157: tests: Allow running tests without installed gsettings schemas
    • 165: listenbrainz: use LB defined fields for client and source info
    • 166: desktop: Remove obsolete Bugzilla entries
    • 170: Fix JSON parser leak in audioscrobbler plugin
    • 173: build: Use get_variable function instead of running pkg-config