#[Mac] Spicetify Creates Spotify Black Screen
372 messages · Page 1 of 1 (latest)
Spicetify/Spotify version?
run spicetify restore backup apply enable-devtools and tell me if the issue still persists
same thing
ayt right-click into Spotify
click on Show DevTools
and then screenshot the Console tab
scroll to the top
can you send me your config
config-xpui.ini
Imma add a / command sends info on how to get the config @lethal bramble
yea...
I mean
thought it was a file lol
you only need to do 2 steps
doesnt seem to be there
Just run spicetify config-dir
config-die
Fucking auto correct
got it
Send
funny thing is, it works on an exact clone of the macbook im running it on
same versions and all
can you go to /Users/gattard/Library/Application Support/Spotify/
just downloaded on different dates
if there is a Apps folder go to Apps/xpui and then send the xpui.js file here
yeah yours might be an edge case
so just a one off?
fuck where the xpui path on mac
yeah
bruh
very rarely do we have it
built different, and by different, i mean shitty
@lethal bramble it’s in Appllications dir, open Spotify , go to resources
Then app
Then xpui
mac moment
tell me about it
App files are basically folders containing the binary and icons and other shit it needs that isnt mutable
And then the Application data is where it stores all the mutable shit
confusing as hell
found this, what do you guys need from it
It is effectively two folders for everything
Windows has app data and shortcuts does it not?
It should be effectively the same
yeah localappdata is for user applications
and appdata is just config
That’s more or less the exact same
config doesn't mean anything kinda
But with the addition of weird shortcuts
yea..
did you do spicetify restore before sending this?
lemme try again i guess
but yes, the first time, i did
ah
ok good
cuz teh second time i didnt
just downaloded spotify, then ran the commands for spice
and boom
spotify blank
and after deleting the .spicetify, spotify was still blank
so re-install
i can do it again if you'd like
jheez
also ive noticed.. spicetify really prefers windows huh
easy installer and all
every single thing I've tried to render this thing in fucking crashes I'm going insane 😭
can you try a temporary fix?
just to see if it works or not
if you give me one sure
open the xpui.js file from before using a normal text editor
yea
search for ContextMenu
123 results
Spicetify.ReactComponent.ContextMenu
got it
thats all?
goofy ahh
@livid bridge I don't wanna fix this shit risk breaking everything else omfg 😭
as long as potify doesnt update and spicetify breaks, all should be good
I mean
we already have patches for the upcoming version
how dead
Probably the platform hooks if I had to guess
this one
all I have to do is add \}? at the end of the regex
but I don't wanna risk breaking things that are already working
😭
most goofy ass error
do spicetify enable-devtools
Just make it optional
and repeat the steps above
@fleet gorge did this occur when installing spicetify for the first time
yeah that's what the ? is for
but then again
😭
Open marketplace and send the error that pops up
fisrt time ever was like 3 months ago, all went fine
then spicetify had the big revert thanks to spotify
then we are here
Ah that slightly changed things
though i did uninstall, everything
There’s a chance you updated spicetify with Spotify already in its modified state
Called it lmfao
@fleet gorge run spicetify restore
Then open Spotify
uninstalled both apps, spotify, entirely, and spicetify
somehow his version is so fucking broken I'm not gonna even touch it
we are back to blank
called it
lol
yeah I did say it would break after you do so
I knew it 😭
it's strange because i actually had this exact error
and fixed it somehow
@fleet gorge mind running spicetify restore and sending me your xpui then?
it should be in a new file called xpui.spa
instead of
using a return statement
they used
whatever the fuck this is
I'm not even sure how to fix the hooks for this
I highly
lol
very highly doubt it
but for now i'd just deadass send him a premodified xpui.js to use lmfao
i mean if the modified one works for every time this issue happens, might aswell pin it
i'm pretty sure that the regex just needs a slight modification to fix it kyrie
the e.abrupt thing has existed pretty much forver
fuck no
they changed get(\w+): () =>
getSession:function(){return b},getTransport:function(){return m},getEventSender:function(){return _},getTranslations:function(){return y},getFeatureFlags:function(){return E},getHistory:function(){return ae},getAdManagers:function(){return de},getRemoteConfiguration:function(){return T},getActionStoreAPI:function(){return ie},getAllboardingAPI:function(){return q},getAuthorizationAPI:function(){return u},getClipboardAPI:function(){return G},getConnectAPI:function(){return J},getControlMessageAPI:function(){return H},getFacebookAPI:function(){return W},getFollowAPI:function(){return z},getGraphQLLoader:function(){return A},getLibraryAPI:function(){return R},getLocalFilesAPI:function(){return j},getOffline:function(){return p},getPlatformData:function(){return g},getPlayerAPI:function(){return x},getPlayHistoryAPI:function(){return V},getPlaylistAPI:function(){return U},getPlaylistPermissionsAPI:function(){return F},getPrivateSessionAPI:function(){return K},getRadioStationAPI:function(){return M},getRecaptchaLoggerAPI:function(){return ue},getRecentlyPlayedAPI:function(){return Q},getReportAPI:function(){return B},getRootlistAPI:function(){return L},getSegmentsAPI:function(){return Z},getShowAPI:function(){return Y},getUpdateAPI:function(){return P},getUserAPI:function(){return O},getVideoAPI:function(){return fe},getEnhanceAPI:function(){return ve},getSEOExperiments:function(){return{}},getViewsAPI:function(){return $},getSingAlongAPI:function(){return ge},getPlaybackAPI:function(){return D},getUBILogger:function(){return ee}});
into that shit
it's a completely different hook
return ?(?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)\}?,?)+?)[})]+;?
not necessarily
regex do be funny looking
yeah that's a normal return statement
the problem is
look at the second part of this hook
they are using the weird function
imma try to fix it rq
instead of the return statement
yeah you are gonna fix this
and turn the regex into that
@lethal bramble (?:return (?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?)?((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)\}?,?)+?)[})]+;?
should do the trick
i hope
what the
the only reason it doesn't work is because they removed the ```
return K.getValue(st.fS)?ye.setTitlebarHeight(y.J):ye.setTitlebarHeight(y.m),{version:t,container:e,operatingSystem:(0,V.L)(),isDeveloperMode:k.is_developer_mode,isVideoSupported:!0,enableCastConnect:!1,getServiceWorkerMessenger:async()=>()=>new Promise((()=>{})),
at the start of it
kind of the whole identification point of the platform hooks
wait
why is the space mandatory now?
you were this close on breaking for everyone else on this edge case
😭
comparing diffs
and it broke
holy shit
I just realized
you removed the entire return statement at the top
in favor for just the get functions
but then you expect to inject this shit in the middle
yeah this won't work
tbh we are much safer using pre-hooked xpui than to change the regex so drastically
this hooks onto every single thing that has get functions
(?:return (?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?)|(?:\w.abrupt\("return",(?:\{\w+\:\w+,)+\w+\:\(0,\w+.\w\)\(\)|(?:\w+:(?:!\d)|(?:\w+\(\))|(?:\w+),))((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)\}?,?)+?)[})]+;?
dude
because i told you i was working on a selector lmfao
how the hell
it matches thing that aren't even the platform hooks
😭
the abrupt property is a function call but not a function
you need to match waaaay higher than that
there is no place you can fit in variable declarations near the abrupt function
Meaning you will still get syntax errors on preprocess even if you get the regex to match all the way to “\w+.abrupt”
return (?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?|\w.abrupt\("return",(?:\{\w+:\w+,)+\w+:\(0,\w+.\w\)\(\)|(?:\w+:(?:!\d)|(?:\w+\(\))|(?:\w+),)((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)}?,?)+?)[})]+;?
don't need this negativity in my life rn smh
You’re chasing pipe dreams lol
Can’t fit in “Spicetify.Platform={};” or any variable declarations before a comma lol
yeah i'd change the match group to get before that lol
as in if the hooks match this would still throw a syntax error
i'll work on it later.
still getting the same thing
tbh if the majority works then don't change it so drastically
breaking for everybody else is not worth it at all
so im assuming i should use the temp fix?
wait nvm
that doesnt even work
cuz no marketplace
I mean you don’t really neeeed marketplace
But the temp fix won’t support pretty much any extensions
You can try just replacing the xpui.js you have now with someone who already applied spicetify
Bit goofy tho
so my current laptop
@fleet gorge are you using an Intel or M1 Mac
both are M1
ayt I'll make the test build accordingly
Personal one is M1, working fine
The broken one is also M1
@fleet gorge replace your current Spicetify executable with this
run spicetify restore backup apply and tell me if it works or not
no worries
np!
do it whenever you can and give me a heads up when you have the results
and I'll make the patch accordingly
use this one as it is optimized
(return ?(?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{|,\w+\.abrupt\("return",\{)(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)}?,?)+?)[})]+;?
@livid bridge turns out you can fit them all into one big ass regex
but with a few tweaks
need to change capture group indexes and use self-invoking function on the edge case
Who knew lmao
defo not me
zzz
but that is as optimized as it gets
now I just need to know if it works or not
but that is syntactically correct I think
where exactly is the file i should be replacing?
when opeing the archive, mac says the file is damaged and should be moved to bin
no opening it
Don’t open it lol
It’s in .config/spicetify
yea
i just leave it there?
you replace the other binary
with the new one
or just run spicetify upgrade
then spicetify restore backup apply
thast the thing, they have different extentions
the one i was given is .uu
i' sure you can figure out which key i ean
yea
oh
i have never done that before
chmod it
In Terminal on your Mac, use the chmod tool to make a file executable.
oh wow
just omit the .sh part
yeah np
Can you check for errors like before?
You guys still tryna fix this lol?
