Skip to main content
Swing Music
Latest GitHub Release

Image showing the Swing Music artist page

Swing Music is a blazingly fast and beautiful, self-hosted music streaming server. Like a cooler Spotify ... but bring your own music.

Features

  • Daily Mixes - curated everyday based on your listening activity
  • Metadata normalization - a clean and consistent library
  • Album versioning - normalized albums and association with version labels (eg. Deluxe, Remaster, etc)
  • Related artist and albums
  • Folder view - Browse your music library by folders
  • Beautiful browser based UI
  • Silence detection - Combine cross-fade with silence detection to create a seamless listening experience
  • Collections - Group albums and artists based on your preferences
  • Statistics - Get insights into your listening activity
  • Last.fm scrobbling
  • Multi-user support
  • Cross-platform - Windows, Linux, MacOS (coming soon), arm64, x86

Installation

On Linux or MacOS run the command below to install Swing Music:

curl -fsSL https://setup.swingmx.com | bash

To run Swing Music on Windows, download the portable build from the downloads page and run it.

The app should start at http://localhost:1970 by default. Open the URL in your browser to configure and use Swing Music.

Using Docker Compose

Here's a sample Docker compose file:

services:
  swingmusic:
    image: ghcr.io/swingmx/swingmusic:latest
    container_name: swingmusic
    ports:
      - "1970:1970"
    volumes:
      - /path/to/music:/music
      - /path/to/config:/config
    environment:
      - SWINGMUSIC_PORT=1970
      - SWINGMUSIC_DEVICE_NAME=Host name here
    restart: unless-stopped

The SWINGMUSIC_DEVICE_NAME sets the name this server reports to connected clients. To use a different port, change both SWINGMUSIC_PORT and the ports mapping to match (e.g. 2001:2001 with SWINGMUSIC_PORT=2001).

Using Docker CLI

docker pull ghcr.io/swingmx/swingmusic:latest

Then run:

docker run --name swingmusic -p 1970:1970 -e SWINGMUSIC_PORT=1970 -e SWINGMUSIC_DEVICE_NAME="Host Name Here" -v /path/to/music:/music -v /path/to/config:/config --restart unless-stopped ghcr.io/swingmx/swingmusic:latest

Replace the following with appropriate values:

  1. /path/to/music - Your music directory on the host
  2. /path/to/config - Path to create Swing Music configs on the host
  3. Host Name Here - Your host device name

You can change the Swing Music port by updating both the -p mapping and SWINGMUSIC_PORT to the same value (e.g. -p 2001:2001 -e SWINGMUSIC_PORT=2001).

Options

Options flags can be passed when starting the app in the terminal to tweak runtime settings or perform tasks. You can use the -h flag to see all supported options.

Contributing and Development

Swing Music is looking for contributors. If you're interested, please join us at the Swing Music Community group on Telegram. For more information, take a look at https://github.com/swing-opensource/swingmusic/issues/186.

CONTRIBUTING GUIDELINES.

License

This software is provided to you with terms stated in the AGPLv3 License or any later version. Read the full text in the LICENSE file located at the root of this repository.

Contributors

Shout out to the following code contributors who have helped maintain and improve Swing Music:

Metadata

Release files for swingmusic 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for swingmusic 3.0.1
File
swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details
swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details
swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 30.2 MB

Release files / swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
25b0755fcf4ce475aacaa20a96dac5f0d79a8fb74eb8265ce3615695eda8460c
BLAKE2b-256 checksum
How to use checksums
c886f58e9fdbbdbb935780c02f2ee63595e7c41f48390bd1e9bdbd9e4a1d2ca8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
5f2f7e1d21ad0b39972564cdc1b6ce088f1a37a55ab2ab0593369072347a1e62
BLAKE2b-256 checksum
How to use checksums
69a4a3846fed671f46a135e10aad2831b3dd71a5bf98f87f88ec48f253ef8631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl

Download URL swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0c5ab4a0153b134e530efdd879f4f639bee68f02a688ebf8e968c18eb04674d
BLAKE2b-256 checksum
How to use checksums
fa4dc80904ff7f161b24ab34075cf31522cf12b132ab0449994a37fd30a50550
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76651c8d1813b13b9544cfe7c8d750a4e21fe266bc98ba14269b815577e94b4b
BLAKE2b-256 checksum
How to use checksums
1b2afd19a898b6d0c002aad50f57d5e660be16d39b014121e1096d30020df0e7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
bc7ed3ba776bd08bc9abeb3bee225220c628014423dad5ceedc1f90f366782d4
BLAKE2b-256 checksum
How to use checksums
4c8155e440f18b392e4e7e6e17950a6a76d8b984dc2cbad496b80b44f06efc36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
51f81f8a2e7f15359da8ca7a505c88f720cb5072a6c1db8be33123030d6ab378
BLAKE2b-256 checksum
How to use checksums
f9983d2e2f3109bdcec8e863b563ff3fc45b1af070b44b30505be9a67f1200a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bc2eb6830989247124ddbacd4226707df4f69cc66a40ef2da4a96cc85748d551
BLAKE2b-256 checksum
How to use checksums
f19bca47f846c7382beb05d97f90f3fa66c858bec4500670d2e2fe1e482a50d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 3.0 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
f026bfb15778c9d883f1c80e1e96a42fcb6776b43ed785c40f62723a514727ea
BLAKE2b-256 checksum
How to use checksums
abce0a62802de49964a48d3cd7cb57865ef3d073a2aea4726aa5a78ef2afcfaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c04a373cdb35a2ec765976c98629ab84723b96e3ce88f3a59400a28aa78fb8ea
BLAKE2b-256 checksum
How to use checksums
a609f6e07916eb18fc920bc31a850a7cd50354cc4bcc876073de882b62b976c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 3.0 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3df7d7694038b5f9b3e5f12120a4c782a743dc5492eac39010a2cca5b2b09e15
BLAKE2b-256 checksum
How to use checksums
a9ff1ee037b835d05c5cd7c3e609a1a9fbf9cc8252870dd73f8ed06a3f9e9681
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 2.8 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cd49fd7bdd307f93874e83cb6879b545c806d241e98b2a196e454de5c5384e74
BLAKE2b-256 checksum
How to use checksums
f0e5b3aad8c55c0fc405025e982472edf0a3cec6fb5eb9ba6c8e11e4e001c877
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e08cd2028bb6e28984916c86b1d25ecd0dfd436d8e2159721b8f6400e76d7897
BLAKE2b-256 checksum
How to use checksums
ccf87f495616c661f767cf06974af800cd70ada492637ec18f892548f31c13d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.0.1 This release

12 release files

3.0.0

9 release files

2.1.13

9 release files

2.1.11

9 release files

2.1.8

9 release files

2.1.7

9 release files

2.1.6

9 release files

2.1.5

3 release files

2.1.4

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.11

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page