sublime_music


Namesublime_music JSON
Version 0.12.0 PyPI version JSON
download
home_pageNone
SummaryA native GTK *sonic client.
upload_time2023-06-10 19:19:19
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10,<4
licenseNone
keywords airsonic music gtk chromecast subsonic
VCS
bugtrack_url
requirements async-timeout bleach bottle casttube certifi charset-normalizer dataclasses-json deepdiff idna ifaddr levenshtein marshmallow marshmallow-enum mypy-extensions ordered-set orjson packaging peewee protobuf pycairo pychromecast pygobject python-dateutil python-mpv rapidfuzz requests semver six thefuzz typing-extensions typing-inspect urllib3 webencodings zeroconf
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: logo/logo.png
   :alt: Sublime Music Logo

Sublime Music is a native, GTK3
`Subsonic`_/`Airsonic`_/`Revel`_/`Gonic`_/`Navidrome`_/`Ampache`_/\*sonic client for the
Linux Desktop.

CI
  .. image:: https://github.com/sublime-music/sublime-music/actions/workflows/deploy.yaml/badge.svg?branch=master
     :target: https://github.com/sublime-music/sublime-music/actions/workflows/deploy.yaml
     :alt: Lint and Build
  .. image:: https://github.com/sublime-music/sublime-music/actions/workflows/pages.yaml/badge.svg?branch=master
     :target: https://github.com/sublime-music/sublime-music/actions/workflows/pages.yaml
     :alt: GitHub Pages

Community
  .. image:: https://img.shields.io/matrix/sublime-music:matrix.org?logo=matrix
     :target: https://matrix.to/#/#sublime-music:nevarro.space?via=matrix.org
     :alt: Matrix chat
  .. image:: https://img.shields.io/pypi/l/sublime-music?color=0c0
     :target: LICENSE
     :alt: GPLv3 or later
  .. image:: http://img.shields.io/liberapay/receives/sumner.svg?logo=liberapay
     :target: https://liberapay.com/sumner/donate
     :alt: liberapay donate

Code
  .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
     :target: https://pycqa.github.io/isort/
  .. image:: https://img.shields.io/badge/code%20style-black-000000.svg
     :target: https://github.com/psf/black

Packages
  .. image:: https://repology.org/badge/vertical-allrepos/sublime-music.svg?columns=3
     :target: https://repology.org/project/sublime-music/versions
     :alt: Packaging status

.. _Subsonic: http://www.subsonic.org/pages/index.jsp
.. _Airsonic: https://airsonic.github.io/
.. _Revel: https://gitlab.com/robozman/revel
.. _Gonic: https://github.com/sentriz/gonic
.. _Navidrome: https://www.navidrome.org/
.. _Ampache: http://ampache.org/

-------------------------------------------------------------------------------

.. figure:: docs/_static/screenshots/play-queue.png
   :align: center
   :target: docs/_static/screenshots/play-queue.png

   The Albums tab of Sublime Music with the Play Queue opened. `More
   Screenshots <https://docs.sublimemusic.app/screenshots.html>`_

Features
--------

* Switch between multiple Subsonic-API-compliant [1]_ servers.
* Play music through Chromecast devices on the same LAN.
* Offline Mode where Sublime Music will not make any network requests.
* DBus MPRIS interface integration for controlling Sublime Music via clients
  such as ``playerctl``, ``i3status-rust``, KDE Connect, and many commonly used
  desktop environments.
* Browse songs by the sever-reported filesystem structure, or view them
  organized by ID3 tags in the Albums, Artists, and Playlists views.
* Intuitive play queue.
* Create/delete/edit playlists.
* Download songs for offline listening.

.. [1] Requires a server which implements the Subsonic API version 1.8.0+.

Installation
------------

**Via the AUR**:

Install the |AUR Package|_. Example using ``yay``::

    yay -S sublime-music

If you want support for storing passwords in the system keychain, also install
``python-keyring``.

