Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ovos-media-plugin-spotify

This is a Spotify plugin for ovos-audio and ovos-media. It lets OVOS start playback on Spotify.

NOTE: You also need the companion skill to integrate with voice search.

Install

pip install ovos-media-plugin-spotify

Oauth

You must perform Oauth manually.

After you install the plugin, run ovos-spotify-oauth on the command line and follow the instructions.

$ ovos-spotify-oauth
This script creates the token information needed for running spotify
        with a set of personal developer credentials.

        It requires the user to go to developer.spotify.com and set up a
        developer account, create an "Application" and make sure to whitelist
        "https://127.0.0.1:8888".

        After you have done that enter the information when prompted and follow
        the instructions given.
        
YOUR CLIENT ID: xxxxx
YOUR CLIENT SECRET: xxxxx
Go to the following URL: https://accounts.spotify.com/authorize?client_id=xxx&response_type=code&redirect_uri=https%3A%2F%2F127.0.0.1%3A8888&scope=user-library-read+streaming+playlist-read-private+user-top-read+user-read-playback-state
Enter the URL you were redirected to: https://127.0.0.1:8888/?code=.....
ocp_spotify oauth token saved

Configuration

Edit your mycroft.conf and add the Spotify players you want to expose.

NOTE: If you want to make the OVOS device itself a Spotify player, use spotifyd.

The easiest way to configure this is the ovos-spotify-autoconfigure command.

$ ovos-spotify-autoconfigure
This script will auto configure ALL spotify devices under your mycroft.conf
        
        SPOTIFY PREMIUM is required!
        
        If you have not yet authenticated your spotify account, run 'ovos-spotify-oauth' first!
        
Found device: OpenVoiceOS-TV

mycroft.conf updated!

# Legacy Audio Service:
{'backends': {'spotify-OpenVoiceOS-TV': {'active': True,
                                         'identifier': 'OpenVoiceOS-TV',
                                         'type': 'ovos_spotify'}}}

# ovos-media Service:
{'audio_players': {'spotify-OpenVoiceOS-TV': {'active': True,
                                              'aliases': ['OpenVoiceOS-TV'],
                                              'identifier': 'OpenVoiceOS-TV',
                                              'module': 'ovos-media-audio-plugin-spotify'}}}

ovos-audio

{
  "Audio": {
    "backends": {
      "spotify": {
        "type": "ovos_spotify",
        "identifier": "device_name_in_spotify",
        "active": true
      }
    }
  }
}

ovos-media

WARNING: ovos-media has not been released yet. It is a work in progress.

{
 "media": {
    "audio_players": {
        "desk_speaker": {
            "module": "ovos-media-audio-plugin-spotify",
            
            // this needs to be the name of the device on spotify!
            "identifier": "Mark2",

            // users may request specific handlers in the utterance
            // using these aliases
            "aliases": ["office spotify", "office", "desk", "workstation"],

            // deactivate a plugin by setting to false
            "active": true
        }
    }
}

Python usage

If you do not want to use the companion skill, you can write your own integrations.

s = SpotifyClient()
# pprint(s.query_album("hail and kill by manowar")[1])

from ovos_utils.skills.audioservice import ClassicAudioServiceInterface
from ovos_utils.messagebus import FakeBus

bus = FakeBus()
audio = ClassicAudioServiceInterface(bus)

audio.play("spotify:playlist:37i9dQZF1DX08jcQJXDnEQ")
audio.play(["spotify:track:5P2Ghhv0wFYThHfDQaS0g5",
            "spotify:playlist:37i9dQZF1DX08jcQJXDnEQ"])
time.sleep(5)
audio.pause()
time.sleep(5)

audio.resume()
time.sleep(5)

audio.next()
time.sleep(5)

audio.prev()
time.sleep(5)

print(audio.track_info())

Related projects

  • ovos-audio: the legacy audio service this plugin integrates with.
  • ovos-media: the media service this plugin integrates with.
  • skill-ovos-spotify: the companion skill for voice search.
  • spotifyd: a Spotify client daemon you can run on the OVOS device itself.

Download files

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

Source Distribution

ovos_media_plugin_spotify-0.2.10a1.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

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

ovos_media_plugin_spotify-0.2.10a1-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file ovos_media_plugin_spotify-0.2.10a1.tar.gz.

File metadata

File hashes

Hashes for ovos_media_plugin_spotify-0.2.10a1.tar.gz
Algorithm Hash digest
SHA256 897ee8defd258530e5518f42eb80fd5fa3a3b95c9271b45e0496944bdc353b57
MD5 abc9fbdf59438ca00212ec906c164fa2
BLAKE2b-256 dfb3219aaa7ba3ae3c8166d9aa6513992d9753417cf658c5f065227607fc9a78

See more details on using hashes here.

File details

Details for the file ovos_media_plugin_spotify-0.2.10a1-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_media_plugin_spotify-0.2.10a1-py3-none-any.whl
Algorithm Hash digest
SHA256 0750c43ac540f8940db284e553b935048177bea2957fdb99920f980db13a1298
MD5 a6b2e946018fb1df4bb0a28db86c2e15
BLAKE2b-256 dc84079a3bb47f0b725dd33a9c7e668658cac7400fdee9dfe26a2affc3984e78

See more details on using hashes here.

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