#[Mac] Spicetify Creates Spotify Black Screen

372 messages · Page 1 of 1 (latest)

fleet gorge
#

When downloading spotify from scratch, then using shell curl -fsSL https://raw.githubusercontent.com/spicetify/spicetify-cli/master/install.sh | sh curl -fsSL https://raw.githubusercontent.com/spicetify/spicetify-marketplace/main/resources/install.sh | sh

to install spicetify, spotify turns black

lethal bramble
#

Spicetify/Spotify version?

fleet gorge
#

both latest

#

spotify: 1.1.91.824.g07f1e963

Spice: 2.11.1

lethal bramble
#

run spicetify restore backup apply enable-devtools and tell me if the issue still persists

lethal bramble
#

ayt right-click into Spotify

#

click on Show DevTools

#

and then screenshot the Console tab

fleet gorge
lethal bramble
#

scroll to the top

fleet gorge
lethal bramble
#

can you send me your config

fleet gorge
#

as in, the .spicetify?

#

or home config

lethal bramble
#

config-xpui.ini

livid bridge
#

Imma add a / command sends info on how to get the config @lethal bramble

fleet gorge
#

yea...

lethal bramble
#

I mean

fleet gorge
#

thought it was a file lol

lethal bramble
#

you only need to do 2 steps

fleet gorge
#

doesnt seem to be there

livid bridge
#

Just run spicetify config-dir

lethal bramble
#

config-die

livid bridge
#

Fucking auto correct

fleet gorge
#

got it

livid bridge
#

Send

fleet gorge
lethal bramble
#

the fucking hooks broke again I'm sure of it

#

some edge cases

fleet gorge
#

funny thing is, it works on an exact clone of the macbook im running it on

#

same versions and all

lethal bramble
#

can you go to /Users/gattard/Library/Application Support/Spotify/

fleet gorge
#

just downloaded on different dates

lethal bramble
#

if there is a Apps folder go to Apps/xpui and then send the xpui.js file here

fleet gorge
lethal bramble
fleet gorge
#

so just a one off?

lethal bramble
#

fuck where the xpui path on mac

lethal bramble
fleet gorge
#

bruh

lethal bramble
#

very rarely do we have it

fleet gorge
#

built different, and by different, i mean shitty

livid bridge
#

@lethal bramble it’s in Appllications dir, open Spotify , go to resources

#

Then app

#

Then xpui

lethal bramble
#

mac moment

livid bridge
#

And it should be there

#

It’s actually really convenient

lethal bramble
livid bridge
#

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

lethal bramble
#

confusing as hell

fleet gorge
lethal bramble
#

one folder for everything is better

fleet gorge
#

nvm

#

i see it

livid bridge
#

Windows has app data and shortcuts does it not?

fleet gorge
livid bridge
#

It should be effectively the same

lethal bramble
#

and appdata is just config

livid bridge
lethal bramble
#

config doesn't mean anything kinda

livid bridge
#

But with the addition of weird shortcuts

lethal bramble
#

where the hell did it break

fleet gorge
#

yea..

lethal bramble
#

did you do spicetify restore before sending this?

fleet gorge
#

lemme try again i guess

lethal bramble
#

nah

#

you shouldn't

fleet gorge
#

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

lethal bramble
#

nah

#

gonna take a whole night for this thing to render xpui god damn

fleet gorge
#

jheez

#

also ive noticed.. spicetify really prefers windows huh

#

easy installer and all

lethal bramble
#

I mean

#

naturally

fleet gorge
#

yea

#

its obvious, but still

lethal bramble
#

every single thing I've tried to render this thing in fucking crashes I'm going insane 😭

lethal bramble
#

just to see if it works or not

fleet gorge
#

if you give me one sure

lethal bramble
#

open the xpui.js file from before using a normal text editor

fleet gorge
#

yea

lethal bramble
#

search for ContextMenu

fleet gorge
#

123 results

lethal bramble
#

Spicetify.ReactComponent.ContextMenu

fleet gorge
#

got it

lethal bramble
#

delete one of the brackets that follows

#

so that it looks like this

fleet gorge
#

thats all?

lethal bramble
#

save the file

#

restart your Spotify

#

see if it works

fleet gorge
#