If you want support for playing on Chromecast devices, install
``python-pychromecast``. If you want to serve cached files from your computer
over the LAN to Chromecast devices also install ``python-bottle``.

.. |AUR Package| replace:: ``sublime-music`` package
.. _AUR Package: https://aur.archlinux.org/packages/sublime-music/

**Via NixOS**:

Sublime Music is part of the ``nixos-20.09`` channel and newer (including
``nixos-unstable``).

To install Sublime Music on NixOS, either use the declarative or the imperative
way:

- In ``configuration.nix`` (declarative)::

    environment.systemPackages = [ pkgs.sublime-music ];

- In command line (imperative)::

    nix-env -iA sublime-music

To customize the extra components installed, you need to use the ``override``
function provided by Nix::

    (sublime-music.override {
      serverSupport = true;
      chromecastSupport = true;
    })

The following components are supported:

* ``chromecastSupport``: if you want support for playing on Chromecast devices
  on the LAN. Defaults to ``false``.
* ``serverSupport``: if you want to be able to serve cached files from your
  computer over the LAN to Chromecast devices. Defaults to ``false``.
* ``keyringSupport``: if you want to store your passwords in the system keyring
  instead of in plain-text. Defaults to ``true``.
* ``notifySupport``: if you want to enable notifications when a new song begins
  to play. Defaults to ``true``.
* ``networkSupport``: if you want to change the address used to access the
  server depending on what network you are connected to. Defaults to ``true``.

See `Nix package management`_ for more information.

.. _Nix package management: https://nixos.org/nixos/manual/index.html#sec-package-management

**Via the Debian package**

Sublime Music is not currently in the Debian 'Stable' distribution, but has been
packaged for Debian 'Unstable' and 'Testing'.

If you have these sources in your ``/etc/apt/sources.list``, you can install
the package with::

    sudo apt install sublime-music

**Via PyPi**::

    pip install sublime-music

There are a few optional dependencies that you can install. Here's an example of
how to do that::

    pip install sublime-music[keyring,chromecast,server]

* ``keyring``: if you want to store your passwords in the system keyring instead
  of in plain-text
* ``chromecast``: if you want support for playing on Chromecast devices on the
  LAN.
* ``server``: if you want to be able to serve cached files from your computer
  over the LAN to Chromecast devices

.. note::

   Sublime Music requires Python 3.8. Please make sure that you have that
   installed. You may also need to use ``pip3`` instead of ``pip`` if you are on
   an OS that hasn't deprecated Python 2 yet.

-------------------------------------------------------------------------------

|website|_

.. |website| replace:: **Click HERE for the Sublime Music website.**
.. _website: https://sublimemusic.app

|userdoc|_

.. |userdoc| replace:: **Click HERE for extended user documentation.**
.. _userdoc: https://docs.sublimemusic.app

See the |contributing|_ document for how to contribute to this project.

.. |contributing| replace:: ``CONTRIBUTING.md``
.. _contributing: CONTRIBUTING.md

