Rafiuth/Soggfy

Is Soggfy dead? No answers or updates comming :-(

Masterload1975 opened this issue · 15 comments

Please update your great Software

Soggfy was supposed to have died a year ago, I was burnt-out after constantly keeping it up to date with Spotify and about possible takedowns. Idk how much has changed since the last update so I can't promise if/when there will be a new release.

Thanks for working on Soggfy for so long! I think a lot of people can say that this program is very useful and they are grateful you made it!

I completely understand if you're not having fun developing it anymore and you're making the right choice stopping development if that is the case. I hope you're still having fun coding, no need to push yourself to work on this :).

I've just download and installed and all working fine but with only one issue. I found that it wouldn't install due to the Powershell Execution Policy not being set correctly. Once set to RemoteSigned i was able to install and run the software and with no issues

Hey! Thank you so much once again for creating this incredible software, it has been really useful over the past year! <3

Unfortunately I do think it is getting harder to use because of the outdated Spotify version and Spotify's changes. :(

I've noticed that the liked songs playlist using Soggfy's Spotify version makes it so it gets shuffled no matter what, surprisingly this doesn't happen on the newest version of Spotify (using SpotX and Spicetify).
Not many tests were made on this so this might completely be a me thing, please react with 👀 to this message if it's also happening to you

It would be fantastic if Soggfy was updated to work on a newer version of the Spotify app. In turn this update would:

  1. Make Soggfy a better option for downloading songs over other Spotify song downloaders
  2. Allow for more customizabilty via SpotX and Spicetify
  3. Just make it more convenient to use

An interesting (theoretical) idea I had was if Soggfy could be turned into a Spicetify extension/custom app requiring users to use a specific version of Spotify. This could make it way more accessible to people who already have Spicetify and would maybe even introduce some people to Spicetify.

I've been working on updating the targeted Spotify version, already got a few things working and I expect it to be ready soon :)

That's awesome! Genuinely thank you so much for working on this project for so long!

What version are you currently trying to make this work on?
Do you think integrating Soggfy into a Spicetify extension is viable?

I'm aiming for the latest version out at the moment, 1.2.25.1011. I've got most things working already and think it'll be ready before next week.

I guess a "seamless" integration with Spicetify would be pretty viable and not very hard. (I actually wanted to make Soggfy as a Spicetify extension from the start but didn't go through with it for some reason, I think that was at the time when Spotify started locking down the devtools on their client and Spicetify was in a kind of clunky/uncertain state or something.)

Possibly the main thing needed for it would be in making the hook DLL to be loaded via hijacking rather than injection, and the other JS/TS bundle thingy to be a spicetify extension. So, basically renaming the DLL to something Spotify automatically loads at startup (like BlockTheSpot does) and iirc spicetify can inject any JS blob as an extension so no changes are needed there.

In terms of usability that would probably translate to an additional option in the install script so it installs over the main Spotify at %appdata% rather than a local copy. I'll try to look at this after releasing for 1.1.25.

I'm aiming for the latest version out at the moment, 1.2.25.1011. I've got most things working already and think it'll be ready before next week.

Phenomenal! I can't wait for the release!

In terms of usability that would probably translate to an additional option in the install script so it installs over the main Spotify at %appdata% rather than a local copy. I'll try to look at this after releasing for 1.1.25.

Installing Spotify in %appdata% like normal would be the best, Spicetify works with any install path using a config option, but certain mods like SpotX only work with the normal install path (without modifying its code), so I think it would be better if that was done by default.

I guess a "seamless" integration with Spicetify would be pretty viable and not very hard.

(As I mentioned earlier) I think making a Spicetify extension for Soggfy would be really nice to have,

I am not sure how well it would work though since (from what I can tell) Soggfy only works with the specific version you've made it work on because of the injector (and I am guessing the same would go with the hijacking approach), forcing people to use a specific version of Spotify to use Soggfy via the Spicetify extension which could create some confusion with some users.

Hopefully it's not that hard to figure out an easy approach to either making Soggfy work with variety of Spotify versions or making it clear that the extension only works with certain versions. :)

Keeping the native hooks working on multiple versions is kind of complicated because most of the signatures/offsets break on every other Spotify update, unfortunately.

It's the main reason why Soggfy works over a local install rather than the one at %appdata%, with the idea being that it'd only be used occasionally and users wouldn't need to block updates and be stuck on an older version or update soggfy every two weeks. (I also had concerns over Spotify taking down the repo so it's why I never bothered with an auto updater either.)

I was thinking in making the install script force a specific version but that would also rely on Spicetify/SpotX keeping support for old versions for some reasonable amount of time (which they seem to do so it's only a minor concern).

Release v2.6.0, is out now but I just found a bug with playback speed >1x that apparently corrupts the track so to say (download is longer and speed is reset to 1x), so I'm marking it as pre-release until I figure it out.

Keeping the native hooks working on multiple versions is kind of complicated because most of the signatures/offsets break on every other Spotify update, unfortunately.

That's unfortunate. I don't think it's that worth it to continuously update Soggfy to work with each version of Spotify (unless you can find a way to automate it which would be incredible).

If you are going to make it so Soggfy works with Spotify's normal install path and create a Spicetify extension for it, I think the best way to go about handling unsupported versions would be to show an error in Spotify's UI rather than just an error in the console to make it more clear to clueless users why Soggfy doesn't work.

I was thinking in making the install script force a specific version but that would also rely on Spicetify/SpotX keeping support for old versions for some reasonable amount of time (which they seem to do so it's only a minor concern).

From what I can tell, they do mostly support older versions of Spotify, in my opinion the best thing you can do is give a warning about it and leave it there.

Release v2.6.0, is out now but I just found a bug with playback speed >1x that apparently corrupts the track so to say (download is longer and speed is reset to 1x), so I'm marking it as pre-release until I figure it out.

It's working great for me so far! Thanks for making an update for this so quickly!

I've only found a tiny bug, when right-clicking the currently playing song in the bottom left there is no context menu option to ignore the track (like there used to be on the older version of Soggfy), this might be happening because of my Spicetify extensions, not sure though.

image

Update: Oddly enough, the issue I mentioned in my first comment still occurs but only when Soggfy is injected. The "liked songs" playlist is just very buggy when Soggfy is injected for whatever reason. Using Soggfy's supplied Spotify version works fine, but injecting Soggfy makes the issue appear. Very odd, hopefully it's reproducible enough for you to take a look; if you need more info on this please tell me and I'll give it!

Thanks for your feedback and ideas, they've been really helpful!

I have managed to repro and fix the issue with the Liked Songs playlist, which would not let me play it at all when Soggfy was injected. Basically, the problem was that the Skip Ignored Tracks filter was messing up with the player queue before it was initialized, which would presumably cause some internal error and break the player. (It would do this regardless of whether it was enabled or not.)

I could not repro the issue with the context menu items not appearing, though. I think it would help to have your Spicetify extension/theme list, and maybe if you could also try to repro without any of them.


Now, following up on the track corruption issue, I also managed to fix it and improve other things along the way with some relatively straightforward changes, allowing me to get rid of most of the native hooks (down from 5 to 1), which I hope will help reduce breaks between Spotify updates and also some of the maintenance burden. We'll see.

And finally, the installer script will now persist Soggfy over the main Spotify install (plus config at %localappdata%). I think it's working quite seamlessly with Spicetify and SpotX, and it doesn't need any other steps to get them to integrate - they can be installed in any order.

It wasn't really necessary to make an extension after all, because the DLL can just inject the JS payload in mostly the same way it was being done before. Some Spicetify themes will not work or break a few of the Soggfy UI components, though.

Anyway, the release is here: v2.7.0. I should have replied sooner but I've been testing it for a bit to make sure nothing broke too badly, and everything seems to be working even better than before :)

Thanks for your feedback and ideas, they've been really helpful!

I am glad I can help this incredible project become even better!

I could not repro the issue with the context menu items not appearing, though. I think it would help to have your Spicetify extension/theme list, and maybe if you could also try to repro without any of them.

This is happening to me even without Spicetify injected. I think it might be caused by SpotX's -Plus which I am using; just a guess though.

And finally, the installer script will now persist Soggfy over the main Spotify install (plus config at %localappdata%). I think it's working quite seamlessly with Spicetify and SpotX, and it doesn't need any other steps to get them to integrate - they can be installed in any order.

Awesome! This has really improved the user experience and ease of use! Thank you so much for this update!

Some Spicetify themes will not work or break a few of the Soggfy UI components, though.

That makes sense, it shouldn't be a hard fix for the theme developers anyway, the users could probably create their own snippets to fix it too which shouldn't be too hard (depending on the theme of course)

Anyway, the release is here: v2.7.0. I should have replied sooner but I've been testing it for a bit to make sure nothing broke too badly, and everything seems to be working even better than before :)

Don't worry about it! nothing bad is going to happen if you don't give us an update a few days later 😆

I think this issue can be closed now, there have been a lot of updates for Soggfy and has diverted a lot from the initial point.

Once again thanks so much for continuing work on this project! I'm sure it has helped a lot of people out (including me)!


If Soggfy has a million star, then I am one of them. If Soggfy has ten star, then I am one of them. If Soggfy has only one star then that is me. If Soggfy has no star, then that means I am no longer on earth. If the world is against Soggfy, then I am against the world.

I guess I missed you saying that the context menu problem only happens after clicking at the track in the bottom left bar 😅, the fix should be available soon.