mirror of
https://github.com/vitalygashkov/crextractor.git
synced 2026-07-15 17:40:03 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbdde54471 | ||
|
|
777eb4ee2b | ||
|
|
b2c672dfa6 | ||
|
|
828f4fa1d5 | ||
|
|
8275aff35e | ||
|
|
1d8596b8c9 | ||
|
|
8658934ebe | ||
|
|
96e77102e3 | ||
|
|
673c276c9a | ||
|
|
ed80f46a45 | ||
|
|
e8468cafe9 |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": "3.90.0 (955)",
|
"version": "3.92.3 (977)",
|
||||||
"id": "bf70x6ihcc8hgzwsbvxi",
|
"id": "dvoxpszj59depczpxvwj",
|
||||||
"secret": "x2cspPet3Zz5wJCtJrUCOIS9bzZwRCpc",
|
"secret": "_VQmMQlJw65tMCIT-SvM2r6OvBTs85Gf",
|
||||||
"encoded": "YmY3MHg2aWhjYzhoZ3p3c2J2eGk6eDJjc3BQZXQzWno1d0pDdEpyVUNPSVM5Ynpad1JDcGM=",
|
"encoded": "ZHZveHBzemo1OWRlcGN6cHh2d2o6X1ZRbU1RbEp3NjV0TUNJVC1Tdk0ycjZPdkJUczg1R2Y=",
|
||||||
"authorization": "Basic YmY3MHg2aWhjYzhoZ3p3c2J2eGk6eDJjc3BQZXQzWno1d0pDdEpyVUNPSVM5Ynpad1JDcGM="
|
"authorization": "Basic ZHZveHBzemo1OWRlcGN6cHh2d2o6X1ZRbU1RbEp3NjV0TUNJVC1Tdk0ycjZPdkJUczg1R2Y="
|
||||||
}
|
}
|
||||||
+1
-1
@@ -4,4 +4,4 @@
|
|||||||
"secret": "KUwmMjJXxxursHITd1zvl2C2yQaQo8N4",
|
"secret": "KUwmMjJXxxursHITd1zvl2C2yQaQo8N4",
|
||||||
"encoded": "Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ=",
|
"encoded": "Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ=",
|
||||||
"authorization": "Basic Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ="
|
"authorization": "Basic Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ="
|
||||||
}
|
}
|
||||||
+9
-7
@@ -16,13 +16,10 @@ const downloadMobileApk = async () => {
|
|||||||
|
|
||||||
const downloadTvApk = async () => {
|
const downloadTvApk = async () => {
|
||||||
const source = 'https://webservices.aptoide.com/webservices/3/getApkInfo';
|
const source = 'https://webservices.aptoide.com/webservices/3/getApkInfo';
|
||||||
const formData = new FormData();
|
const body = new FormData();
|
||||||
formData.append('identif', 'id:71666229');
|
body.append('identif', 'id:72075737');
|
||||||
formData.append('mode', 'json');
|
body.append('mode', 'json');
|
||||||
const response = await fetch(source, {
|
const response = await fetch(source, { method: 'POST', body });
|
||||||
method: 'POST',
|
|
||||||
body: formData,
|
|
||||||
});
|
|
||||||
const json = await response.json();
|
const json = await response.json();
|
||||||
const url = json.apk.path;
|
const url = json.apk.path;
|
||||||
const filepath = join(process.cwd(), 'crunchyroll.apk');
|
const filepath = join(process.cwd(), 'crunchyroll.apk');
|
||||||
@@ -100,6 +97,11 @@ const extract = async ({ target = 'mobile', output, cleanup = false } = {}) => {
|
|||||||
console.log('Downloading APK...');
|
console.log('Downloading APK...');
|
||||||
const apkPath = target === 'tv' ? await downloadTvApk() : await downloadMobileApk();
|
const apkPath = target === 'tv' ? await downloadTvApk() : await downloadMobileApk();
|
||||||
|
|
||||||
|
if (!existsSync(apkPath)) {
|
||||||
|
console.error('Unable to find APK (possibly a download error)');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
console.log('Decompiling APK...');
|
console.log('Decompiling APK...');
|
||||||
const decompiledDir = decompileApk(apkPath);
|
const decompiledDir = decompileApk(apkPath);
|
||||||
|
|
||||||
|
|||||||
Generated
+6
-6
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.3.1",
|
"version": "1.3.4",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.3.1",
|
"version": "1.3.4",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"molnia": "^0.1.5"
|
"molnia": "^0.1.7"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"crextractor": "bin/cli.js"
|
"crextractor": "bin/cli.js"
|
||||||
@@ -37,9 +37,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/molnia": {
|
"node_modules/molnia": {
|
||||||
"version": "0.1.5",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/molnia/-/molnia-0.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/molnia/-/molnia-0.1.7.tgz",
|
||||||
"integrity": "sha512-Kb3bhlvNVWJ9Z8tGZGkhmChpXQY8OLFPkxXFvLJb+foLwfH7JyyJl+DbKuUKAIK1vnxs5sBFuQb3wxOIwWBpiA==",
|
"integrity": "sha512-wCezzcu2sRybrJb9ltrBEWwzO9NU2DRgxZw5Gr1g2QrnwrNo+olE3cAiD3Q1Y76rCde1qXBUmEuZ13aKXew+AQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "crextractor",
|
"name": "crextractor",
|
||||||
"version": "1.3.1",
|
"version": "1.3.4",
|
||||||
"description": "Utility for extracting credentials from the Crunchyroll Android app",
|
"description": "Utility for extracting credentials from the Crunchyroll Android app",
|
||||||
"main": "crextractor.js",
|
"main": "crextractor.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
"node": ">=20"
|
"node": ">=20"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"molnia": "^0.1.5"
|
"molnia": "^0.1.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.2"
|
||||||
|
|||||||
Reference in New Issue
Block a user