WP SoundSystem


WP SoundSystem is a complete solution to manage music in WordPress.

Create, import or manage tracklists and tracks, load them in our audio player, connect to popular music services, and more !

Several new post types will be available : Playlists, Radios, Artists, Albums, Tracks and Tracks Links.

See it working on Spiff Radio


Creating and editing playlists is a piece of cake (not to mention the Tracklist Importer):
Add or remove tracks on the fly, reorder them, favorite a track or a tracklist, export…


When editing a track, you can query details from music services like MusicBrainz (The Open Music Encyclopedia) or Spotify.
Tracks can be favorited by your users frontend, or added to any new playlist on-the-fly.

Tracks Links

You can attach a bunch of links to any track; including links that can stream audio (Youtube, Soundcloud, audio files…) directly to our player!

Autolink (requires an API key)

If you don’t attach links to your track manually, you can enable our autolink module.
It will search for remote links and attach them to your tracks automatically.


Radios are how we call live playlists.
Those playlists are synced with remote webpages or services, and are refreshed seamlessly after a short delay.

Check some Radios on Spiff Radio

Tracklist Importer

Import XSPF playlists using the Tracklist Importer.

If you have an API key, you could also import playlists from various services: Last.fm, Spotify, SoundCloud, Deezer, Musicbrainz, Radionomy, Hypem, 8tracks, BBC, indieshuffle, Online Radio Box, radio.fr, RadioKing, Reddit, SomaFM, Soundsgood,…
Custom setups are also available, if you are somewhat familiar with CSS selectors.

Frontend Importer on Spiff Radio


Our player uses of the MediaElement.js library, which is native in WordPress. It supports audio (& video) files, but also links from various services like Youtube or Soundcloud.
It has been extended with various features built on top of it, like a tracks queue or a Last.fm scrobbler.


In addition of being able to scrobble on Last.fm, every track favorited by a user connected to his account will also be loved on that service.

Users profiles will get a new music section that lists the user favorite tracks, tracklists, and the ones he created.
It will also fire new BuddyPress activity items.


WP SoundSystem is dev friendly, and has been designed to be extendable.
Wanna give a hand as developer ? Check the Github repo.

WP SoundSystem API

Get more out of this plugin by registering an API key; which will enable

  • Direct import from a lot of music services
  • the Autolink module

Those are optionals, but are nice features to a solid plugin.
Consider getting one as a nice way to support the work done – hundred of hours – , and to ensure its durability.


Whatever, if you like this plugin, please also consider making a donation.

This would be very appreciated — Thanks !



Contributors are listed here


For feature request and bug reports, please use the Github Issues Tracker.

If you are a plugin developer, we would like to hear from you. Any contribution would be very welcome.

How can I embed a track or a playlist ?

Using shortcodes:

[wpsstm-tracklist post_id="160"]

[wpsstm-track post_id="150"]
[wpsstm-track artist="Patrick Sébastien" album="Pochette surprise" title="Les Sardines"]

Or directly with PHP functions:

$tracklist = new WPSSTM_Post_Tracklist($post_id);
echo $tracklist->get_tracklist_html();

$track = new WPSSTM_Track($post_id);
echo $track->get_track_html();

! There is currently a WordPress bug that breaks our shortcodes. See the issue on Github..

What is the community user ?

The community user is a WordPress user you need to create, and that will be assigned as author to the content created automatically by the plugin, for instance imported tracks or links.



  • Tracklist playing frontend
  • Radio (live) tracklist
  • Plugin settings page & menu
  • Tracklist Importer metabox
  • Tracks Links metabox
  • Tracklists manager popup (when favoriting a track)
  • Frontend Tracklist Importer
  • Music menu on a BuddyPress profile


This plugin requires PHP Version 5.4 or later.

  1. Upload the plugin to your blog and Activate it.
  2. Go to the settings page and setup the plugin.


April 9, 2019
I've worked with several plugins over the past 10yrs, and this one is by far one of the most versatile. Less manual work and more results! This all in one solution is a must have for any DJ or radio statioN!
Read all 0 reviews

Contributors & Developers

“WP SoundSystem” is open source software. The following people have contributed to this plugin.


Translate “WP SoundSystem” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • WPSSTM_Spotify_Endpoints & WPSSTM_Musicbrainz_Endpoints moved from API so we don’t need two requests
  • new metabox ‘Tracklist options’
  • ignore community tracklists unless author is set in query
  • JS bugfixes


  • better player JS
  • allow XSPF tracklist import without the need of an API key
  • fixed tracklist share
  • better tracklist header
  • improve lightbox
  • remove settings ‘importer_enabled’ & ‘radios_enabled’
  • fixes regex not passing to API


  • Moved all the import stuff to the API. Now uses rest route ‘wp-json/wpsstmapi/v1/import/url/?url=…’ (on the API)
  • store artist,track & album metas as taxonomies instead of post metas; for performance issues (see https://wordpress.stackexchange.com/a/276315/70449 and https://wordpress.stackexchange.com/a/159012/70449)
  • trash orphan links option
  • trash duplicate links option
  • improved JS
  • fix Last.fm scrobbler not working except for first track


  • radios : improved how they are updated
  • improved REDDIT service
  • Improved settings page
  • Improved WPSSTM_Core_User logic
  • Register Radios post type even if no API key set; but filter post content to display a notice (avoids a 404 error)
  • Create user favorite tracks playlist only when he tries to favorite a track for the first time
  • Do not store track data within the subtracks table, always create a track post (fixes issues #88)
  • Various improvements & bugfixes


  • New track links setting ‘Exclude hosts’
  • JS link/track/tracklist reclick fix
  • Tracklist template : featured image
  • “Sources” renamed to “Track Links” (post type, some metas, some filters renamed)
  • Fixed toggle playable track link
  • Fixed sort track links
  • fixed OnlineRadioBox service
  • fixed bugfix XSPF export
  • track links JS/CSS improvements
  • BuddyPress – improved queue track/ love tracklist activities
  • Radio.fr – new service
  • Spotify: improved playlists regex
  • new image assets
  • new ‘pre_get_tracklist_by_pulse’ function hooked on ‘pre_get_posts’
  • migrate ‘remote_delay_min’ option from ‘scraper option’ post meta -> ‘wpsstm_cache_min’ post meta
  • database –> 202


  • tracklist expiration bugfix
  • improved importer and its settings
  • improved shortcodes
  • importer debug GUI
  • bugfix populate links/autolinks
  • fix files dependencies when no API key
  • Last.fm : fix url encoding / fix regexes / fix importer / scrobbler disabled by default
  • abord autolink if ‘wpsstm_autolink_input’ returns an error
    • various bug fixes
  • new class WPSSTM_Music_Data


  • So much improvements that they cannot even be listed ! More than one year of developpement and 754 commits !
  • now compatible with the Autoplay Policy Change from Chrome
  • Code entirely rewritten
  • HTML : uses HTML5 custom elements