Skip to main content

Swing Music

Project description

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.

[!TIP] To stream your music from your Android device, download the Android mobile client.

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.

[!TIP] You can read more about options in the docs.

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:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl (1.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25b0755fcf4ce475aacaa20a96dac5f0d79a8fb74eb8265ce3615695eda8460c
MD5 659fe67b5740c025a18e383cb49dcaf9
BLAKE2b-256 c886f58e9fdbbdbb935780c02f2ee63595e7c41f48390bd1e9bdbd9e4a1d2ca8

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5f2f7e1d21ad0b39972564cdc1b6ce088f1a37a55ab2ab0593369072347a1e62
MD5 e7a56f6e78f4d155b98e6e0514dced1b
BLAKE2b-256 69a4a3846fed671f46a135e10aad2831b3dd71a5bf98f87f88ec48f253ef8631

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0c5ab4a0153b134e530efdd879f4f639bee68f02a688ebf8e968c18eb04674d
MD5 16cdc2554c8a3168ce19c0e2fdb9d5eb
BLAKE2b-256 fa4dc80904ff7f161b24ab34075cf31522cf12b132ab0449994a37fd30a50550

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 76651c8d1813b13b9544cfe7c8d750a4e21fe266bc98ba14269b815577e94b4b
MD5 fcd077b9acd207247b33698395a3f940
BLAKE2b-256 1b2afd19a898b6d0c002aad50f57d5e660be16d39b014121e1096d30020df0e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bc7ed3ba776bd08bc9abeb3bee225220c628014423dad5ceedc1f90f366782d4
MD5 6e98f139ac8bbeffe33d3c872d0c49e1
BLAKE2b-256 4c8155e440f18b392e4e7e6e17950a6a76d8b984dc2cbad496b80b44f06efc36

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 51f81f8a2e7f15359da8ca7a505c88f720cb5072a6c1db8be33123030d6ab378
MD5 f6153675c75cd40ad04f9f38bd5e30d4
BLAKE2b-256 f9983d2e2f3109bdcec8e863b563ff3fc45b1af070b44b30505be9a67f1200a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bc2eb6830989247124ddbacd4226707df4f69cc66a40ef2da4a96cc85748d551
MD5 d3778f942a6fc5f3ba21de47967f6501
BLAKE2b-256 f19bca47f846c7382beb05d97f90f3fa66c858bec4500670d2e2fe1e482a50d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f026bfb15778c9d883f1c80e1e96a42fcb6776b43ed785c40f62723a514727ea
MD5 309a0618daa9087cb347e27c006990ed
BLAKE2b-256 abce0a62802de49964a48d3cd7cb57865ef3d073a2aea4726aa5a78ef2afcfaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c04a373cdb35a2ec765976c98629ab84723b96e3ce88f3a59400a28aa78fb8ea
MD5 70cad7050435d4ad152777e89f35ae38
BLAKE2b-256 a609f6e07916eb18fc920bc31a850a7cd50354cc4bcc876073de882b62b976c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3df7d7694038b5f9b3e5f12120a4c782a743dc5492eac39010a2cca5b2b09e15
MD5 c8aafb909787190c67a97cd442298051
BLAKE2b-256 a9ff1ee037b835d05c5cd7c3e609a1a9fbf9cc8252870dd73f8ed06a3f9e9681

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cd49fd7bdd307f93874e83cb6879b545c806d241e98b2a196e454de5c5384e74
MD5 638ff336161d62643bdaaaa441c9e3e7
BLAKE2b-256 f0e5b3aad8c55c0fc405025e982472edf0a3cec6fb5eb9ba6c8e11e4e001c877

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e08cd2028bb6e28984916c86b1d25ecd0dfd436d8e2159721b8f6400e76d7897
MD5 0dacae6967a4246d7baac5b56786b2a9
BLAKE2b-256 ccf87f495616c661f767cf06974af800cd70ada492637ec18f892548f31c13d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for swingmusic-3.0.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on swingmx/swingmusic.pro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page