Merge pull request #974 from Materialious/update/1.9.6

Update/1.9.6
This commit is contained in:
Ward
2025-06-14 01:30:27 +12:00
committed by GitHub
9 changed files with 48 additions and 52 deletions
+2 -2
View File
@@ -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.
@@ -57,7 +57,11 @@
<releases>
<release version="1.9.5" date="2025-6-09">
<release version="1.9.6" date="2025-6-14">
<url>https://github.com/Materialious/Materialious/releases/tag/1.9.6</url>
</release>
<release version="1.9.5" date="2025-6-09">
<url>https://github.com/Materialious/Materialious/releases/tag/1.9.5</url>
</release>
<release version="1.9.4" date="2025-6-08">
+2 -15
View File
@@ -1,17 +1,16 @@
{
"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",
"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",
+1 -2
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.9.5",
"version": "1.9.6",
"description": "Modern material design for Invidious.",
"author": {
"name": "Ward Pearce",
@@ -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",
@@ -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,
}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.9.5",
"version": "1.9.6",
"private": true,
"scripts": {
"dev": "vite dev",
+12 -2
View File
@@ -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({
+24 -26
View File
@@ -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) {
+1 -1
View File
@@ -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")