...

#

it worked

lethal bramble
#

goofy ahh

fleet gorge
#

one bracket 😭

#

wtf

lethal bramble
#

it will break again if you do spicetify apply

#

lmfao

fleet gorge
#

probably wont

#

it for my dad so

#

he doesnt touch code

lethal bramble
#

ahh

#

icic

fleet gorge
#

mine worked fine when i installed it on ym mac 😭

#

same exact specs too

lethal bramble
#

@livid bridge I don't wanna fix this shit risk breaking everything else omfg 😭

fleet gorge
#

as long as potify doesnt update and spicetify breaks, all should be good

lethal bramble
#

I mean

fleet gorge
#

oh wait

#

lol

#

marketplace dead

lethal bramble
#

we already have patches for the upcoming version

lethal bramble
fleet gorge
#

rip

livid bridge
#

Probably the platform hooks if I had to guess

lethal bramble
#

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

#

😭

fleet gorge
#

most goofy ass error

lethal bramble
livid bridge
#

Just make it optional

lethal bramble
#

and repeat the steps above

livid bridge
#

@fleet gorge did this occur when installing spicetify for the first time

lethal bramble
#

but then again

#

😭

fleet gorge
livid bridge
#

Open marketplace and send the error that pops up

fleet gorge
#

then we are here

livid bridge
#

Ah that slightly changed things

fleet gorge
fleet gorge
livid bridge
#

There’s a chance you updated spicetify with Spotify already in its modified state

lethal bramble
#

the platform hooks

#

the fucking hooks

#

ughhh

livid bridge
#

@fleet gorge run spicetify restore

lethal bramble
#

it's only the .91 version tho

#

😭

livid bridge
#

Then open Spotify

fleet gorge
livid bridge
#

Yeah just run spicetify restore and open Spotify

#

Then run spicetify backup apply

lethal bramble
fleet gorge
lethal bramble
#

called it

fleet gorge
#

lol

lethal bramble
fleet gorge
#

big🧠

#

so im guessing its not me being dumb and installing incorrectly

lethal bramble
#

I knew it 😭

livid bridge
#

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

fleet gorge
#

sure

lethal bramble
#

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

livid bridge
#

if it gets to a stage where every user has this issue

#

i'll fix it

lethal bramble
fleet gorge
#

lol

lethal bramble
#

very highly doubt it

livid bridge
#

but for now i'd just deadass send him a premodified xpui.js to use lmfao

fleet gorge
#

bred fr just fucked

#

💀

lethal bramble
#

because at that stage

#

everybody will be looking into it

#

😭

#

not just you

fleet gorge
#

i mean if the modified one works for every time this issue happens, might aswell pin it

livid bridge
#

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

lethal bramble
#

fuck no

#

they changed get(\w+): () =>

livid bridge
#
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}});
lethal bramble
#

into that shit

livid bridge
#

yeah that happens pretty much ever update

#

shouldn't be that hard to fix

lethal bramble
#

it's a completely different hook

livid bridge
#

return ?(?:function\(\))?(?:[\w$\.]+\([\w$\.]+\).)*\{(?:[ \w.$,(){}]+:[\w\d!$_.()]+,)+(?:get\w+:(?:[()=>{}\w]+new Promise[()=>{}]+),)?((?:get\w+:(?:\(\)=>|function\(\)\{return ?)(?:[\w$]+|[(){}]+)\}?,?)+?)[})]+;?

livid bridge
fleet gorge
#

regex do be funny looking

lethal bramble
#

the problem is

livid bridge
#

look at the second part of this hook

lethal bramble
#

they are using the weird function

livid bridge
#

imma try to fix it rq

lethal bramble
#

instead of the return statement

lethal bramble
lethal bramble
lethal bramble
#

glhf

#

and the new one

lethal bramble
#

sure it's not a completely new regex?

livid bridge
#

@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

lethal bramble
#

what the

livid bridge
#

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

lethal bramble
#

kind of the whole identification point of the platform hooks

livid bridge
#

true

#

we just need to add another optional identifier to the start

lethal bramble
#

wait

#

why is the space mandatory now?

#

you were this close on breaking for everyone else on this edge case

#

😭

livid bridge
#

bro don't commit this shit

