Closed raymerjacque closed 3 months ago
As mentioned in readme, the best workaround is to use a separate google account.
If there's no "__Secure-1PSIDTS" in your account's cookie list, simply leaving it empty should work. (I believe so, if not just let me know :)
no, leaving the field blank just gives me :
File "/usr/local/lib/python3.10/dist-packages/gemini/client.py", line 124, in init raise AuthError( gemini.types.AuthError: Failed to initiate client. SECURE_1PSIDTS could get expired frequently, please make sure cookie values are up to date.
ERROR: Application startup failed. Exiting.
Can you delete line 76 of client.py and try if it works? Sorry that I don't have such an account to test it myself. https://github.com/HanaokaYuzu/Gemini-API/blob/3341fd2e0084f705bf81e7f11a79008e9fbd27b5/src/gemini/client.py#L74-L77 The code after deletion should be:
self.cookies = { "__Secure-1PSID": secure_1psid }
This is a translation, so please excuse my poor English.
I was also bothered by the early deadline. It expired in about 5-10 minutes.
However, if you close Gemini's screen immediately after retrieving the cookie, the cookie can be used for a long time. In fact, I have been using it continuously for over a week.
As a procedure There is no "Secure-1PSIDTS" after Gemini re-login. After a while, "Secure-1PSIDTS" will appear. (I don't know the conditions under which "__Secure-1PSIDTS" appears, but...)
After getting the values of “Secure-1PSID” and “Secure-1PSIDTS” Close the Gemini screen. If the Gemini screen is left open, cookies in Python will expire quickly.
However, if you close Gemini's screen immediately after retrieving the cookie, the cookie can be used for a long time.
You are right. Combined with another separate account it can last even longer (in my own case around 1 month)
As a procedure There is no "Secure-1PSIDTS" after Gemini re-login. After a while, "Secure-1PSIDTS" will appear.
I believe this behavior can be different by account. My account has __Secure-1PSIDTS immediately after logging out and re-login.
Btw re-login will force refresh your previous Secure-1PSID and Secure-1PSIDTS.
@raymerjacque Can you update to the latest version can try again with the account without __Secure-1PSIDTS?
what I did was go into an incognito tab, login to gemini from there and use those cookies it's been quite a long time and it still hasn't expired for me
Hey, I had the same issue before.
My solution is that (macOS + Chrome):
Fn-12
, and check out the network
tab.Cope the __Secure-1PSID
and __Secure-1PSIDTS
to the right place. According to other people, __Secure-1PSIDTS
may be missing in your cookies, but only using __Secure-1PSID
works for me.
Your code should look like this:
import asyncio
from gemini_webapi import GeminiClient
# Replace "COOKIE VALUE HERE" with your actual cookie values.
# Leave Secure_1PSIDTS empty if it's not available for your account.
# chop off the "__Secure_1PSID=" and ";" at the end
Secure_1PSID = 'g.a0_something_something_076'
# chop off the "__Secure_1PSIDTS=" and ";" at the end
Secure_1PSIDTS = 'sidts-somgthing_somgthing_EAA'
async def main():
# If browser-cookie3 is installed, simply use `client = GeminiClient()`
client = GeminiClient(Secure_1PSID, Secure_1PSIDTS, proxies=None)
await client.init(timeout=30, auto_close=False, close_delay=300, auto_refresh=False) # I turned auto-refresh off
asyncio.run(main())
the __Secure-1PSIDTS expires very quickly... is there no way around this ? a script to renew it, or another method of authentication ? another cookie or token that can be used ?
some google account dont even show "__Secure-1PSIDTS" its not available in F12 or cookie editor, what to do in such cases ?