From 15f1df3cf79fb6d6c835be19120ac6256f14b882 Mon Sep 17 00:00:00 2001 From: ward Date: Sat, 14 Jun 2025 00:50:15 +1200 Subject: [PATCH 1/3] Bump version --- materialious/android/app/build.gradle | 4 ++-- materialious/electron/materialious.metainfo.xml | 6 +++++- materialious/electron/package.json | 2 +- materialious/package.json | 2 +- update_versions.py | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/materialious/android/app/build.gradle b/materialious/android/app/build.gradle index a7b993a6..9c0bebe7 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 122 - versionName "1.9.5" + versionCode 123 + versionName "1.9.6" 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 24976e82..eb5ee56d 100644 --- a/materialious/electron/materialious.metainfo.xml +++ b/materialious/electron/materialious.metainfo.xml @@ -57,7 +57,11 @@ - + + + https://github.com/Materialious/Materialious/releases/tag/1.9.6 + + https://github.com/Materialious/Materialious/releases/tag/1.9.5 diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 427bb385..924799ed 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -1,6 +1,6 @@ { "name": "Materialious", - "version": "1.9.5", + "version": "1.9.6", "description": "Modern material design for Invidious.", "author": { "name": "Ward Pearce", diff --git a/materialious/package.json b/materialious/package.json index e0e0e777..b9cde933 100644 --- a/materialious/package.json +++ b/materialious/package.json @@ -1,6 +1,6 @@ { "name": "materialious", - "version": "1.9.5", + "version": "1.9.6", "private": true, "scripts": { "dev": "vite dev", diff --git a/update_versions.py b/update_versions.py index ba36b5ab..d9f626b2 100644 --- a/update_versions.py +++ b/update_versions.py @@ -3,7 +3,7 @@ import os import re from datetime import datetime -LATEST_VERSION = "1.9.5" +LATEST_VERSION = "1.9.6" RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious") From efa9f7bdf38003c3dc48484e9c86e1ae20effd96 Mon Sep 17 00:00:00 2001 From: ward Date: Sat, 14 Jun 2025 01:09:47 +1200 Subject: [PATCH 2/3] Minor fixes causing some post live DVR not to load --- materialious/electron/package-lock.json | 4 +- materialious/src/lib/sabr/index.ts | 14 +++++- materialious/src/lib/sabr/sabrUmpParser.ts | 50 +++++++++++----------- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index 57dc1239..aa17a201 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -1,12 +1,12 @@ { "name": "Materialious", - "version": "1.9.5", + "version": "1.9.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "Materialious", - "version": "1.9.5", + "version": "1.9.6", "license": "MIT", "dependencies": { "@capacitor-community/electron": "^5.0.0", diff --git a/materialious/src/lib/sabr/index.ts b/materialious/src/lib/sabr/index.ts index dea01736..8b86cf71 100644 --- a/materialious/src/lib/sabr/index.ts +++ b/materialious/src/lib/sabr/index.ts @@ -129,7 +129,7 @@ export function injectSABR( type === shaka.net.NetworkingEngine.RequestType.SEGMENT && url.pathname.includes('videoplayback') ) { - if (!video.liveNow) { + if (!video.liveNow && !video.ytjs?.video.basic_info.is_post_live_dvr) { const currentFormat = formatList.find( (format) => fromFormat(format) === (new URL(request.uris[0]).searchParams.get('___key') || '') @@ -283,7 +283,17 @@ export function injectSABR( request.headers['X-Streaming-Context'] = btoa(JSON.stringify(sabrStreamingContext)); delete headers.Range; } else { - url.pathname += `/ump/1/srfvp/1/pot/${get(poTokenCacheStore)}`; + if (!video.liveNow && !video.ytjs?.video.basic_info.is_post_live_dvr) { + url.searchParams.set('ump', '1'); + url.searchParams.set('srfvp', '1'); + if (headers.Range) { + url.searchParams.set('range', headers.Range?.split('=')[1]); + delete headers.Range; + } + } else { + url.pathname += '/ump/1'; + url.pathname += '/srfvp/1'; + } request.headers['X-Streaming-Context'] = btoa( JSON.stringify({ diff --git a/materialious/src/lib/sabr/sabrUmpParser.ts b/materialious/src/lib/sabr/sabrUmpParser.ts index c64aafda..c6ac7567 100644 --- a/materialious/src/lib/sabr/sabrUmpParser.ts +++ b/materialious/src/lib/sabr/sabrUmpParser.ts @@ -112,33 +112,31 @@ export class SabrUmpParser { } private handlePart(part: Part): shaka.extern.Response | undefined { - switch (part.type) { - case PART.FORMAT_INITIALIZATION_METADATA: - this.handleFormatInitMetadata(part); - break; - case PART.NEXT_REQUEST_POLICY: - this.handleNextRequestPolicy(part); - break; - case PART.MEDIA_HEADER: - try { + try { + switch (part.type) { + case PART.FORMAT_INITIALIZATION_METADATA: + this.handleFormatInitMetadata(part); + break; + case PART.NEXT_REQUEST_POLICY: + this.handleNextRequestPolicy(part); + break; + case PART.MEDIA_HEADER: this.handleMediaHeader(part); - } catch (error) { - console.error(error); - } - break; - case PART.MEDIA: - this.handleMedia(part); - break; - case PART.MEDIA_END: - return this.handleMediaEnd(part); - case PART.SABR_ERROR: - return this.handleSabrError(part); - case PART.STREAM_PROTECTION_STATUS: - return this.handleStreamProtectionStatus(part); - case PART.SABR_REDIRECT: - return this.handleSabrRedirect(part); - default: - } + break; + case PART.MEDIA: + this.handleMedia(part); + break; + case PART.MEDIA_END: + return this.handleMediaEnd(part); + case PART.SABR_ERROR: + return this.handleSabrError(part); + case PART.STREAM_PROTECTION_STATUS: + return this.handleStreamProtectionStatus(part); + case PART.SABR_REDIRECT: + return this.handleSabrRedirect(part); + default: + } + } catch {} } private handleFormatInitMetadata(part: Part) { From d868311472d23dd4b3da8033595e179c72b39859 Mon Sep 17 00:00:00 2001 From: ward Date: Sat, 14 Jun 2025 01:20:59 +1200 Subject: [PATCH 3/3] Removed unused packages --- materialious/electron/package-lock.json | 13 ------------- materialious/electron/package.json | 1 - materialious/electron/src/rt/electron-plugins.js | 2 -- 3 files changed, 16 deletions(-) diff --git a/materialious/electron/package-lock.json b/materialious/electron/package-lock.json index aa17a201..ec05df4b 100644 --- a/materialious/electron/package-lock.json +++ b/materialious/electron/package-lock.json @@ -11,7 +11,6 @@ "dependencies": { "@capacitor-community/electron": "^5.0.0", "bgutils-js": "^3.2.0", - "capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.8/capacitor-nodejs.tgz", "chokidar": "~4.0.3", "electron-is-dev": "~2.0.0", "electron-serve": "~1.1.0", @@ -1798,18 +1797,6 @@ "node": ">= 0.4" } }, - "node_modules/capacitor-nodejs": { - "version": "1.0.0-beta.8", - "resolved": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.8/capacitor-nodejs.tgz", - "integrity": "sha512-VAMCTBqz+sA3762kFhSyzXS0unm0EpsVSHLmDYsTYPTiXXZaFcGk27vfXakRyyXJexAUG2Y5rZka5BvH6EmeZw==", - "license": "MIT", - "engines": { - "node": ">=20.10" - }, - "peerDependencies": { - "@capacitor/core": "^6.0.0" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", diff --git a/materialious/electron/package.json b/materialious/electron/package.json index 924799ed..146177c7 100644 --- a/materialious/electron/package.json +++ b/materialious/electron/package.json @@ -24,7 +24,6 @@ "dependencies": { "@capacitor-community/electron": "^5.0.0", "bgutils-js": "^3.2.0", - "capacitor-nodejs": "https://github.com/hampoelz/capacitor-nodejs/releases/download/v1.0.0-beta.8/capacitor-nodejs.tgz", "chokidar": "~4.0.3", "electron-is-dev": "~2.0.0", "electron-serve": "~1.1.0", diff --git a/materialious/electron/src/rt/electron-plugins.js b/materialious/electron/src/rt/electron-plugins.js index 5f312366..b33b2826 100644 --- a/materialious/electron/src/rt/electron-plugins.js +++ b/materialious/electron/src/rt/electron-plugins.js @@ -1,6 +1,4 @@ /* eslint-disable @typescript-eslint/no-var-requires */ -const CapacitorNodejs = require('../../../node_modules/capacitor-nodejs/electron/dist/plugin.js'); module.exports = { - CapacitorNodejs, } \ No newline at end of file