11 Commits
5 changed files with 23 additions and 21 deletions
+5 -5
View File
@@ -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
View File
@@ -4,4 +4,4 @@
"secret": "KUwmMjJXxxursHITd1zvl2C2yQaQo8N4", "secret": "KUwmMjJXxxursHITd1zvl2C2yQaQo8N4",
"encoded": "Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ=", "encoded": "Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ=",
"authorization": "Basic Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ=" "authorization": "Basic Y2I5bnpybWh0MzJ2Z3RleHlna286S1V3bU1qSlh4eHVyc0hJVGQxenZsMkMyeVFhUW84TjQ="
} }
+9 -7
View File
@@ -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);
+6 -6
View File
@@ -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
View File
@@ -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"