Open zhenyahacker opened 1 year ago
Possible duplicate of #179. Maybe the Chrome update changed something.
Having a look.
Can't it be used anymore?
same issue. began after latest chrome update.
There will be issues with the latest version of Chrome, and if the version is rolled back to 104.0.5112.102, there will be no issues
@zhaotong1121 @omineko1 Is the issue happing only on windows? I've checked on Linux, works fine there.
I am on windows 64 bit and I rolled chrome back to 114.0.5735.110 to get it working again
Can not reproduce :(.
Need help. Can anyone provide the Python version windows version etc. (as much as you can)?
Win10 22H2 64bit [Version 10.0.19045.2965] with all updates installed. System has the only user account. Python 3.11.2 Pip upgraded to latest version. Wheel installed. All packages installed via pip as site-packages. Chrome installed as usual using official installer and autoupdated.
Edition Windows 11 Pro Version 22H2 Installed on 1/19/2023 OS build 22621.1702 Experience Windows Feature Experience Pack 1000.22641.1000.0 Python 3.11.2 pip 23.1.2 Chrome Version 114.0.5735.110 (Official Build) (64-bit)
It's not working on new Chrome version in windows. https://stackoverflow.com/questions/76440733/unable-to-open-cookie-file That link is the post about this issue.
So I solved this issue temporarily by following the post.
It's working when I typed the command below in the target section from properties like image.
--disable-features=LockProfileCookieDatabase
So I solved this issue temporarily by following the post. It's working when I typed the command below in the target section from properties like image. --disable-features=LockProfileCookieDatabase
@jxchlee Confirmed it works, thanks for saving my day!
Is that temp solution to use "--disable-features=LockProfileCookieDatabase" the only option still for windows? Not a ideal work around since default Chrome settings still don't allow the cookie reading functionality to work right.
The LockProfileCookieDatabase
temp flag solution will go away once Chrome decides this change is permanent :(
This thread has some more context: https://github.com/yt-dlp/yt-dlp/issues/7271#issuecomment-1584759812. On that project, there's a new PR showing using Win32 ShadowCopy API that sounds like it works even when Cookies is locked, but requires the python process to be elevated...
Windows 10 64 python 3.7.9 chrome 114.0.5735.199
browser-cookie3 0.13.0
browser-cookie3 Unable to read cookie data from Chrome, it used to be normal。
Hey folks, I wrote that PR for yt-dlp.. and somehow found this thread. It uses ShadowCopy and works just fine when elevated. Another way of potentially getting cookies is to read off the disk directly. Basically you would find the NTFS info for the file (including offset) and then you would read it (and i guess have similar issues for other file systems).
Unfortunately that needs elevation as well. I don't think there will be a way to get the locked file content without elevation on Windows unfortunately.
TLDR: ShadowCopy seems like the best way at the moment, but requires elevation.
@csm10495 Do you want to write a patch for this package too? I'll appreciate your contribution.
I think best bet would be for me to take the logic i wrote in yt-dlp and move it out to a simple/small lib. Probably only one function: copy_from_shadow
or something like that.
Then browser_cookie3 would be able to import it. I'm a bit nervous about making that exact same change again over here and would honestly rather just have both yt-dlp and browser_cookie3 use the same lib.
That way if there are future issues its a fix in one place instead of multiple.
Would using a lib for this be ok?
@csm10495 Sure!
Sweet. I've made it really easy. https://pypi.org/project/shadowcopy/
pip install shadowcopy
Then to use it:
from shadowcopy import shadow_copy
# Internally this creates a shadow copy instance via WMI, copies the file, then deletes the shadow copy.
shadow_copy("source.txt", "destination.txt")
This will raise if not admin or if called on non-Windows.
browser-cookie3 0.19.1
Version 116.0.5845.111
Python 3.11.4
Windows 10 22H2
At first, I had a privilege problem in the above environment, but at some point, I was able to access the cookie value without a privilege problem.
I'm using the latest version of Chrome and I still have access to the cookie value without any permission issues.
However, if Python is not installed at all through pyinstaller and uac-admin, and if you run a packaged exe in an environment with the latest Chrome version, the above permission problems occur.
I don't really understand why it works on my computer and it doesn't work on other computers.
See https://github.com/yt-dlp/yt-dlp/issues/7271#issuecomment-1791933997 for a possible non-admin solution here!
[help] Is any body meet this problem on MacOS 15?I tried disable sip and grant full disk access permission to python, but it not works.
here's my env
Chrome: 130.0.6723.70
Python: 3.12.0
OS: macOS 15.1 24B83 arm64
Kernel: 24.1.0
here's traceback
Python 3.12.0 | packaged by Anaconda, Inc. | (main, Oct 2 2023, 12:22:05) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import browser_cookie3
>>> browser_cookie3.chrome()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/site-packages/browser_cookie3/__init__.py", line 1160, in chrome
return Chrome(cookie_file, domain_name, key_file).load()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/site-packages/browser_cookie3/__init__.py", line 489, in load
with _DatabaseConnetion(self.cookie_file) as con:
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/site-packages/browser_cookie3/__init__.py", line 349, in __enter__
return self.get_connection()
^^^^^^^^^^^^^^^^^^^^^
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/site-packages/browser_cookie3/__init__.py", line 383, in get_connection
con = method()
^^^^^^^^
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/site-packages/browser_cookie3/__init__.py", line 374, in __get_connection_legacy
shutil.copyfile(self.__database_file, self.__temp_cookie_file)
File "/Users/crash/miniconda3/envs/py312/lib/python3.12/shutil.py", line 260, in copyfile
with open(src, 'rb') as fsrc:
^^^^^^^^^^^^^^^
PermissionError: [Errno 1] Operation not permitted: '/Users/crash/Library/Application Support/Google/Chrome/Default/Cookies'
Several days ago everything worked fine, and today it broke. Seems like new Chrome update make Chrome to prevent python read cookie file. If I shut Chrome down it works fine again.
Checked on two Win10 PCs - same behavour.
Traceback (most recent call last): (my own script cut out) File "E:***.py", line 78, in parse_given_url cookie_jar = browser_cookie3.chrome(domain_name='domain.name') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Username\AppData\Roaming\Python\Python311\site-packages\browser_cookie3__init.py", line 1160, in chrome return Chrome(cookie_file, domain_name, key_file).load() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Username\AppData\Roaming\Python\Python311\site-packages\browser_cookie3__init__.py", line 489, in load with _DatabaseConnetion(self.cookie_file) as con: File "C:\Users\Username\AppData\Roaming\Python\Python311\site-packages\browser_cookie3__init.py", line 349, in enter return self.get_connection() ^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\Username\AppData\Roaming\Python\Python311\site-packages\browser_cookie3\init.py", line 383, in get_connection con = method() ^^^^^^^^ File "C:\Users\Username\AppData\Roaming\Python\Python311\site-packages\browser_cookie3\init.py", line 374, in get_connection_legacy shutil.copyfile(self.__database_file, self.temp_cookie_file) File "C:\Program Files\Python311\Lib\shutil.py", line 256, in copyfile with open(src, 'rb') as fsrc: ^^^^^^^^^^^^^^^ PermissionError: [Errno 13] Permission denied: 'C:\Users\Username\AppData\Roaming\..\Local\Google\Chrome\User Data\Default\Network\Cookies'