Quod Libet (software)

{{Short description|Free and open source audio player}}

{{Use dmy dates|date=May 2015}}

{{Infobox software

| name = Quod Libet

| logo = Quodlibet logo.svg

| screenshot = Quodlibet_3.0.png

| caption = Screenshot of Quod Libet's paned main browser window (dark theme).

| developer = Quod Libet Team{{cite web

| url = https://code.google.com/p/quodlibet/people/list

| title = Quod Libet Team page

| access-date = 20 August 2011}}

| released = {{Start date and age|2004|10|30|df=yes}}{{cite web

| url = https://quodlibet.readthedocs.org/en/latest/changelog.html

| title = Changelog}}

| latest release version = {{wikidata|property|preferred|references|edit|Q1621193|P348|P548=Q2804309}}

| latest release date = {{wikidata|qualifier|preferred|single|Q1621193|P348|P548=Q2804309|P577}}

| latest preview version = {{wikidata|property|preferred|references|edit|Q1621193|P348|P548=Q51930650}}

| latest preview date = {{wikidata|qualifier|preferred|single|Q1621193|P348|P548=Q51930650|P577}}

| repo = {{URL|https://github.com/quodlibet/quodlibet/}}

| programming language = Python (PyGObject)

| operating system = Windows, macOS, Linux

| size = {{Plainlist|

  • Windows: 36.6 MB
  • macOS: 41.0 MB
  • Linux: 4.23 MB}}

| genre = Audio player

| license = GPL-2.0-or-later{{cite web

| url = https://quodlibet.readthedocs.org/en/latest/license.html

| title = Quod Libet License page

| access-date = 21 May 2013}}

| website = {{URL|https://quodlibet.readthedocs.org}}

}}

Quod Libet is a cross-platform free and open-source audio player, tag editor and library organizer. The main design philosophy is that the user knows how they want to organize their music best; the software is therefore built to be fully customizable and extensible using regular expressions and boolean logic. Quod Libet is based on GTK and written in Python, and uses the Mutagen tagging library.

Quod Libet is very scalable, able to handle libraries with tens of thousands of songs. It provides a full feature set including support for Unicode, regular expression searching, key bindings to multimedia keys, fast but powerful tag editing, and a variety of plugins.

Quod Libet is available on most Linux distributions, macOS and Windows, requiring only PyGObject, Python, and an Open Sound System (OSS), ALSA or JACK compatible audio device. The XFCE desktop ISO image provided by the Debian project installs Quod Libet as the default audio player.{{Cite web |url=https://cdimage.debian.org/debian-cd/current-live/i386/iso-hybrid/debian-live-9.5.0-i386-xfce.packages |title=Archived copy |access-date=5 October 2018 |archive-date=5 October 2018 |archive-url=https://web.archive.org/web/20181005194858/https://cdimage.debian.org/debian-cd/current-live/i386/iso-hybrid/debian-live-9.5.0-i386-xfce.packages |url-status=dead }}

Quod Libet's tag-editing and library organization features are also available through a standalone program, Ex Falso, which is based on the same code and libraries as Quod Libet.

Features

File:Ex Falso Screenshot.png, allows any tag to be changed as well as any file to be renamed or moved.]]

=Audio playback=

  • Can deal with various audio back-ends via the plug-in architecture of GStreamer
  • Supports ReplayGain with smart selection based on either a single track or full album, based on the current view and play order
  • 'Real' shuffle mode- entire playlist played before repeating
  • Ratings weighted random playback setting
  • Configurable play queue

=Tag editing=

  • Complete Unicode support
  • Changes to multiple files at once, even if files are in different formats
  • Ability to tag files based on filenames with fully configurable formats
  • Customizable renaming of files based on their tags and a user-supplied format
  • Human readable tag references, e.g. or </code> rather than <code>%a</code> or <code>%t</code>, with support for "if not-null <em>x</em> else <em>y</em>" logic (e.g. <code><albumartist|albumartist|artist></code>)</li> <li>Fast track renumbering</li> <li>Add / edit bookmarks within files</li> </ul></div></section><section class='wiki-section collapsible' id='section--udio-library-'><h2 class='section-toggle'>=Audio library=</h2><div class='wiki-body'><ul> <li>Audio Feeds / <a href='?title=Podcast'>Podcast</a> support</li> <li>Authenticated <a href='?title=SoundCloud'>SoundCloud</a> support</li> <li>Can save play counts</li> <li>Can download and save lyrics</li> <li>Fast refreshing of the entire library based on changed files</li> <li>Internet Radio / <a href='?title=SHOUTcast'>SHOUTcast</a> support</li> <li>Configurable song rating</li> </ul></div></section><section class='wiki-section collapsible' id='section--ser-interface-'><h2 class='section-toggle'>=User interface=</h2><div class='wiki-body'><p><a href='?title=File%3AQuodlibet-screenshot-custom-display.jpg'>File:Quodlibet-screenshot-custom-display.jpg</a></p> <ul> <li>Configurable interface to suit user preferences; <a href='?title=Pango'>Pango</a> markup is used so that the user can display tags in any way desired in the player</li> <li>Launch additional "browsers" to keep different or multiple views on the library</li> <li>Drag-n-drop support throughout the interface.</li> <li>Tray icon with full player control</li> <li>Automatically recognize and display tags from many uncommon tags</li> <li>Customisable <a href='?title=aggregate_function'>Aggregation</a> across albums or playlists (min, max, average, sum, <a href='?title=Bayesian_average'>Bayesian average</a>)</li> <li>Multiple ways to browse the library:</li> <li>Progressive search - the library is filtered as searches are typed</li> <li>Queries support <a href='?title=boolean_logic'>boolean logic</a>, numerical / date-based expressions, <a href='?title=regular_expressions'>regular expressions</a>, and <em>synthetic</em> tags, that are derived internally (e.g. play count, rating, inclusion in a playlist).</li> <li>Playlists with integration throughout the player</li> <li>Paned browser, using any fully customizable tags (e.g. genre, date, album artist...), allowing the user to [drill down] through their library as they prefer</li> <li>View by album list with <a href='?title=cover_art'>cover art</a></li> <li>View by file-system directory, which includes songs not in your library</li> </ul></div></section><section class='wiki-section collapsible' id='section--ile-formats-'><h2 class='section-toggle'>=File formats=</h2><div class='wiki-body'><p>Include <a href='?title=MP3'>MP3</a>, <a href='?title=Ogg_Vorbis'>Ogg Vorbis</a>, <a href='?title=Opus_%28audio_format%29'>Opus</a>, <a href='?title=FLAC'>FLAC</a>, <a href='?title=Apple_Lossless'>ALAC</a>, <a href='?title=Musepack'>Musepack</a>, <a href='?title=Module_file'>MOD/XM/IT</a>, <a href='?title=Windows_Media_Audio'>WMA</a>, <a href='?title=Wavpack'>Wavpack</a>, <a href='?title=MPEG-4_AAC'>MPEG-4 AAC</a></p></div></section><section class='wiki-section collapsible' id='section--nix-like-control-and-query-mechanisms-'><h2 class='section-toggle'>= Unix-like control and query mechanisms =</h2><div class='wiki-body'><ul> <li>Status information is available from the command line<ref>{{cite web |url=https://quodlibet.readthedocs.org/en/latest/features.html |title=Quod Libet feature page |access-date=21 May 2013}}</ref></li> <li>Control of the player using a <a href='?title=named_pipe'>named pipe</a> (FIFO) is possible<ref>{{cite web |url=https://quodlibet.readthedocs.org/en/latest/guide/interacting.html#the-unix-way |title=Quod Libet extending guide}}</ref></li> <li>Text-based files available with current song information</li> </ul></div></section><section class='wiki-section collapsible' id='section--lugins-'><h2 class='section-toggle'>= Plugins =</h2><div class='wiki-body'><p>Quod Libet is currently bundled with over 80 <a href='?title=Python_%28programming_language%29'>Python</a>-based plugins, including:</p> <ul> <li>Automatic tagging via <a href='?title=MusicBrainz'>MusicBrainz</a> and <a href='?title=CDDB'>CDDB</a></li> <li>Download and preview album art from a variety of online sources</li> <li>On-screen display pop-ups</li> <li><a href='?title=Last.fm'>Last.fm</a>/AudioScrobbler submission</li> <li>Tag character encoding conversion</li> <li>Intelligent <a href='?title=Title_case'>title-casing</a> of tags</li> <li>Finding duplicate or near-duplicate songs across the entire library</li> <li>Scan and save Replay Gain values across multiple albums at once (using <a href='?title=GStreamer'>GStreamer</a>)</li> <li>D-Bus-based Multimedia Shortcut Keys</li> <li>Integrate with <a href='?title=Sonos'>Sonos</a> systems and Logitech <a href='?title=Squeezebox_%28network_music_player%29'>Squeezebox</a></li> <li>Export playlists to common formats (PLS, M3U, XSPF)</li> <li>Publish to <a href='?title=MQTT'>MQTT</a> queues</li> </ul></div></section><section class='wiki-section collapsible' id='section--ee-also'><h2 class='section-toggle'>See also</h2><div class='wiki-body'><p>{{Commons category|Quod Libet}}</p> <p>{{Portal|Free and open-source software}}</p> <ul> <li><a href='?title=Comparison_of_free_software_for_audio%23Players'>Comparison of free software for audio#Players</a></li> <li><a href='?title=Exaile'>Exaile</a></li> <li><a href='?title=DeaDBeeF'>DeaDBeeF</a></li> </ul></div></section><section class='wiki-section collapsible' id='section--eferences'><h2 class='section-toggle'>References</h2><div class='wiki-body'><p>{{Reflist}}</p></div></section><section class='wiki-section collapsible' id='section--xternal-links'><h2 class='section-toggle'>External links</h2><div class='wiki-body'><ul> <li>{{Official website|https://quodlibet.readthedocs.io}}</li> <li>{{GitHub|https://github.com/quodlibet/quodlibet}}</li> <li>[https://wiki.archlinux.org/title/Quod_Libet Quod Libet] on <a href='?title=Arch_Linux'>ArchWiki</a></li> <li>[https://bitbucket.org/lazka/quodlibet Quod Libet] on <a href='?title=Bitbucket'>Bitbucket</a></li> <li>[https://packages.debian.org/sid/quodlibet Debian Package information page]</li> </ul> <p>{{Media player (application software)|free}}</p> <p>{{GTK}}</p> <p><a href='?title=Category%3A2004_software'>Category:2004 software</a></p> <p><a href='?title=Category%3AApplications_using_D-Bus'>Category:Applications using D-Bus</a></p> <p><a href='?title=Category%3AAudio_software_with_JACK_support'>Category:Audio software with JACK support</a></p> <p><a href='?title=Category%3AAudio_player_software_that_uses_GTK'>Category:Audio player software that uses GTK</a></p> <p><a href='?title=Category%3ACross-platform_free_software'>Category:Cross-platform free software</a></p> <p><a href='?title=Category%3AFree_audio_software'>Category:Free audio software</a></p> <p><a href='?title=Category%3AFree_media_players'>Category:Free media players</a></p> <p><a href='?title=Category%3AFree_software_programmed_in_Python'>Category:Free software programmed in Python</a></p> <p><a href='?title=Category%3ALinux_media_players'>Category:Linux media players</a></p> <p><a href='?title=Category%3AMacOS_multimedia_software'>Category:MacOS multimedia software</a></p> <p><a href='?title=Category%3ASoftware_that_uses_PyGObject'>Category:Software that uses PyGObject</a></p> <p><a href='?title=Category%3ATag_editors_for_Linux'>Category:Tag editors for Linux</a></p> <p><a href='?title=Category%3AWindows_multimedia_software'>Category:Windows multimedia software</a></p> <p><a href='?title=Category%3ATag_editors_that_use_GTK'>Category:Tag editors that use GTK</a></p> <p><a href='?title=Category%3ATag_editors'>Category:Tag editors</a></p> <p><a href='?title=Category%3AGNOME_Applications'>Category:GNOME Applications</a></p></div></section></div></main> <footer class="site-footer"> <div class="footer-container"> <div class="footer-links"> <a href="/about.php">About</a> <a href="/help.php">Help</a> <a href="/updates.php">Updates</a> <a href="/contact.php">Contact</a> <a href="/privacy.php">Privacy</a> <a href="/terms.php">Terms</a> <a href="https://github.com/yourusername/friendly-wiki" target="_blank" rel="noopener">GitHub</a> </div> <div class="footer-copy"> © 2025 Friendly Wiki. All rights reserved. </div> </div> </footer> <script> const toggle = document.getElementById('mobileMenuToggle'); const menu = document.getElementById('mobileMenu'); toggle.addEventListener('click', () => { menu.classList.toggle('active'); }); </script> <!-- Collapsible toggle --> <script> document.addEventListener("DOMContentLoaded", function () { const toggles = document.querySelectorAll('.section-toggle'); toggles.forEach(toggle => { toggle.addEventListener('click', function () { const section = toggle.closest('.collapsible'); const body = section.querySelector('.wiki-body'); body.classList.toggle('collapsed'); }); }); }); </script>