#

it's still aw ip

#

a wip

lethal bramble
#

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

lethal bramble
livid bridge
#

(?: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$]+|[(){}]+)\}?,?)+?)[})]+;?

lethal bramble
livid bridge
#

because i told you i was working on a selector lmfao

lethal bramble
#

it matches thing that aren't even the platform hooks

#

😭

lethal bramble
#

you need to match waaaay higher than that

#

there is no place you can fit in variable declarations near the abrupt function

lethal bramble
livid bridge
#

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$]+|[(){}]+)}?,?)+?)[})]+;?

livid bridge
lethal bramble
#

You’re chasing pipe dreams lol

#

Can’t fit in “Spicetify.Platform={};” or any variable declarations before a comma lol

livid bridge
#

wdym lmfao

#

i'll fix it if it becomes a prevalent issue

lethal bramble
livid bridge
#

yeah i'd change the match group to get before that lol

lethal bramble
#

as in if the hooks match this would still throw a syntax error

livid bridge
#

i'll work on it later.

lethal bramble
livid bridge
#

because i didn't change the match group to get before that?

#

i'll work on it later.

lethal bramble
#

tbh if the majority works then don't change it so drastically

#

breaking for everybody else is not worth it at all

livid bridge
#

well the key would be i wouldn't break it for everybody else.

#

but moving on

#

cya.

fleet gorge
#

so im assuming i should use the temp fix?

#

wait nvm

#

that doesnt even work

#

cuz no marketplace

livid bridge
#

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

fleet gorge
#

so my current laptop

lethal bramble
#

@fleet gorge are you using an Intel or M1 Mac

fleet gorge
#

both are M1

lethal bramble
#

ayt I'll make the test build accordingly

fleet gorge
#

Personal one is M1, working fine

The broken one is also M1

lethal bramble
#

@fleet gorge replace your current Spicetify executable with this

#

run spicetify restore backup apply and tell me if it works or not

fleet gorge
#

I'll get back to you on that, currently at work lol

#

Give me like 5-10 mins

lethal bramble
#

no worries

fleet gorge
#

Actually wait, nvm broken laptop is at home, I'll finish tonight lol

#

Thanks tho

lethal bramble
#

np!

#

do it whenever you can and give me a heads up when you have the results

#

and I'll make the patch accordingly

lethal bramble
#
(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

lethal bramble
#

need to change capture group indexes and use self-invoking function on the edge case

lethal bramble
#

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

fleet gorge
#

when opeing the archive, mac says the file is damaged and should be moved to bin

#

no opening it

livid bridge
#

Don’t open it lol

fleet gorge
#

ah

#

rn its sitting there with spicetify Unix Exicutable

livid bridge
#

It’s in .config/spicetify

fleet gorge
#

oh

#

yea there's no "origninal" one in there

#

that .uu is the one i added

livid bridge
#

oh wait

#

it's in uh

#

your hoe directorty

#

/.spicetify

fleet gorge
#

yea

livid bridge
fleet gorge
#

i just leave it there?

livid bridge
#

you replace the other binary

#

with the new one

#

or just run spicetify upgrade

#

then spicetify restore backup apply

fleet gorge
#

thast the thing, they have different extentions

livid bridge
#

wdy

#

btw y key is broken

fleet gorge
#

the one i was given is .uu

livid bridge
#

i' sure you can figure out which key i ean

fleet gorge
livid bridge
#

yeah idk an

#

probably somem weird discord thingm

fleet gorge
livid bridge
#

oh

fleet gorge
#

yea..

#

i see what youre going for, but the file type is wrong

livid bridge
#

redownload it

#

and then mamke it an executable

fleet gorge
#

so what's the extention?

#

rn its just..

#

a file

livid bridge
#

yeah

#

you gotta make it an executable

fleet gorge
#

i have never done that before

livid bridge
#

chmod it

fleet gorge
#

oh wow

livid bridge
#

just omit the .sh part

fleet gorge
#

thanks

#

ill try

#

oh cool it worked

livid bridge
#

yeah np

fleet gorge
#

ok so file replaced

#

time to run commands

#

spotify is now blank

#

no luck

lethal bramble
copper willow
#

You guys still tryna fix this lol?