Spotify Plugin

Posted on
Tue Aug 12, 2014 10:35 am
zacklin offline
Posts: 2
Joined: Aug 11, 2014

Spotify Plugin

Hey Guys,

Has there been any updates on a Spotify Plugin? Is there anyone that has integrated Spotify?

Thanks!
- Zack

Posted on
Tue Aug 12, 2014 2:57 pm
jay (support) offline
Site Admin
User avatar
Posts: 13163
Joined: Mar 19, 2008
Location: Austin, Texas

Re: Spotify Plugin

I don't know that anyone's ever asked before. I'm not even sure if they provide an API. I believe their Mac app is scriptable, so that's an option.

Jay (Indigo Support)
Twitter | Facebook | LinkedIn

Posted on
Tue Aug 12, 2014 4:32 pm
zacklin offline
Posts: 2
Joined: Aug 11, 2014

Re: Spotify Plugin

A Spotify Plugin would be awesome! I know a few users that would love it!

Posted on
Sun Dec 14, 2014 1:43 pm
rm2014 offline
Posts: 28
Joined: Sep 14, 2014

Re: Spotify Plugin

Hey Zack - any luck getting a spotify plugin? Would be really useful!

Posted on
Mon Apr 13, 2015 6:19 am
mattggarland offline
Posts: 49
Joined: Jan 06, 2013

Re: Spotify Plugin

I do quite a lot with Spotify now! I actually sold all my Sonos Gear and replaced it with spotify connect. SO much better.

Anyway ... here's my solution (so far). This script runs every second on a schedule:

Code: Select all
set playState to "blahblahblah"

tell application "Spotify"
   set trackID to id of current track
   set trackPosition to player position
   if player state is playing then
      set playState to "Playing"
   else if player state is paused then
      set playState to "Paused"
   else if player state is stopped then
      set playState to "Paused"
   end if
end tell

tell application "IndigoServer"
   set Secs to trackPosition mod 60 as integer
   set Mins to trackPosition div 60 as integer
   if Secs is 60 then
      set Secs to 0
      set Mins to Mins + 1
   end if
   if Secs is less than 10 then set Secs to "0" & Secs as string
   set Secs to Secs as string
   set value of variable "SpotifyCurrentPosition" to trackPosition as integer
   set value of variable "SpotifyCurrentPositionHuman" to (Mins as string) & ":" & (Secs as string)
end tell

if playState is "Playing" then
   set value of variable "SpotifyCurrentPlaystate" to "Playing"
else if playState is "Paused" then
   set value of variable "SpotifyCurrentPlaystate" to "Paused"
else if playState is "Stopped" then
   set value of variable "SpotifyCurrentPlaystate" to "Stopped"
else
   set value of variable "SpotifyCurrentPlaystate" to "Unknown"
end if
if value of variable "SpotCurrentID" is not trackID then
   
   
   set value of variable "SpotCurrentID" to trackID
   
   
   tell application "Spotify"
      set trackName to name of current track
      set albumName to album of current track
      set artistName to artist of current track
   end tell
   
   log trackName & " by " & artistName & " from album " & albumName & " played"
   
   set value of variable "SpotCurrentTrack" to trackName
   set value of variable "SpotCurrentAlbum" to albumName
   set value of variable "SpotCurrentArtist" to artistName
   tell application "Spotify"
      set aTrack to current track
      set aTrackArtwork to null
      
   end tell
   
   
   
   --begin album art script
   set ArtworkFromSpotify to "Server SSD:Library:WebServer:Documents:albumArt.jpg" as alias
   set SpotifyArtwork to "Server SSD:Library:WebServer:Documents:albumArt.jpg"
   -- Unix versions of the above path strings
   set unixSpotifyArtwork to the quoted form of POSIX path of SpotifyArtwork
   tell application "Spotify"
      set aTrack to current track
      set aTrackArtwork to null
      set aTrackArtwork to artwork of aTrack
      set fileRef to (open for access ArtworkFromSpotify with write permission)
      try
         write aTrackArtwork to fileRef
         close access fileRef
      end try
   end tell
   --end album art script
   
end if


So it reads in the name and playstate and saves them to variables (so I can use them to make control pages that look great).

