Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
What happened to Spotify ? It doesn´t seem to work anymore. I get an -112 error message and i think i´m forced to get disconnected. Could be the ****** Wifi connection at work...
I have a premium acount and installed the spotify app on all my ppc laptops.
Did they finally disabled Spotify for us PPC mac users in 2017 ?
Spotify version 0.6.10 still working fine for me in Tiger on my iMac g4!
 
Will try it again now with another G4 laptop at home. Happy to hear it still seems to work...

Update:

I'm getting disconnected also on another G4 laptop on another Wifi connection. Any other europe based User around that have the same issue ?

Update:

I just restarted Spotify (0.6.6.10.gbd39032a) and now i only get a Playlist error but i don't get disconnected and i'm able to listen to my "Starred" and the "What´s new" playlist. Maybe false alarm but i can't listen to my subscribed playlist. Will try if unsubscribe and resubscribing will solve something...

Update:

For now it's working. I think it could be a problem between using Spotify between different versions and platforms managing the same Premium account. I have the recent Spotify app on my Android phone and my Windows desktop for example...
 
Last edited:
What happened to Spotify ? It doesn´t seem to work anymore. I get an -112 error message and i think i´m forced to get disconnected. Could be the ****** Wifi connection at work...
I have a premium acount and installed the spotify app on all my ppc laptops.
Did they finally disabled Spotify for us PPC mac users in 2017 ?

spotify still works for me. maybe your wifi connection.
spotify on PPC.png

edit: just saw newer posts facepalm
 

Attachments

  • spotify on PPC.png
    459.5 KB · Views: 407
This is how Spotify 0.8.5 looked like before it was discontinued:
image.png

btw they still host it at http://download.scdn.co/Spotify-0.8.5.dmg
 
Looks like py-spotipy is a Python library to make it easier to interact with the Spotify Web API (as a side note, you can utilize the Spotify API as-is without Py-Spotipy using Macport's Curl [or some other modern curl] and some bash scripts). This provides the ability to remotely control an active spotify client running on non-PPC hardare (or pull back a bunch of metadata/make playlist changes/etc), but won't provide the ability to actually stream music on the PPC host.

However, if that is what the community is after and someone feels like writing Python code, then one could certainly use it to control an external Spotify client from your PPC.

Taking it a step further, this could potentially be used as a stepping stone to getting the correct track stream URLs for songs, and finding some way to interface with an audio player that works on PPC to play them back. Not sure how the authentication would work without modifying the player source, but it might be possible. And then you'd have a true open source Spotify player on PPC. Just an idea.

EDIT: Looking further into it, it seems that Spotify encrypts their streams (makes sense, it is DRM-d after all). Despotify was able to circumvent this somehow, but that was over a decade ago. Not sure how you'd go about doing this without some serious reverse engineering. Happy to help if there's interest though.

More info:


EDIT2: Despotify is actually available via MacPorts, granted it is quite old (from 2011). Again I doubt this would still work, however I did try to build it via Macports and it might work if someone updates the port. The immedaite problem I've encountered is that Despotify was written against an old version of OpenSSL and the new versions no longer allow programs to look directly at the fields in a struct (that is, bn has been made opaque). Someone would need to update the code (specifically keyexchange.c) to use the modern OpenSSL or package an old version (OpenSSL 1.0.2 or below). I don't even know if Spotify supports using the ciphers and TLS versions that are present in OpenSSL 1.0.2. Will keep digging.

 
Last edited:
  • Like
Reactions: barracuda156
Quick update:

I can't get Despotify to build as-is because contrary to what the official OpenSSL page states, enabling deprecated OpenSSL API features is NOT supported in the way it states here: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes (see the mailing list here for correct info: https://mta.openssl.org/pipermail/openssl-users/2019-September/011207.html).

This leaves us with a few options, none of which seem trivial:
  1. Update the Despotify source (i.e., keyexchange.c, etc) to utilize the new(er) OpenSSL API. I don't think this would be super difficult, but I am not a C person....pointers and all that fun are not my forte. Maybe one day I will sort it out, but if anyone reading this is a C whiz, by all means.
    1. Important: I don't know if Despotify even still works as it was created over a decade ago. Short of installing it on a sandbox machine with packet capture running looking at TLS versions and whatnot to verify, might be 'a lot' of work to fix a port/package that doesn't actually function anymore on any system.
  2. Port one of the more modern-ish open source Spotify clients. These are all broken due to something:
    1. Spotube:
      1. Missing two dependencies:
        -Flutter SDK (no way this is gonna happen)
        -libappindicator-gtk3
    2. Spotify-qt
      1. Requires Qt (5.9+/6.0+)
    3. Spot
      1. Needs Rust
    4. Spotify-Tui
      1. Needs Rust
      2. **This was ported to Void at some point, so there as maybe a ray of hope. But yeah...Rust.

Hope this helps clarify the "State of Spotify on MacOS PPC" in 2023. I'll keep plugging away on it.
 
Quick update:

I can't get Despotify to build as-is because contrary to what the official OpenSSL page states, enabling deprecated OpenSSL API features is NOT supported in the way it states here: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes (see the mailing list here for correct info: https://mta.openssl.org/pipermail/openssl-users/2019-September/011207.html).

This leaves us with a few options, none of which seem trivial:
  1. Update the Despotify source (i.e., keyexchange.c, etc) to utilize the new(er) OpenSSL API. I don't think this would be super difficult, but I am not a C person....pointers and all that fun are not my forte. Maybe one day I will sort it out, but if anyone reading this is a C whiz, by all means.
    1. Important: I don't know if Despotify even still works as it was created over a decade ago. Short of installing it on a sandbox machine with packet capture running looking at TLS versions and whatnot to verify, might be 'a lot' of work to fix a port/package that doesn't actually function anymore on any system.
  2. Port one of the more modern-ish open source Spotify clients. These are all broken due to something:
    1. Spotube:
      1. Missing two dependencies:
        -Flutter SDK (no way this is gonna happen)
        -libappindicator-gtk3
    2. Spotify-qt
      1. Requires Qt (5.9+/6.0+)
    3. Spot
      1. Needs Rust
    4. Spotify-Tui
      1. Needs Rust
      2. **This was ported to Void at some point, so there as maybe a ray of hope. But yeah...Rust.

Hope this helps clarify the "State of Spotify on MacOS PPC" in 2023. I'll keep plugging away on it.

1. Re Qt5: no chance, but if there was support for Qt4 earlier, that might be restored.

2. Re Rust: mrustc builds for PPC, but needs some fixup for Big-endian, see: https://github.com/thepowersgang/mrustc/issues/300
Once that is fixed, we might get Rust building.
Alternatively, if gccrs can be supported (I am sure it is not now), gccrs builds on PPC and passes tests.
 
  • Like
Reactions: doctor_dog
Just a proof of concept, but you can technically get spotify working again using VLC and spotify-terminal.py (using python 3.11 from tiger.sh)
1692421212296.png
Basically VLC is streaming the audio from a device with the spotify desktop client running, while spotify-terminal connects to the spotify API and lets you control that device and access your library. Thanks to doctor_dog for the idea.
 
Y'all! It's here. =)

