41 releases

0.5.6 Nov 1, 2024
0.5.3-beta.0 Sep 1, 2024
0.5.2 Jul 7, 2024
0.3.6 Dec 26, 2023
0.3.3 Nov 25, 2023

#287 in Web programming

Download history 15/week @ 2024-07-29 21/week @ 2024-08-05 10/week @ 2024-08-12 2/week @ 2024-08-19 64/week @ 2024-08-26 52/week @ 2024-09-02 21/week @ 2024-09-09 138/week @ 2024-09-16 49/week @ 2024-09-23 101/week @ 2024-09-30 23/week @ 2024-10-07 13/week @ 2024-10-14 99/week @ 2024-10-21 410/week @ 2024-10-28 37/week @ 2024-11-04 6/week @ 2024-11-11

554 downloads per month
Used in 3 crates

Custom license and maybe LGPL-3.0-or-later

73KB
1.5K SLoC

rookie

PyPi Downloads PyPi Version NPM Version Crates License

Load cookies from any browser on any platform

Features 🚀

  • Available for Rust, Python, and JavaScript
  • Ensures type safety (e.g., TypeScript, Python with type hints)
  • Super Fast, Built with Rust
  • Bypass Chrome restriction of file locking and appbound encryption (requires admin rights on Windows from v130.x)
  • Read session cookies from Chrome based browsers! (requires admin rights on Windows)
  • Wide browsers support
  • Cross-platform support for Windows, Linux, and macOS

Usage ⚙️

Rust

cargo add rookie

Create main.rs with the following

use rookie::brave;

fn main() {
    let domains = vec!["google.com"];
    let cookies = brave(Some(domains)).unwrap();
    for cookie in cookies {
        println!("{:?}", cookie);
    }
}

Python

pip install rookiepy

And the usage it similar to Rust

import rookiepy
cookies = rookiepy.firefox(["google.com"])
for cookie in cookies:
    print(cookie['domain'], cookie['value'])

JavaScript

npm install @rookie-rs/api
import { brave } from "@rookie-rs/api";
const cookies = brave();
for (const cookie of cookies) {
  console.log(cookie);
}

Examples 📋

Rust examples/rust

Python examples/python

JavaScript examples/javascript

Docs 📘

Rust

Python

JavaScript

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:

  • Arc: Linux, macOS, Windows
  • Brave: Linux, macOS, Windows
  • Cachy: Linux
  • Chrome: Linux, macOS, Windows
  • Chromium: Linux, macOS, Windows
  • Edge: Linux, macOS, Windows
  • Firefox: Linux, macOS, Windows
  • Internet Explorer: Windows
  • LibreWolf: Linux, macOS, Windows
  • Opera: Linux, macOS, Windows
  • Opera GX: macOS, Windows
  • Safari: macOS
  • Vivaldi: Linux, macOS, Windows
  • Zen: Linux, macOS, Windows

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 rookie-rs/config.json to see what configurations is needed.

Testing Dates (DD/MM/YY) 📅

Browser Linux macOS Windows
Arc 2024/08/07 2024/08/07 2024/08/07
Brave 2024/10/26 2024/10/26 2024/10/26
Cachy 2024/06/04 N/A N/A
Chromium 2024/10/26 2024/10/26 2024/03/16
Chrome 2024/10/26 2024/10/26 2024/03/16
Edge 2023/10/01 2024/08/07 2024/03/16
Firefox 2024/10/26 2023/11/25 2024/03/16
IE N/A N/A 2024/03/16
LibreWolf 2023/10/01 2023/11/25 2023/10/01
Opera 2023/10/01 - 2023/10/01
Opera GX N/A - 2023/10/01
Safari N/A 2024/10/26 N/A
Vivaldi 2023/10/01 2023/11/25 2023/10/01
Zen - 2024/10/26 -

Credits 🙌

github.com/borisbabic/browser_cookie3

Dependencies

~29–74MB
~1.5M SLoC