This plugin has been closed and is no longer available for download.

Spiff Stations


Run the Station Wizard to extract online datas (from radio stations, music services, tracklists, XML files, RSS feeds…); and generate a XSPF playlist that stays synced with your source.

You can then listen to your station directly on your website (coming soon, via Hatchet; or using Tomahawk.

Just enjoy the music, without the ads and the chat !

You can of course also use the Station Wizard to create a static playlist; that will not be updated (synced).

This plugin has been developed for the website Spiff Radio.
If you just want quickly create one station / playlist for your own use, maybe you don’t need to install the plugin :
head towards Spiff Radio and create directly your playlist there.


  • Wizard
  • Presets for popular services (, Radionomy, Slacker,, Soundcloud, Spotify, Twitter, …)
  • Dynamic stations : a form can be displayed frontend, where the visitors enters values to fetch a custom feed (eg.
  • Source feed can be html/xml/rss/json/…
  • embeddable widgets to play tracks (coming soon)
  • Stats
  • Cache engine
  • Optional : validate a tracklist with MusicBrainz (slower)

Create a new station

(Requires a basic knowledge of CSS and HTML)
In the WordPress backend, head towards the “Spiff Stations” section of the left menu.
It works like regular posts (add your station title, description, featured image…), but there is a new metabox (Station Wizard) under the editor :

Fill the informations required (Base URLs, Tracks Selector, …) then save your post.


See it in action here.

Duplicating stations

If you consider to create several stations sharing almost the same settings, consider installing the Duplicate Post plugin, which will allow you to create station “templates”.


Contributors are listed


For feature request and bug reports, please use the

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


  • querypath/QueryPath (get fragments of page using CSS selectors)



  • List of playlists (backend)
  • Station Wizard Metabox (backend)
  • Options page (backend)


Upload the plugin to your blog and Activate it.


Installation Instructions

Upload the plugin to your blog and Activate it.

Contributors & Developers

“Spiff Stations” is open source software. The following people have contributed to this plugin.


Translate “Spiff Stations” into your language.

Interested in development?

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



  • Upgrade notice


  • BIG update ! You may have to check all your playlists as a lot of things has changed.
  • Code deeeeply cleaned
  • Wizard improved
  • Cache impoved
  • Better presets system


  • Presets
  • Supports services URLs with variables (eg.
  • Supports JSON and XML as feed source, in addition of HTML
  • Improved cache
  • Improved (A LOT !) the wizard
  • Major release !


  • Added support for ‘author’ in the custom post type
  • Hide PHP warnings & errors when generating XSPF
  • Added filters “spiff_get_track_artist”,”spiff_get_track_title”, “spiff_get_track_album”.
  • Updated tracks cache code.


  • Added “Tomahawk Friendly” plugin’s option; to use Tomahawk protocol for playlists links.
  • Added functions xspfpl_playlist_links() and spiff_playlist_get_links().
  • Added “Order” playlist option
  • Cleaned up some code


    • lots of bugs fixes and improvements
  • static playlists (do not re-parse the URL each time) option.
  • custom taxonomy music_tag (replacing post_tag) – migration is automatical.
  • custom capabilities
  • less options in wizard (simplier)
  • sanitize playlist options when saved
  • new : options page
  • updated stuff to
  • new : function spiff_stations_get_last_track() / updated function spiff_stations_get_last_track()


  • fixed bug in post_column_register()


  • Clean-up on filenames, class names, meta key names.


  • Merged wizard settings into one single meta; + database update for previous versions


  • new column “XSPF Requests” – shows how many times an XSPF playlist has been requested.
  • last (cached) track : admin column & template function
  • 2 minutes cache for populate_tracklist()
  • spiff_stations_get_health() : each time tracks are populated, check if tracks are found. Health is calculated on this.
  • improved populate_tracklist()
  • splitted files


  • renamed post type from ‘xspf-plgen’ to ‘playlist’. See to update your database if needed.


  • replaced get_doc_content() by native wp_remote_get()
  • regex stuff improvement
  • bug fixes


  • Improved wizard


  • Minor


  • Added /m option for regexes
  • Escaping regex expression to display it in the input


  • Fixed bug when updating a post with the Quick Edit


  • Checks for beginning/trailing slash for the patterns, before executing the regexes for title/artist/album
  • Improved the way we catch tracklists (with curl); so no more need to set time arguments in the url / set timezone / make regexes


  • First release

To Do

  • Publish playlists on Hatchet (// API :!/playlists)
  • Send posts to Radios HQ using XML-RPC (