2025-08-23 21:14:56 +05:00
# Crextractor
2025-03-26 13:19:45 +05:00
2025-08-23 23:49:21 +05:00
Utility for extracting credentials from the Crunchyroll Android app
2025-03-26 13:19:45 +05:00
## Prerequisites
- [Node.js ](https://nodejs.org/en )
- [jadx ](https://github.com/skylot/jadx )
## Installation
```bash
2025-08-23 21:14:56 +05:00
npm i crextractor
2025-03-26 13:19:45 +05:00
```
## Usage
2025-08-24 10:40:11 +05:00
### Fetching already extracted credentials
2025-08-23 21:38:36 +05:00
```js
async function main () {
2025-08-23 23:49:21 +05:00
const url = 'https://raw.githubusercontent.com/vitalygashkov/crextractor/refs/heads/main/credentials.tv.json' ;
2025-08-24 10:40:11 +05:00
const credentials = await fetch ( url ). then (( response ) => response . json ());
2025-08-23 21:38:36 +05:00
2025-08-24 10:40:11 +05:00
// You can use the extracted credentials to obtain access tokens for Crunchyroll APIs
2025-08-23 21:38:36 +05:00
const response = await fetch ( 'https://beta-api.crunchyroll.com/auth/v1/token' , {
headers : {
2025-08-24 10:40:11 +05:00
Authorization : credentials . authorization ,
2025-08-23 23:49:21 +05:00
'User-Agent' : 'Crunchyroll/ANDROIDTV/3.42.1_22267 (Android 16; en-US; sdk_gphone64_x86_64)' ,
2025-08-23 21:38:36 +05:00
// ...
},
method : 'POST' ,
body : JSON . stringify ({
// ...
}),
});
}
```
2025-03-26 13:19:45 +05:00
#### Library
```js
2025-08-23 23:49:21 +05:00
import { extract } from 'crextractor' ;
2025-03-26 13:19:45 +05:00
2025-08-23 23:49:21 +05:00
const { id , secret , encoded , authorization } = await extract ();
2025-08-24 10:40:11 +05:00
// id - Crunchyroll app ID
// secret - Crunchyroll app secret
// encoded - Base64 encoded `id:secret` string
// authorization - ready HTTP header in the format `Basic <encoded>`, can be used to access some Crunchyroll APIs
2025-03-26 13:19:45 +05:00
2025-08-24 10:40:11 +05:00
// Do something with the extracted credentials
2025-03-26 13:19:45 +05:00
```
#### Command-line interface
```bash
2025-08-23 23:49:21 +05:00
npx crextractor --target mobile --output ./credentials.mobile.json
2025-03-26 13:19:45 +05:00
```
2025-08-23 23:49:21 +05:00
> Results will be printed to the console and saved to `credentials.mobile.json` file. By default, the target is TV, but you can change it with `--target mobile` option.
2025-08-23 21:24:51 +05:00
2025-03-26 13:19:45 +05:00
## License
MIT