Spotify is a great service! I have been using it for quite a while, but I felt that something was missing.
Winamp has been my main player for years and I got inspired to make a combination support thing with this application, here is what SpotiAmp is all about.
Features
- Global keyboard hotkeys to control play, stop, pause, next, previous, volume up/down and mute
- Mute commercials / ads. It comes with a price, read about below!
- Simple Webserver support, now Ajax-support
- Winamp WM_COMMAND / WM_WA_IPC support to let other applications (like girder) control Spotify
- Version 0.95 fixes bugs regarding the interface and have some new eye candy
Requirements
You must install Microsoft Visual C++ 2010 SP1 Redistributable Package to use SpotiAmp (This also apply to Vista and Windows 7!)
-
32-bit version (You need 32-bit, even if you have a 64-bit system. Spotiamp is a 32-bit software)
Download
Download html for webserver
The Ajax HTML shall be unpacked in the same directory as the Spotiamp.exe.
If you put Spotiamp.exe in the same directory as Spotify then the directory structure should look like this:
C:\Program Files\Spotify\Spotify.exe
C:\Program Files\Spotify\Uninstall.exe
C:\Program Files\Spotify\SpotiAmp.exe
C:\Program Files\Spotify\html\ <-- All files from ajaxhtml.zip here
Download old versions (v0.9 uses 2010 Redist, older 2008)
You must install Microsoft Visual C++ 2008 SP1 Redistributable Package to use SpotiAmp v0.8 (This also apply to Vista and Windows 7!)
32-bit version
- Spotiamp v0.8 exe version
-
Spotiamp v0.8 zip version
- SpotiAmp v0.5 – exe version
- SpotiAmp v0.5 – zipped version
Known limits:
1. It has been tested with Windows XP (SP3) and Windows 7. Vista suck and does not work quite right. Wine is NOT supported!
2. This version is confirmed working with Spotify v0.9.7.17 (Spotify updates itself each time you start it, you should check version, if you have trouble)
Global hotkeys, neat
You select the hotkey combination you like. Windows-key has also been added (made a new hotkey-ctrl for that silly button).
Should be pretty straight forward to configure, you’ll get an error if a combination already exists.
Mute commercials, wtf?
I know, but after hours of programming I got really, really, reeeeally tired of the commercials.
Audio commercials should be banned in my eyes, especially when Spotify actively pauses when you want to mute. This is your counter-measure, but remember it could easily be “fixed” by Spotify-crew if they want.
In the other end Spotify needs to live and royalties has to be paid. Just to nag you and not letting you forget that you don’t use premium a nag-screen has been implemented.
It looks like this:
(Note: If Spotify actively contacts me regarding this function, I will permanently remove the feature.)
Webserver support
Download the really simple html-page and extract it in the same where you have SpotiAmp.exe (desktop is not a good place for it, if you want to use webserver).
A really simple interface has been added, by requesting control.htm?[command] on the port the server is opened to a command is executed.
Here are the [command] alternatives: PREV, PLAY, NEXT, VOLUP, VOLDOWN and MUTE.
If the SpotiAmp works in Wine a simple wget should be able to execute commands on your Spotify Perfect for HTPC computers who want to control Spotify a little.
The html look like shit and if you bother check out degeros version. Neat solution to grab the screen!
Winamp WM_COMMAND support
Many people have Girder or something similar together with a remote (or simular).
By adding a simple WM_COMMAND Winamp-style based IPC you’ll manage Spotify the same way as Winamp.
It fakes the Winamp v1.x window and you can use the PostCommand(::FindWindow(NULL, L”Winamp v1.x”), WM_COMMAND, NULL, WINAMP_BUTTON2) or simular.
Please check out Winamp developer site and download the SDK extract the WINAMPCMD.H and wa_ipc.h. Most functions are not supported, but you can control the basics.
Comments
If you have any comments regarding the release, please add it below.
Man… People are pretty ungrateful. Have seen a lot of unnecessary complaints both on this site and in the other places (forums) you’ve posted this. It’s not like anyone have paid you to do this.
Lars: This was a perfect app! Completely flawless! Noticed some minor things, but nothing to mention. It solves its purpose.
Congrats, and thanks for sharing it with the masses of ungrateful SOBs that we apparently are.
Kind regards from Oslo
“15
chete:
September 21st, 2009 at 21:01:42
Using regular expression for mute commercials would be very useful. (Or mute commercials just by Artist Name)
”
+1
For me, it works perfectly on Vista when running in Compatiability Mode (Windows XP).
Thanks!
If you don’t like the nagscreen then listen to the commercials. The nagscreen cannot be disable by option nor I have my own version of it. Spotify deserve premium-customers and this app gives you a little taste (with an after-taste) on how it is on-the-other-side.
A simple hex-editor could fix your problem though. I don’t have any control over people “cracking” my software.
I’d bet all my money that you have a version of this software without the nagscreen that you use yourself.
Why are you forceing us to suffer from your moral issues. Let each and everyone decide for them selves. This software could be perfect if it were not for the nagscreen. I guess your intension was to solve a problem. Guess what? you only moved it to another location!
Using regular expression for mute commercials would be very useful. (Or mute commercials just by Artist Name)
First of all, thanks for your application. I thinks it’s great!
But I’m having problems with it. I think it’s a memory leak. I’m using it at work where I leave the computer on during all the week. In the first minutes it occupies a merely 6MB but a the end of the week it has sky rocketed to more than 200MB (now, with a few hours, it occupies more than 10MB).
I have get this values from the free Microsoft Process Explorer tool (the Private Bytes column).
PD: I haven’t found any place to put bug reports…
In Windows Vista neither the Mute buttom nor the automatic mute commercial works. However, it works by using the mute hotkey shortcut. All other buttons and hotkeys work fine. Any clue why is this happening?
Err.. I’ll have to revise my previous statement. It does indeed work on Windows 7 with Spotify 0.3.19, but it does not silence the commercials. I now start to think that I’m missing something… anyone care to share some light?
Confirmed working with Spotify 0.3.19 on Windows 7 Ultimate 64-bit.
And no ads! Thanks!
Coolio:
There will not be such a feature, since there are so few commercials atm.
A simple sharemethod between friends would be the “Commercials.ini” file, simple as that.
Future improvements
Can you add this new feature, when users flag a commercial this updates a central database of known ads, then all users syncronise with this database of known ads on a regular basis, to prevent idiots from flagging legitemate songs to ad database you can make a rule so that an ad has to me flagged by x number of users before being added to database (blacklist)
Thx
Well I dunno any commands atm that fixes the problem. It has been reported to Wine-crew earlier, but they didn’t care much. Vmware with windows is your only way ATM I’m afraid.
Hmmm.. that’s a bummer:-( So there’s no way to run any commands to get the the userspace id or something and pass it as a paramter to SpotiAmp?
I guess the only way would be to run VMWare with windows then, but that’s kind of overkill..
Kurt:
I’m sorry to say that Wine support will not work because of the “FindWindow” API in Wine. (Maybe they update it later on?)
In windows a FindWindow call can find other windows running in the same “userspace”, but since Wine creates a own userspace for each app, it will fail.
Wine does show the Window, but the GUI will not work. SpotiAmp uses IE DHTML-class, so the buttons will not trigger. SpotiAmp needs the FindWindow call to work 100%, so I wouldn’t spend any time messing around with it.
SpotAmp is for showing people what you’re playing over mirc or something, so not very useful. Besides, it’s declared dead:-) If this guy coud just make a linux version that worked, it would really make my day!
Hva med at du bytter navn pÃ¥ din app? det er allerede en “app” som heter SpotAmp… Ã¥ legge til en i holder ikke..
Edit: [removed shitty link]
Stealing names isnt a good way to get a new thing out
Comment from Author:
Could not care less, this ain’t a shitty mIRC plugin…
This doesn’t work under Wine (Ubuntu 8.10). Error log:
>wine spotiamp.exe
W: client-conf.c: Failed to open configuration file ‘/etc/pulse/client.conf’: No such file or directory
ALSA lib pulse.c:272:(pulse_connect) PulseAudio: Unable to connect: Connection refused
W: client-conf.c: Failed to open configuration file ‘/etc/pulse/client.conf’: No such file or directory
ALSA lib pulse.c:272:(pulse_connect) PulseAudio: Unable to connect: Connection refused
fixme:shdocvw:PersistStreamInit_InitNew (0x158e70)
fixme:shdocvw:navigate_url Unsupported args (Flags 0x32f138:3; TargetFrameName 0x32f148:8)
fixme:urlmon:URLMoniker_BindToObject use running object table
fixme:system:SetProcessDPIAware stub!
fixme:dwmapi:DwmIsCompositionEnabled 0x32ded0
fixme:iphlpapi:NotifyAddrChange (Handle 0x212e918, overlapped 0x212e920): stub
fixme:iphlpapi:GetAdaptersAddresses no support for IPv6 addresses
0[1620e8]: IMM32: InitKeyboardLayout, aKeyboardLayout=04140414, sCodePage=1252, sIMEProperty=00090000
fixme:shdocvw:ClOleCommandTarget_QueryStatus (0x158f10)->((null) 1 0x32e468 (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 25 2 0x32e47c (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 26 2 0x32e47c (nil))
fixme:shdocvw:ClientSite_GetContainer (0x158f10)->(0x32e4b8)
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d1-0000-0000-c000-000000000046} 37 0 0x32e58c (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d1-0000-0000-c000-000000000046} 84 0 (nil) 0x32e61c)
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 29 2 0x32e804 (nil))
fixme:shdocvw:DocHostUIHandler_GetDropTarget (0x158f10)
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d1-0000-0000-c000-000000000046} 84 0 (nil) 0x32e714)
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:mshtml:nsChannel_GetSecurityInfo default action not implemented
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d0-0000-0000-c000-000000000046} 69 0 (nil) 0x32e71c)
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d0-0000-0000-c000-000000000046} 69 0 (nil) 0x32e71c)
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 26 2 0x32e7e4 (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 29 2 0x32e7f4 (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({000214d1-0000-0000-c000-000000000046} 103 0 (nil) (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->({de4ba900-59ca-11cf-9592-444553540000} 2315 0 (nil) (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 35 0 (nil) (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 28 2 0x32e71c (nil))
fixme:shdocvw:ClientSite_GetContainer (0x158f10)->(0x32eb78)
fixme:shdocvw:InPlaceFrame_SetStatusText (0x158f10)->(0xf7ec7815)
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 25 2 0x32eaac (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 26 2 0x32eaac (nil))
fixme:shdocvw:ClOleCommandTarget_Exec (0x158f10)->((null) 21 2 (nil) (nil))
Works with winetricks so I could get Visual C++ 2008 SP1 Redistributable. Running SpotiAmp on Ubuntu 10.10 and have encountered no bugs so far (in fact, it works better than in XP).
Alpha I think people here are keen on your solutions.
A guide would be great on this, I’ll publish it on the site!