Swing Music is a Web-Based Self-hosted Music Player written in Python

I’ve lost count of the number of music players I’ve reviewed over the years. But there are always new entrants to the scene that I feel compelled to investigate.

Swing Music bills itself as a cooler Spotify from both a visual and functionality perspective. That caught my attention. Unlike Spotify, it’s not a streaming service. Instead, Swing Music is a self-hosted music player where you provide the audio files. This is free and open source software.

The developer provides binaries for Linux and Windows. If you fancy building the software, there’s also the full source code available. My experience is confined only to the Linux binary as time was pressing this week. Download the Linux binary from the project’s GitHub repository and make it executable with the command:

$ chmod u+x swingmusic

In Operation

The app is started on http://localhost:1970

Point your web browser to that address. You’ll be prompted to scan all folders in your home directory, or to select the folders to scan.

Here’s an image with a small music collection.

Swing Music in action
Click image for full size

The user interface looks very good. And it’s awesome that the software lets us browse music by folders. The vast majority of music players force users to make sure their music library has perfectly groomed metadata. And they often run into issues with things like albums with multiple artists. By taking the music by folders approach, Swing Music completely avoids these sorts of issues. This approach makes sense for lots of music collections, and helps the software stand out from the crowd.

There’s an album view, artist view, search functionality, as well as favorite songs list.

Sadly there’s no support for gapless playback1. And I couldn’t see adding support for this functionality mentioned on the developer’s cool features wishlist. That’s a shame. I reached out to the developer to see if it’s in his plans. He promptly responded indicating that adding this functionality is on the horizon. Speaking of that wishlist, there are lots of interesting features planned.


Swing Music combines the directory playback functionality of Goggles Music Manager with a web-based streaming solution. This could be a great solution for many home users on a local network.

The project is in the early stage of development. With more work, Swing Music could be a really useful local music streamer particularly if your music collection’s metadata is missing or in a bad state.

Even from limited testing, there are lots of bugs present. Hopefully they’ll be ironed out as the project matures.

1 Gapless playback means tracks flow into the next song without pause. This allows seamless transitions from track to track. This is so important for albums that were designed to have the tracks run together. It’s not just classical music that so often mandates gapless playback. Listening to electronic music, concept albums, and progressive rock is often ruined when artificial gaps are inserted between tracks.

Support: GitHub Code Repository
Developer: Mungai Njoroge
License: MIT License

Swing Music is written in Python. Learn Python with our recommended free books and free tutorials.

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Newest Most Voted
Inline Feedbacks
View all comments
9 months ago

Looks interesting