It also uses the apache server built into OS X, saving the album art to "albumArt.jpg", allowing me to use it as a refreshing image URL in a control page. (Except the most recent spotify update seems to have broken this functionality. The resultant file won't open and doesn't display properly :( - don't know if anyone has any idea why here?

... for control, I have play, pause and back buttons:

just:
Code: Select all
tell application "Spotify"
   play
   pause
   next track
   previous track
   //anything else you can find in the applescript dictionary for spotify :p
end tell


... works good so far :) Worth a look at playing tracks in context ...

limitations I have come across so far:
Theres no way to add songs to playlists or star them.
Specific songs can be played, but not playlists, without running play track BLAH in context BLUP - so you can't rely on playing a playlist unless you're SURE the first song in the playlist is known.

Hopefully might help someone?

Posted on
Mon Apr 20, 2015 4:09 pm
stoffergoffer offline
Posts: 37
Joined: Apr 16, 2013

Re: Spotify Plugin

to play playlists i have successfully used the following code:

Code: Select all
tell application "Spotify"
   set shuffling to true
   play track "spotify:user:spotify:playlist:70P6cQQiiswZWudBTHPBp7"
   next track
end tell


Where the playlist url can be obtained by clicking the 3 dots on a playlist and choose 'copy spotify uri'

Posted on
Tue Apr 21, 2015 10:12 pm
pmgendon offline
Posts: 11
Joined: Apr 20, 2015

Re: Spotify Plugin

Hey Matt, Solid work with the script,

I wonder if the fact that album art is now in TIFF format could explain the broken part of your script?


pm

Posted on
Mon Nov 02, 2015 8:57 am
morps offline
Posts: 122
Joined: Nov 01, 2003

Re: Spotify Plugin

Matt:

It also uses the apache server built into OS X, saving the album art to "albumArt.jpg", allowing me to use it as a refreshing image URL in a control page. (Except the most recent spotify update seems to have broken this functionality. The resultant file won't open and doesn't display properly :( - don't know if anyone has any idea why here?


Is there any reason why you don't just write the file back into the IndigoWebServer directory path? Something like:

Code: Select all
Macintosh HD:Library:Application Support:Perceptive Automation:Indigo 6:IndigoWebServer:images:backgrounds:albumArt.jpg

One less thing to manage (another port, server, etc). That said, I haven't been able to figure out why it's failing as well. I think @pmgendon is onto something that the Spotify . That said, have you (or anyone) tried using a curl approach by passing the Track ID back to the Spotify API and grabbing the file from there? I probably don't even know enough to be dangerous, but check this out:

https://developer.spotify.com/web-api/console/get-track/?id=0eGsygTp906u18L0Oimnem

Posted on
Fri Jan 22, 2016 6:32 pm
the41stside offline
Posts: 12
Joined: Nov 21, 2015

Re: Spotify Plugin

Would love some advancements with spotify if anyone has made it further along. I'm looking to put the search function right into a control page. I doubt based on the scripting options for spotify that this is possible but maybe someone knows something I don't. But based on the custom ID's for tracks etc. I don't see anyway to a search outside of using spotify itself.

I work a little with Control 4 automation for other people, which is typically expensive products. That said they're integrating deezer, pandora, spotify etc. right into their master control pages because that's what customers want. I know the indigo community can match this. Any thoughts, I'll take them all.

Posted on
Thu Apr 20, 2017 9:23 am
Korey offline
User avatar
Posts: 429
Joined: Jun 04, 2008
Location: Henderson, NV

Re: Spotify Plugin

+1 for a OSX Spotify Plugin. Not that impressed with Apple Music at this point.

--
Korey

Posted on
Mon Aug 07, 2017 4:44 am
eriass offline
Posts: 9
Joined: May 12, 2016

Re: Spotify Plugin

Here is an update regarding the album covers. Got some help from a dear friend to help me.


--begin album art script

set ArtworkFromSpotify to "HD:Library:Application Support:Perceptive Automation:Indigo 7:IndigoWebServer:images:spotify:albumArt.jpg" as alias
-- Unix versions of the above path strings
set unixSpotifyArtwork to the quoted form of POSIX path of ArtworkFromSpotify

tell application "Spotify"

set aTrack to current track
set aTrackArtwork to null
set aTrackArtwork to artwork url of aTrack

try
do shell script "/usr/bin/curl -s -S -m 30 " & aTrackArtwork & " > " & unixSpotifyArtwork
end try

end tell
--end album art script

Posted on
Mon Aug 07, 2017 12:53 pm
bkmar1192 offline
Posts: 260
Joined: Sep 12, 2015

Re: Spotify Plugin

Is anyone actively working on a Spotify plugin using the Spotify API? It is the next project on my list but don't want to start if something is already in development.


Sent from my iPhone using Tapatalk

Posted on
Sun Oct 08, 2017 6:29 am
Korey offline
User avatar
Posts: 429
Joined: Jun 04, 2008
Location: Henderson, NV

Re: Spotify Plugin

bkmar1192 wrote:
Is anyone actively working on a Spotify plugin using the Spotify API? It is the next project on my list but don't want to start if something is already in development.


Sent from my iPhone using Tapatalk



Fantastic news!!

Let me know if you need a beta tester!

:D :D :D

--
Korey

Page 1 of 1

Who is online

Users browsing this forum: No registered users and 2 guests