You can also join the conversation in our Matrix room:
`#sublime-music:matrix.org <https://matrix.to/#/!veTDkgvBExJGKIBYlU:matrix.org?via=matrix.org>`_.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "sublime_music",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10,<4",
    "maintainer_email": null,
    "keywords": "airsonic,music,GTK,chromecast,subsonic",
    "author": null,
    "author_email": "Sumner Evans <inquiries@sumnerevans.com>",
    "download_url": "https://files.pythonhosted.org/packages/cc/01/ff2974ec1c475970180c10b33501a7b485bb23ee55db908d63f20ba34478/sublime_music-0.12.0.tar.gz",
    "platform": null,
    "description": ".. image:: logo/logo.png\n   :alt: Sublime Music Logo\n\nSublime Music is a native, GTK3\n`Subsonic`_/`Airsonic`_/`Revel`_/`Gonic`_/`Navidrome`_/`Ampache`_/\\*sonic client for the\nLinux Desktop.\n\nCI\n  .. image:: https://github.com/sublime-music/sublime-music/actions/workflows/deploy.yaml/badge.svg?branch=master\n     :target: https://github.com/sublime-music/sublime-music/actions/workflows/deploy.yaml\n     :alt: Lint and Build\n  .. image:: https://github.com/sublime-music/sublime-music/actions/workflows/pages.yaml/badge.svg?branch=master\n     :target: https://github.com/sublime-music/sublime-music/actions/workflows/pages.yaml\n     :alt: GitHub Pages\n\nCommunity\n  .. image:: https://img.shields.io/matrix/sublime-music:matrix.org?logo=matrix\n     :target: https://matrix.to/#/#sublime-music:nevarro.space?via=matrix.org\n     :alt: Matrix chat\n  .. image:: https://img.shields.io/pypi/l/sublime-music?color=0c0\n     :target: LICENSE\n     :alt: GPLv3 or later\n  .. image:: http://img.shields.io/liberapay/receives/sumner.svg?logo=liberapay\n     :target: https://liberapay.com/sumner/donate\n     :alt: liberapay donate\n\nCode\n  .. image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336\n     :target: https://pycqa.github.io/isort/\n  .. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n     :target: https://github.com/psf/black\n\nPackages\n  .. image:: https://repology.org/badge/vertical-allrepos/sublime-music.svg?columns=3\n     :target: https://repology.org/project/sublime-music/versions\n     :alt: Packaging status\n\n.. _Subsonic: http://www.subsonic.org/pages/index.jsp\n.. _Airsonic: https://airsonic.github.io/\n.. _Revel: https://gitlab.com/robozman/revel\n.. _Gonic: https://github.com/sentriz/gonic\n.. _Navidrome: https://www.navidrome.org/\n.. _Ampache: http://ampache.org/\n\n-------------------------------------------------------------------------------\n\n.. figure:: docs/_static/screenshots/play-queue.png\n   :align: center\n   :target: docs/_static/screenshots/play-queue.png\n\n   The Albums tab of Sublime Music with the Play Queue opened. `More\n   Screenshots <https://docs.sublimemusic.app/screenshots.html>`_\n\nFeatures\n--------\n\n* Switch between multiple Subsonic-API-compliant [1]_ servers.\n* Play music through Chromecast devices on the same LAN.\n* Offline Mode where Sublime Music will not make any network requests.\n* DBus MPRIS interface integration for controlling Sublime Music via clients\n  such as ``playerctl``, ``i3status-rust``, KDE Connect, and many commonly used\n  desktop environments.\n* Browse songs by the sever-reported filesystem structure, or view them\n  organized by ID3 tags in the Albums, Artists, and Playlists views.\n* Intuitive play queue.\n* Create/delete/edit playlists.\n* Download songs for offline listening.\n\n.. [1] Requires a server which implements the Subsonic API version 1.8.0+.\n\nInstallation\n------------\n\n**Via the AUR**:\n\nInstall the |AUR Package|_. Example using ``yay``::\n\n    yay -S sublime-music\n\nIf you want support for storing passwords in the system keychain, also install\n``python-keyring``.\n\nIf you want support for playing on Chromecast devices, install\n``python-pychromecast``. If you want to serve cached files from your computer\nover the LAN to Chromecast devices also install ``python-bottle``.\n\n.. |AUR Package| replace:: ``sublime-music`` package\n.. _AUR Package: https://aur.archlinux.org/packages/sublime-music/\n\n**Via NixOS**:\n\nSublime Music is part of the ``nixos-20.09`` channel and newer (including\n``nixos-unstable``).\n\nTo install Sublime Music on NixOS, either use the declarative or the imperative\nway:\n\n- In ``configuration.nix`` (declarative)::\n\n    environment.systemPackages = [ pkgs.sublime-music ];\n\n- In command line (imperative)::\n\n    nix-env -iA sublime-music\n\nTo customize the extra components installed, you need to use the ``override``\nfunction provided by Nix::\n\n    (sublime-music.override {\n      serverSupport = true;\n      chromecastSupport = true;\n    })\n\nThe following components are supported:\n\n* ``chromecastSupport``: if you want support for playing on Chromecast devices\n  on the LAN. Defaults to ``false``.\n* ``serverSupport``: if you want to be able to serve cached files from your\n  computer over the LAN to Chromecast devices. Defaults to ``false``.\n* ``keyringSupport``: if you want to store your passwords in the system keyring\n  instead of in plain-text. Defaults to ``true``.\n* ``notifySupport``: if you want to enable notifications when a new song begins\n  to play. Defaults to ``true``.\n* ``networkSupport``: if you want to change the address used to access the\n  server depending on what network you are connected to. Defaults to ``true``.\n\nSee `Nix package management`_ for more information.\n\n.. _Nix package management: https://nixos.org/nixos/manual/index.html#sec-package-management\n\n**Via the Debian package**\n\nSublime Music is not currently in the Debian 'Stable' distribution, but has been\npackaged for Debian 'Unstable' and 'Testing'.\n\nIf you have these sources in your ``/etc/apt/sources.list``, you can install\nthe package with::\n\n    sudo apt install sublime-music\n\n**Via PyPi**::\n\n    pip install sublime-music\n\nThere are a few optional dependencies that you can install. Here's an example of\nhow to do that::\n\n    pip install sublime-music[keyring,chromecast,server]\n\n* ``keyring``: if you want to store your passwords in the system keyring instead\n  of in plain-text\n* ``chromecast``: if you want support for playing on Chromecast devices on the\n  LAN.\n* ``server``: if you want to be able to serve cached files from your computer\n  over the LAN to Chromecast devices\n\n.. note::\n\n   Sublime Music requires Python 3.8. Please make sure that you have that\n   installed. You may also need to use ``pip3`` instead of ``pip`` if you are on\n   an OS that hasn't deprecated Python 2 yet.\n\n-------------------------------------------------------------------------------\n\n|website|_\n\n.. |website| replace:: **Click HERE for the Sublime Music website.**\n.. _website: https://sublimemusic.app\n\n|userdoc|_\n\n.. |userdoc| replace:: **Click HERE for extended user documentation.**\n.. _userdoc: https://docs.sublimemusic.app\n\nSee the |contributing|_ document for how to contribute to this project.\n\n.. |contributing| replace:: ``CONTRIBUTING.md``\n.. _contributing: CONTRIBUTING.md\n\nYou can also join the conversation in our Matrix room:\n`#sublime-music:matrix.org <https://matrix.to/#/!veTDkgvBExJGKIBYlU:matrix.org?via=matrix.org>`_.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A native GTK *sonic client.",
    "version": "0.12.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/sublime-music/sublime-music/issues",
        "Documentation": "https://docs.sublimemusic.app",
        "Homepage": "https://sublimemusic.app",
        "Source Code": "https://github.com/sublime-music/sublime-music"
    },
    "split_keywords": [
        "airsonic",
        "music",
        "gtk",
        "chromecast",
        "subsonic"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3bfe5be97c525ee6add3023ac61f7ce637faf352515a103480cbf7495a4b9bbe",
                "md5": "59a5b56fcf935378d99776df2f67c93b",
                "sha256": "008ea7241f79acabf85902615a32b31a68b950d7693c07f513438c55ab897b72"
            },
            "downloads": -1,
            "filename": "sublime_music-0.12.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "59a5b56fcf935378d99776df2f67c93b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<4",
            "size": 235349,
            "upload_time": "2023-06-10T19:19:02",
            "upload_time_iso_8601": "2023-06-10T19:19:02.771159Z",
            "url": "https://files.pythonhosted.org/packages/3b/fe/5be97c525ee6add3023ac61f7ce637faf352515a103480cbf7495a4b9bbe/sublime_music-0.12.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cc01ff2974ec1c475970180c10b33501a7b485bb23ee55db908d63f20ba34478",
                "md5": "f6fba0a15924bb7b8ce37509dbb4cdc4",
                "sha256": "458bacab6be5c926852d4a43ce675b5e767210287844c6fce921832e263db3c0"
            },
            "downloads": -1,
            "filename": "sublime_music-0.12.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f6fba0a15924bb7b8ce37509dbb4cdc4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<4",
            "size": 21037905,
            "upload_time": "2023-06-10T19:19:19",
            "upload_time_iso_8601": "2023-06-10T19:19:19.675624Z",
            "url": "https://files.pythonhosted.org/packages/cc/01/ff2974ec1c475970180c10b33501a7b485bb23ee55db908d63f20ba34478/sublime_music-0.12.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-06-10 19:19:19",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sublime-music",
    "github_project": "sublime-music",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "async-timeout",
            "specs": [
                [
                    "==",
                    "4.0.2"
                ]
            ]
        },
        {
            "name": "bleach",
            "specs": [
                [
                    "==",
                    "5.0.1"
                ]
            ]
        },
        {
            "name": "bottle",
            "specs": [
                [
                    "==",
                    "0.12.25"
                ]
            ]
        },
        {
            "name": "casttube",
            "specs": [
                [
                    "==",
                    "0.2.1"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2022.12.7"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "2.1.1"
                ]
            ]
        },
        {
            "name": "dataclasses-json",
            "specs": [
                [
                    "==",
                    "0.5.7"
                ]
            ]
        },
        {
            "name": "deepdiff",
            "specs": [
                [
                    "==",
                    "6.2.3"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.4"
                ]
            ]
        },
        {
            "name": "ifaddr",
            "specs": [
                [
                    "==",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "levenshtein",
            "specs": [
                [
                    "==",
                    "0.20.9"
                ]
            ]
        },
        {
            "name": "marshmallow",
            "specs": [
                [
                    "==",
                    "3.19.0"
                ]
            ]
        },
        {
            "name": "marshmallow-enum",
            "specs": [
                [
                    "==",
                    "1.5.1"
                ]
            ]
        },
        {
            "name": "mypy-extensions",
            "specs": [
                [
                    "==",
                    "0.4.3"
                ]
            ]
        },
        {
            "name": "ordered-set",
            "specs": [
                [
                    "==",
                    "4.1.0"
                ]
            ]
        },
        {
            "name": "orjson",
            "specs": [
                [
                    "==",
                    "3.9.1"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "23.0"
                ]
            ]
        },
        {
            "name": "peewee",
            "specs": [
                [
                    "==",
                    "3.15.4"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "4.23.2"
                ]
            ]
        },
        {
            "name": "pycairo",
            "specs": [
                [
                    "==",
                    "1.23.0"
                ]
            ]
        },
        {
            "name": "pychromecast",
            "specs": [
                [
                    "==",
                    "13.0.7"
                ]
            ]
        },
        {
            "name": "pygobject",
            "specs": [
                [
                    "==",
                    "3.42.2"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.8.2"
                ]
            ]
        },
        {
            "name": "python-mpv",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "rapidfuzz",
            "specs": [
                [
                    "==",
                    "2.13.7"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.28.2"
                ]
            ]
        },
        {
            "name": "semver",
            "specs": [
                [
                    "==",
                    "2.13.0"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.16.0"
                ]
            ]
        },
        {
            "name": "thefuzz",
            "specs": [
                [
                    "==",
                    "0.19.0"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.4.0"
                ]
            ]
        },
        {
            "name": "typing-inspect",
            "specs": [
                [
                    "==",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "1.26.13"
                ]
            ]
        },
        {
            "name": "webencodings",
            "specs": [
                [
                    "==",
                    "0.5.1"
                ]
            ]
        },
        {
            "name": "zeroconf",
            "specs": [
                [
                    "==",
                    "0.64.1"
                ]
            ]
        }
    ],
    "lcname": "sublime_music"
}
        
Elapsed time: 0.22095s