After a ton of tinkering and scouring the Internet, I have cobbled together a workable proof of concept for native Spotify for Leopard PPC! It isn't pretty, and it has a lot of moving pieces, but it does let you listen to Spotify on your PPC without doing RDP/VNC sessions to a modern client. Once this is more refined I will make a new thread for this and make it as user-friendly as possible. In the meantime, here's the quick'n'dirty version (links at the end of the post):

First, shout out to the developer of Owntone for fixing a bug I submited allowing his package to work on Macs. He was super supportive and awesome, without his code fixes this would never work. AFAIK, he's the only one that has an up-to-date Spotify library written in C (or something not Rust/Go/etc.).

Required Packages:
  1. Owntone and its dependencies (more on that later): https://owntone.github.io/owntone-server/
    1. This is the main application, written in C. I have created a Portfile to install this via Macports as well as the one depenency that isn't already in the Macports tree.
  2. VLC and/or Pulseaudio
Optional Packages:
  1. Macports (if you don't want to build from source outside of Macports or dont' know how)
  2. Spotify-Terminal (Helper Python app, available via pip, to manage playlists)

What Works:
  1. Play your Spotify playlists natively on 10.5 PPC! In 2023!? What!
  2. Use your PPC as a LAN jukebox, accessing your PPC's MP3 collection (and Spotify) via a web browser from anywhere on your network. I guess if you wanted to get really crazy you could expose it to the Internet (but don't do that).
  3. MPD support. Serve your PPC's MP3 collection and play it in iTunes (as opposed to the browser-based version above) on your LAN.

