Skip to main content

spotify plugin for ovos

Project description

ovos-media-plugin-spotify

spotify plugin for ovos-audio and ovos-media

allows OVOS to initiate playback on spotify

NOTE: the companion skill is needed to integrate with voice search

Install

pip install ovos-media-plugin-spotify

Oauth

Currently Oauth needs to be performed manually

after installing 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://localhost: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%2Flocalhost%3A8888&scope=user-library-read+streaming+playlist-read-private+user-top-read+user-read-playback-state
Enter the URL you were redirected to: https://localhost:8888/?code=.....
ocp_spotify oauth token saved

Configuration

edit your mycroft.conf with any spotify players you want to expose

NOTE: If you want to make the OVOS device itself a spotify player, we recommend spotifyd.

The easiest way is to use the provided 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 yet been released, WIP

{
 "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 don't want to use the companion skill, you can also 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())

Project details


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.8a5.tar.gz (14.7 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.8a5-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file ovos_media_plugin_spotify-0.2.8a5.tar.gz.

File metadata

File hashes

Hashes for ovos_media_plugin_spotify-0.2.8a5.tar.gz
Algorithm Hash digest
SHA256 1b1c20aee5240476a74a3a1913e68005fb374e2c45dede7dc0afc94f2180fa43
MD5 ad3c885ba67fad5ea8b605f04e8b29e8
BLAKE2b-256 ffed09da63f69cad28e78c1bed9b9a04b003ca85c603ecb7cfdc2c67dadadb96

See more details on using hashes here.

File details

Details for the file ovos_media_plugin_spotify-0.2.8a5-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_media_plugin_spotify-0.2.8a5-py3-none-any.whl
Algorithm Hash digest
SHA256 862096a694c7ad46ca0824fe91aa96f4623d5eb001e6bc4bc218d4207f3dc0c5
MD5 3410958e3a20f6f802528548f47035e6
BLAKE2b-256 2f97666f0609c5eee28f1e0aa36ef0ff7930ed459b7c24495a5b8cc8136369ec

See more details on using hashes here.

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