rookie
Load cookies from any browser on any platform
Install
cargo add rookie
Usage
use ;
Bindings
There's Python bindings to rookie
pip install rookiepy
And the usage it similar to original
=
Examples
For Python
For Rust
Docs
Docs currenly available for Rust at docs.rs/rookie
For Python you can see examples folder, it's has very simple usage.
CLI
You can use rookie as a CLI tool which will decrypt the cookies and print it as JSON
See cli folder
Contribute
So far the following platforms are supported:
- Chrome:
Linux,MacOS,Windows - Firefox:
Linux,MacOS,Windows - LibreWolf:
Linux,MacOS,Windows - Opera:
Linux,MacOS,Windows - Opera GX:
MacOS,Windows - Edge: Linux,
MacOS,Windows - Internet Explorer:
Windows - Chromium:
Linux,MacOS,Windows - Brave:
Linux,MacOS,Windows - Vivaldi:
Linux,MacOS,Windows - Safari:
MacOS
You are welcome to contribute support for other browsers, or other platforms.
Support new browsers
If you have a browser with which the library isn't working with, it may not have been added to the list of supported browsers configs. You can create a pull request (PR) or an issue with the path to the cookies file on your computer, and I will add it.
look at config.rs to see what configurations is needed.
Gotchas
Password prompt with kde-wallet on linux
This library may trigger a password prompt on Linux systems when accessing browser cookies.
Session Cookies Retrieval
Chrome-based browsers have a security feature that prevents external access to their cookies file. To bypass this security measure, we restart the browser seamlessly. As a result, session cookies are retrieved and can be used, but they will expire once the browser is closed again.
Using on Unsupported platforms
To use rookie on other platforms for instance on Android,
Copy the Cookies file from the mobile phone, you can search using
find /data/data -type f -name Cookies
And pull the Cookies file you want and then execute CLI on that file
./cli --path <Cookies path>
Manually import website cookies
To import cookies from rookiepy into the browser,
you can execute short javascript code in the browser console
and construct the cookies manually,
but you must execute it while the specific domain it opened.
=
+= # one year expires
=
=
=
=
+= f
+=
return
=
In this example, I extracted the cookies from the Brave browser from the domain 'github.com.'
I cleared all of my browser cookies, executed the code, copied the output.
Then, I opened github.com in the browser and pasted it into the console. As a result, I was logged in into my account.
Testing Dates (dd/mm/yy)
| Browser | Linux | MacOS | Windows |
|---|---|---|---|
| Chrome | 1/10/23 | - | 1/10/23 |
| Firefox | 1/10/23 | - | 1/10/23 |
| LibreWolf | 1/10/23 | - | 1/10/23 |
| Opera | 1/10/23 | - | 1/10/23 |
| Opera GX | N/A | - | 1/10/23 |
| Edge | 1/10/23 | - | 1/10/23 |
| IE | N/A | N/A | 1/10/23 |
| Chromium | 1/10/23 | - | 1/10/23 |
| Brave | 1/10/23 | - | 1/10/23 |
| Vivaldi | 1/10/23 | - | 1/10/23 |
| Safari | N/A | 2/10/23 | N/A |