What Doesn't:
  1. Can only play Spotify playlists. There is no search functionality, you are limited to existing playlists (can't create new ones). This isn't THAT big of a deal considering you can utilize the optional Spotify-Terminal app to create/edit/manage playlists on the fly from your PPC.
  2. No Spotify Connect support. In other words, you can't control the PPC-based Spotify instance with any of the Spotify remote apps like Spotify-Terminal or an official Spotify client on supported architecture.
  3. I can't get the built-in web server to render well in any of the 'normal' PowerPC capable web browsers. You will have to issue HTTP API calls to owntone to start playing and changing tracks. (https://owntone.github.io/owntone-server/json-api/)
    1. This is the big sticking point right now. I'm trying to figure out a way around this (ideally, geting the HTML source code owntone uses to a renderable state on PPC OR find a browser that will render it as-is). It does work though.
  4. Ad-supported Spotify accounts dont' work. You need a Preimum account for this to work.
What Might Work:
  1. Streaming audio from PPC to Airplay or Chromecast
    1. I don't have these things so I didn't test, but Owntone is capable of casting to these devices.
  2. Pulseaudio as the audio destination. I have had a bear of a time getting this thing to work on my PowerBook, and it sort of kind of works, but not reliabley.
How to make it work with Macports:
  1. Grab the 'owntone' and 'libinotify-kqueue' Portfiles from my GitHub and put it in your local Macports repo. If you don't have a local repo set up, see here: https://guide.macports.org/chunked/development.local-repositories.html
    1. Note: I will submit a pull request to Macports official to see if I can get my two ports merged into the master branch. Stay tuned, for now use this.
  2. Fire up your terminal and do a nice
    Code:
    sudo port install owntone
    . Macports will handle installing all the necessary dependencies and passing the required arugments.
  3. Edit the file /opt/local/etc/owntone.conf to fit your needs.
    1. You will want to use Pulseaudio as the audio server in the config
    2. I highly recommend setting up a dedicated user to run the owntone daemon, but that's up to you. Edit the config file accordingly based on what user you're going to run it under
  4. Launch the owntone daemon in foreground mode with
    Code:
    owntone -f
    . This will launch owntone in the foreground so you can see what it's doing.
  5. Fire up a browser on a different machine on your WiFi/LAN and navigate to http://{PPC_MAC_IP_Address}:3689. If you changed the default port, use that instead of 3689. YOu will need to do this to authorize Spotify, you won't need to do this again. You might be able to do this on your PPC machine depending on what browser you're using. The Spotify authorization process is foudn in the upper right menu under "Settings"
  6. Wait for owntone to index all of your Spotify playlists. If you have hundreds like I do, this could take 10+ minutes. Check in your Terminal to see what output owntone is generating (assuming you ran 'owntone -f')
  7. Kick off spotify player using the HTTP API calls. This is the most tedious part, I hear you. Will need to either create a basic Owntone ncurses remote or figure something out.
  8. If using pulsaudio (and you actually have it running and got it to work), you will hear the audio on your PPC Mac.
  9. If you can't get Pulseaudio sorted, this is where VLC comes into play. Open the .mp3 streeam source in VLC (i.e. http://localhost:3689/stream.mp3).
  10. Enjoy the fruits of the crazy amount of work you just did to get the world's music library to work on your ancient Mac =)
I hope someone finds this useful, will continue to iterate towards a self-contained installer and better player interface. Cheers.

Portfiles:
https://github.com/Zorg-Org/macports-ports/blob/Owntone-PO/multimedia/owntone/Portfile

Owntone Docs:
 
Last edited:
This is definitely beyond cheating but I thought it would be fun to go the OP route.
Instead of trying to get it run on the PowerPC mac itself, why not only send the client and audio and leave all of the computation to another device?

A Raspberry Pi 4 directly connected (including power) to my 12" PowerBook G4, running ncspot over ssh and ffmpeg streaming audio over rtsp with opus (very low latency), being played on macOS Leopard with ffplay.
 
  • Like
Reactions: doctor_dog
Hello all,

I've recently come across a Python library called Librespot-Python, and with it, I've put together a prototype Spotify player for 10.4+:

Screen_shot_2023-10-17_at_9.20.18_PM.png

This player runs 100% on the host (PowerPC) machine, including authentication.

A premium account is not required, so free accounts will work (I've tested both).

Currently, I've only implemented what you see in the picture (search songs and play them). If there is demand, I can possibly write a much nicer GUI with much more functionality.

TLDR:
- 10.4+ Barebones Spotify client, more can be implemented in the future
- Everything is handled on the host machine, no need for any newer machines to handle tasks
- Free & Premium accounts supported

If anyone would like to test this player, installation is quite simple:
1. `sudo port install python311 py311-pip ffmpeg git`
2. `sudo port install tk -x11 +quartz`
3. `sudo port install py311-tkinter`
4. `pip3 install spotipy`
5. `pip3 install git+https://github.com/kokarare1212/librespot-python`
6. `python3 SpotifyPPCPrototype.py` - Download at https://gist.github.com/Jazzzny/0e4af17efdecad1b3133934a6d0912e4
7. Log in with your internal Spotify username (randomly generated string of characters, find it in Spotify Settings -> Edit Profile -> Username
(Feel free to use a burner account as free accounts are supported)
 
Hello all,

I've recently come across a Python library called Librespot-Python, and with it, I've put together a prototype Spotify player for 10.4+:

View attachment 2297588
This player runs 100% on the host (PowerPC) machine, including authentication.

A premium account is not required, so free accounts will work (I've tested both).

Currently, I've only implemented what you see in the picture (search songs and play them). If there is demand, I can possibly write a much nicer GUI with much more functionality.

TLDR:
- 10.4+ Barebones Spotify client, more can be implemented in the future
- Everything is handled on the host machine, no need for any newer machines to handle tasks
- Free & Premium accounts supported

If anyone would like to test this player, installation is quite simple:
1. `sudo port install python311 py311-pip ffmpeg git`
2. `sudo port install tk -x11 +quartz`
3. `sudo port install py311-tkinter`
4. `pip3 install spotipy`
5. `pip3 install git+https://github.com/kokarare1212/librespot-python`
6. `python3 SpotifyPPCPrototype.py` - Download at https://gist.github.com/Jazzzny/0e4af17efdecad1b3133934a6d0912e4
7. Log in with your internal Spotify username (randomly generated string of characters, find it in Spotify Settings -> Edit Profile -> Username
(Feel free to use a burner account as free accounts are supported)

Hi there,

I would like to test that, but I'm a total newbie with MacPorts. How should I install that? What do I need in advance?

PD: I would test that on my G4 1.25ghz iMac with 10.5.8

Thanks and good job!
 
Hi there,

I would like to test that, but I'm a total newbie with MacPorts. How should I install that? What do I need in advance?

PD: I would test that on my G4 1.25ghz iMac with 10.5.8

Thanks and good job!
You'll need to have Xcode Developer Tools 3.1.4 installed (https://developer.apple.com/service...eveloper_tools/xcode314_2809_developerdvd.dmg - will ask you to log in to Apple, so download this on a modern machine) and MacPorts for 10.5 (https://github.com/macports/macports-base/releases/download/v2.8.1/MacPorts-2.8.1-10.5-Leopard.dmg)

After that, you can run the commands for installation.
 
I've recently come across a Python library called Librespot-Python, and with it, I've put together a prototype Spotify player for 10.4+:
Bravo indeed! I'm pleased to report I was able to get this working with a little tinkering =)

Picture 1.png


A few observations, if I may:
  • Does what it says on the box, thanks for making this. It's got a fair amount less overhead than running Owntone.
  • Performance is great, I'm seeing sub-10% cpu (iBook G4 1.4 Ghz) utilization on playback via ffplay, average is about 6%
  • There's an issue with powerpc and pycryptodome/x that prevents librespot from building as-is. I ended up editing the requirements so that pycryptodome is pegged at .18 instead of .19 (.19 isn't available via MacPorts yet)
  • I think you may be missing a space in line 44 of your .py file after the "f" character. I can't remember exactly what I did anymore but it threw an error the first time I ran it. I'll try to take a look later this weekend to try and pin it down.
  • ffmpeg from Macports won't build the ffplay binary on powerpc due to logic in the Portfile around unsupported libsdl2. If anyone else is trying to utilize, you'll need to edit the ffmpeg Portfile to enable libsdl2 (which has its own problems building and requires respective amounts of Portfile surgery)
Awesome job, thanks again!
 
Last edited:
  • Like
Reactions: Jazzzny
Hi there,

I would like to test that, but I'm a total newbie with MacPorts. How should I install that? What do I need in advance?

PD: I would test that on my G4 1.25ghz iMac with 10.5.8

Thanks and good job!
If you're up for rolling up your sleeves and learning how to navigate Macports, by all means you should follow the steps outlined. You'll learn a lot in the process and will help you find avenues to current software on powerpc.

However, if you're starting from "scratch", I recommend either utilizing leopard.sh or my Macports repo to satisfy some of if not all the dependencies, else you're looking at a minimum of 12 hours compile time...and if we're being truthful, probably more like days worth.

Good luck and let us know how it goes
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.