vzhd1701 / evernote-backup

Backup & export all Evernote notes and notebooks
MIT License
938 stars 69 forks source link

[Bug]: Got traceback on init-db #101

Open nigel-parker opened 1 month ago

nigel-parker commented 1 month ago

evernote-backup version

1.9.3

What OS are you using?

MacOS

OS Version / Linux distribution

Sonoma 14.5

Bug description

Installed via homebrew. Got the following output from init-db:

Logging in to Evernote... Traceback (most recent call last): File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/cli.py", line 305, in main cli() File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/click/core.py", line 1157, in call return self.main(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/click/core.py", line 783, in invoke return __callback(args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/cli.py", line 158, in init_db cli_app.init_db( File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/cli_app.py", line 38, in init_db auth_token = get_auth_token( ^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/cli_app_auth.py", line 56, in get_auth_token return evernote_login_password( ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/cli_app_auth_password.py", line 56, in evernote_login_password auth_res = auth_client.login(auth_user, auth_password) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/evernote_client_auth.py", line 27, in login return self.user_store.authenticateLongSessionV2( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/evernote_client.py", line 138, in wrapper return target_method_retry(*args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/evernote_client_util.py", line 28, in wrapper return fun(args, kwargs) ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote_backup/evernote_client_classes.py", line 294, in authenticateLongSessionV2 return self.recv_authenticateLongSession() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/Cellar/evernote-backup/1.9.3/libexec/lib/python3.12/site-packages/evernote/edam/userstore/UserStore.py", line 781, in recv_authenticateLongSession raise result.systemException evernote.edam.error.ttypes.EDAMSystemException: EDAMSystemException(message=None, errorCode=8, rateLimitDuration=None)

Log excerpt

No response

drewmccal commented 1 month ago

I'm also getting this bug as well. Both on the homebrew install and the Docker image. Might have to do with rate limiting on Evernote API's end. It would really stink if they are cracking down on people exporting.

wokawoka commented 1 month ago

I am also experiencing the same issue on linux using both the last version installed through PIP and the last portable binary

realgenekim commented 1 month ago

FWIW, I just got the same error using brew install. This is the first time trying to use this fantastic tool. Thank you!

PS: I've been manually trying to export a Skitch notebook as EMEX file with 12.5K images through the macOS app, which keeps failing midway through due to some error associated with a particular image. I mention this because the app is definitely exporting lots of data, maybe contributing to a rate-limit problem?

ilundain commented 1 month ago

Fix: Use the OAuth option: evernote-backup init-db --oauth This will open a webpage to request authorization to provide the necessary oauth token for the script to run.

Explanation: username-password is no longer supported for 3rd party apps.

The .EDAMSystemException provides errorCode=8, which indicates Invalid Authorization, and specifically incorrect username and/or password.

However, the above is not due to invalid credentials, but rather EN rejecting the username-password authentication.

As per the log, the error is thrown by line 781 of UserStore.py, which runs in the authenticate() function (line 558), where it confirms that this authentication function is only only available to Evernote's internal applications, and 3rd party apps must use OAuth (line 563-566)

spitalfields commented 1 month ago

FYI for anyone perplexed simply use

evernote-backup init-db --oauth

and a web client will open for you to confirm say 1year authorization access to Evernote - click to confirm - and then this will close and the program will successfully initialize databases etc

huyz commented 2 weeks ago

I didn't want to init-db; I only wanted to reauth.

I tried evernote-backup reauth --oauth and that worked.