diff --git a/materialious/android/.idea/other.xml b/materialious/android/.idea/other.xml
new file mode 100644
index 00000000..b45a6e02
--- /dev/null
+++ b/materialious/android/.idea/other.xml
@@ -0,0 +1,340 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle
index 7f9c7486..0e6f17f0 100644
--- a/materialious/android/app/build.gradle
+++ b/materialious/android/app/build.gradle
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
- versionCode 75
- versionName "1.6.24"
+ versionCode 76
+ versionName "1.6.25"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
diff --git a/materialious/electron/materialious.metainfo.xml b/materialious/electron/materialious.metainfo.xml
index 7ec3da81..d00cdaf8 100644
--- a/materialious/electron/materialious.metainfo.xml
+++ b/materialious/electron/materialious.metainfo.xml
@@ -54,6 +54,9 @@
intense
+
+ https://github.com/Materialious/Materialious/releases/tag/1.6.25
+
https://github.com/Materialious/Materialious/releases/tag/1.6.18
diff --git a/materialious/electron/package.json b/materialious/electron/package.json
index 524f59fb..1185a433 100644
--- a/materialious/electron/package.json
+++ b/materialious/electron/package.json
@@ -1,6 +1,6 @@
{
"name": "Materialious",
- "version": "1.6.24",
+ "version": "1.6.25",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
diff --git a/materialious/package-lock.json b/materialious/package-lock.json
index dd45f499..27fda152 100644
--- a/materialious/package-lock.json
+++ b/materialious/package-lock.json
@@ -9,7 +9,7 @@
"version": "1.6.24",
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
- "@capacitor/android": "6.1.2",
+ "@capacitor/android": "^6.1.2",
"@capacitor/app": "^6.0.1",
"@capacitor/browser": "^6.0.2",
"@capacitor/cli": "6.1.2",
@@ -20,8 +20,8 @@
"@capgo/inappbrowser": "^6.6.8",
"@ffmpeg/ffmpeg": "^0.12.10",
"@mediagrid/capacitor-native-audio": "^1.0.0",
- "beercss": "^3.7.10",
- "bgutils-js": "^3.1.0",
+ "beercss": "^3.8.0",
+ "bgutils-js": "^3.1.1",
"capacitor-nodejs": "https://github.com/EdenwareApps/Capacitor-NodeJS/releases/download/v1.0.0-beta.7/capacitor6-nodejs.tgz",
"dashjs": "^4.7.4",
"fuse.js": "^7.0.0",
@@ -39,7 +39,7 @@
"svelte-persisted-store": "^0.12.0",
"terser": "^5.34.1",
"vidstack": "^1.12.9",
- "youtubei.js": "^10.5.0"
+ "youtubei.js": "^12.2.0"
},
"devDependencies": {
"@capacitor/assets": "^3.0.5",
@@ -2028,6 +2028,7 @@
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-6.1.2.tgz",
"integrity": "sha512-Yh0gQDY1bgRrL25J6ecIlvvs2kF8iNSwIPXjyw6Yz9mnwYxBazF5KZbjpKtGPnJgicJhFkYGsqOkEtxrve0EoQ==",
+ "license": "MIT",
"peerDependencies": {
"@capacitor/core": "^6.1.0"
}
@@ -4322,20 +4323,22 @@
}
},
"node_modules/beercss": {
- "version": "3.7.10",
- "resolved": "https://registry.npmjs.org/beercss/-/beercss-3.7.10.tgz",
- "integrity": "sha512-h2tU2eXnh4WUUJPXk971+MS8ja571P/dxrg+7JOuc98ijb1kEKTQvHQxLBmvHee2cKzj0/DppYZphH/PnWBOXA==",
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/beercss/-/beercss-3.8.0.tgz",
+ "integrity": "sha512-GVJzHxjwJUBuGuSErQaz46yZ0WfooRhhbIUiGgqqPx/U4rKfI5dTp+z/8ifMiBvI8GRHG9PGPC/h/l2B06IFZA==",
+ "license": "MIT",
"dependencies": {
"material-dynamic-colors": "^1.1.2"
}
},
"node_modules/bgutils-js": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bgutils-js/-/bgutils-js-3.1.0.tgz",
- "integrity": "sha512-2S80c/B4OQFubJLD5ddRRp74utrvjA70x9U0RsIVK7gJaDnaPrbw+bnXWxnEnc0euLznmO9jxOtTTC7FxGmv6w==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/bgutils-js/-/bgutils-js-3.1.1.tgz",
+ "integrity": "sha512-0Vx6jIyIlMWk86MvwCIVr6HCkPv0bZKbiLFlNMGwmLfv3B21mgepajMpryYjLXJ8NT7jwenlXFcZ8ghkT48tGg==",
"funding": [
"https://github.com/sponsors/LuanRT"
- ]
+ ],
+ "license": "MIT"
},
"node_modules/big-integer": {
"version": "1.6.52",
@@ -7997,9 +8000,9 @@
}
},
"node_modules/jintr": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/jintr/-/jintr-2.1.1.tgz",
- "integrity": "sha512-89cwX4ouogeDGOBsEVsVYsnWWvWjchmwXBB4kiBhmjOKw19FiOKhNhMhpxhTlK2ctl7DS+d/ethfmuBpzoNNgA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/jintr/-/jintr-3.2.0.tgz",
+ "integrity": "sha512-psD1yf05kMKDNsUdW1l5YhO59pHScQ6OIHHb8W5SKSM2dCOFPsqolmIuSHgVA8+3Dc47NJR181CXZ4alCAPTkA==",
"funding": [
"https://github.com/sponsors/LuanRT"
],
@@ -14208,16 +14211,16 @@
}
},
"node_modules/youtubei.js": {
- "version": "10.5.0",
- "resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-10.5.0.tgz",
- "integrity": "sha512-iyA+VF28c15tCCKH9ExM2RKC3zYiHzA/eixGlJ3vERANkuI+xYKzAZ4vtOhmyqwrAddu88R/DkzEsmpph5NWjg==",
+ "version": "12.2.0",
+ "resolved": "https://registry.npmjs.org/youtubei.js/-/youtubei.js-12.2.0.tgz",
+ "integrity": "sha512-G+50qrbJCToMYhu8jbaHiS3Vf+RRul+CcDbz3hEGwHkGPh+zLiWwD6SS+YhYF+2/op4ZU5zDYQJrGqJ+wKh7Gw==",
"funding": [
"https://github.com/sponsors/LuanRT"
],
"license": "MIT",
"dependencies": {
"@bufbuild/protobuf": "^2.0.0",
- "jintr": "^2.1.1",
+ "jintr": "^3.2.0",
"tslib": "^2.5.0",
"undici": "^5.19.1"
}
diff --git a/materialious/package.json b/materialious/package.json
index 0bdee766..c65bc336 100644
--- a/materialious/package.json
+++ b/materialious/package.json
@@ -1,6 +1,6 @@
{
"name": "materialious",
- "version": "1.6.24",
+ "version": "1.6.25",
"private": true,
"scripts": {
"dev": "vite dev",
@@ -43,7 +43,7 @@
"type": "module",
"dependencies": {
"@capacitor-community/electron": "^5.0.1",
- "@capacitor/android": "6.1.2",
+ "@capacitor/android": "^6.1.2",
"@capacitor/app": "^6.0.1",
"@capacitor/browser": "^6.0.2",
"@capacitor/cli": "6.1.2",
@@ -54,8 +54,8 @@
"@capgo/inappbrowser": "^6.6.8",
"@ffmpeg/ffmpeg": "^0.12.10",
"@mediagrid/capacitor-native-audio": "^1.0.0",
- "beercss": "^3.7.10",
- "bgutils-js": "^3.1.0",
+ "beercss": "^3.8.0",
+ "bgutils-js": "^3.1.1",
"capacitor-nodejs": "https://github.com/EdenwareApps/Capacitor-NodeJS/releases/download/v1.0.0-beta.7/capacitor6-nodejs.tgz",
"dashjs": "^4.7.4",
"fuse.js": "^7.0.0",
@@ -73,6 +73,6 @@
"svelte-persisted-store": "^0.12.0",
"terser": "^5.34.1",
"vidstack": "^1.12.9",
- "youtubei.js": "^10.5.0"
+ "youtubei.js": "^12.2.0"
}
}
\ No newline at end of file
diff --git a/materialious/src/lib/patches/youtubejs.ts b/materialious/src/lib/patches/youtubejs.ts
index 42d0c361..950bef22 100644
--- a/materialious/src/lib/patches/youtubejs.ts
+++ b/materialious/src/lib/patches/youtubejs.ts
@@ -52,17 +52,15 @@ export async function patchYoutubeJs(videoId: string): Promise {
const poTokenCache = get(poTokenCacheStore);
if (!poTokenCache) {
const visitorData = ProtoUtils.encodeVisitorData(Utils.generateRandomString(11), Math.floor(Date.now() / 1000));
- const poToken = await getPo(visitorData);
-
- if (!poToken) {
- throw new Error('Unable to generate PO token');
- }
tokens = {
visitor_data: visitorData,
- po_token: poToken
+ po_token: BG.PoToken.generatePlaceholder(visitorData)
};
- poTokenCacheStore.set(tokens);
+ getPo(visitorData).then((webPo) => {
+ tokens.po_token = webPo as string;
+ poTokenCacheStore.set(tokens);
+ });
} else {
tokens = poTokenCache;
}
@@ -70,13 +68,7 @@ export async function patchYoutubeJs(videoId: string): Promise {
const youtube = await Innertube.create({
visitor_data: tokens.visitor_data,
po_token: tokens.po_token,
- fetch: async (input: RequestInfo | URL, init?: RequestInit) => {
- if (Capacitor.getPlatform() === 'android') {
- return capacitorFetch(input, init);
- } else {
- return fetch(input, init);
- }
- },
+ fetch: Capacitor.getPlatform() === 'android' ? capacitorFetch : fetch,
generate_session_locally: true,
cache: new UniversalCache(false),
location: get(interfaceRegionStore)
diff --git a/update_versions.py b/update_versions.py
index a90cc1a3..80b03f8a 100644
--- a/update_versions.py
+++ b/update_versions.py
@@ -5,7 +5,7 @@ import json
import os
import re
-LATEST_VERSION = "1.6.24"
+LATEST_VERSION = "1.6.25"
WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious")
ROOT_PACKAGE = os.path.join(WORKING_DIR, "package.json")