A music player for WordPress

Press play on your own site.

The songs and videos in a post, in a player that feels like the apps you already use.

A WordPress site with ten tracks, in a new tab. Nothing to install.

Now Playing on a phone: the cover, the title and artist, a seek bar, and the play controls

The bar

Keeps playing while you read.

Tap a track and it starts. Scroll on, open another post, lock the phone; the music carries on.

A post with its tracks listed, and the player bar along the bottom of the screen
  • Swipe the barLeft or right for the next or previous track. Down to stop.
  • Lock screen controlsTitle, artwork and the play controls on the phone's lock screen, and on the media keys.
  • Survives a reloadReload the page, or open another one on the site, and the track is still there, paused where it was.
  • The filamentThe amber line in the bar is a level meter. It brightens with the music and fades when you pause.
  • AirPlay and ChromecastA cast button appears when a speaker or TV is on the network.
  • Keyboard shortcutsSpace or K plays and pauses, J and L skip ten seconds, Shift+N and Shift+P change track.

Up next

The whole post, queued.

Every track in the post lines up behind the one you chose. Pull the handle to see what's coming.

Now Playing with the Up next sheet open, listing the rest of the post's tracks

Song or video

Same track, two ways.

When a song has a video, a switch at the top of Now Playing flips between them without losing your place.

Now Playing on a wide screen: the Song and Video switch at the top, the cover on the left, the Up next list on the right, and the player bar along the bottom

The Riff block

One page where everything plays.

Add the block to a page and it becomes your library. Open any post inside it, play from a cover, and the music carries on.

The Listen page: a post open inside the library, its tracks listed, one playing in the bar

Live demo

Hear it.

A WordPress site with ten jazz tracks, running in your browser. Nothing to install.

The demo post: ten tracks listed, the player bar along the bottom
Open the live demo

Opens in WordPress Playground, in a new tab. Recordings by the Airmen of Note, United States Air Force Band. Public domain.

For your site

Install it. Write a post.

Riff plays the audio and video blocks WordPress already has. No new way to upload. One new page, if you want it.

A zip from the latest release. Upload it under Plugins, Add New, Upload Plugin, and activate.

What it needs

  • WordPress 6.5 or newer
  • PHP 8.1 or newer
  • Any block theme

What it adds

  • One script, one stylesheet, no build step
  • Artwork and Video version fields on media
  • A block and a shortcode for the Listen page
  • Nothing to configure

Open

For developers

  • riff_track on every media item in REST
  • riff/v1/library, with schemas
  • WPGraphQL fields when it's installed
  • Filters and actions, listed in the readme

Built on the open web.

Every browser API and CSS feature the player calls. A music player touches a lot of them, which is part of the point.