Merge branch 'main' into update/1.8.4

This commit is contained in:
Ward
2025-05-29 16:37:53 +12:00
committed by GitHub
6 changed files with 43 additions and 36 deletions
+1 -1
View File
@@ -236,7 +236,7 @@ brew install --cask spotube
- Every dependency in [package.json](/materialious/package.json).
- [LuanRT](https://github.com/LuanRT) for YouTube.js & SABR implementation.
- [FreeTube](https://github.com/FreeTubeApp/FreeTube) for their subtitle fix.
- [spotube](https://github.com/KRTirtho/spotube) for using their README layout for local installation.free
- [spotube](https://github.com/KRTirtho/spotube) for using their README layout for local installation.
# Developers
- [How Materialious is built](./docs/BUILDING.md)
@@ -1 +1,26 @@
<p><i>Materialious</i> is a client for <a href='https://github.com/iv-org' target='_blank' rel='nofollow noopener'>Invidious</a> using material design. It lets you browse and watch videos, manage playlists and use channels.</p><p><br><b>Features:</b></p><ul><li><a href='https://github.com/Materialious/api-extended' target='_blank' rel='nofollow noopener'>Invidious API extended integration!</a></li><li>Sync your watch progress between Invidious sessions</li><li>Watch sync parties!</li><li>Preview video on hover.</li><li>Sponsorblock built-in.</li><li>Return YouTube dislikes built-in.</li><li>DeArrow built-in (With local processing fallback).</li><li>Video progress tracking & resuming.</li><li>No ads.</li><li>No tracking.</li><li>Light/Dark themes.</li><li>Custom colour themes.</li><li>Integrates with Invidious subscriptions, watch history & more.</li><li>Live stream support.</li><li>Dash support.</li><li>Chapters.</li><li>Audio only mode.</li><li>Playlists.</li><li>PWA support.</li><li>YT path redirects (So your redirect plugins should still work!)</li></ul>
<i>Materialious</i> is a client for <a href='https://github.com/iv-org'>Invidious</a> using material design.
It lets you browse and watch videos, manage playlists and use channels.
<b>Features:</b>
<ul>
<li><a href='https://github.com/Materialious/api-extended'>Invidious API extended integration!</a></li>
<li>Sync your watch progress between Invidious sessions</li>
<li>Watch sync parties!</li>
<li>Preview video on hover.</li>
<li>Sponsorblock built-in.</li>
<li>Return YouTube dislikes built-in.</li>
<li>DeArrow built-in (With local processing fallback).</li>
<li>Video progress tracking & resuming.</li>
<li>No ads.</li>
<li>No tracking.</li>
<li>Light and dark themes.</li>
<li>Custom colour themes.</li>
<li>Integrates with Invidious subscriptions, watch history & more.</li>
<li>Live stream support.</li>
<li>Dash support.</li>
<li>Chapters.</li>
<li>Audio only mode.</li>
<li>Playlists.</li>
<li>PWA support.</li>
<li>YT path redirects (So your redirect plugins should still work!)</li>
</ul>
@@ -53,26 +53,10 @@
<content_attribute id="social-contacts">intense</content_attribute>
</content_rating>
<releases>
<release version="1.8.4" date="2025-5-29">
<release version="1.8.4" date="2025-5-05">
<url>https://github.com/Materialious/Materialious/releases/tag/1.8.4</url>
</release>
<release version="1.8.3" date="2025-5-05">
<release version="1.8.3" date="2025-5-05">
<url>https://github.com/Materialious/Materialious/releases/tag/1.8.3</url>
</release>
<release version="1.8.2" date="2025-5-04">
@@ -127,4 +111,4 @@
<url>https://github.com/Materialious/Materialious/releases/tag/1.6.18</url>
</release>
</releases>
</component>
</component>
+1 -1
View File
@@ -44,4 +44,4 @@
"capacitor",
"electron"
]
}
}
+1 -1
View File
@@ -71,4 +71,4 @@
"terser": "^5.34.1",
"youtubei.js": "^13.4.0"
}
}
}
+11 -13
View File
@@ -29,23 +29,21 @@ export async function patchYoutubeJs(videoId: string): Promise<VideoPlay> {
enable_session_cache: false
});
if (!get(poTokenCacheStore)) {
const visitorData = youtube.session.context.client.visitorData ?? '';
const visitorData = youtube.session.context.client.visitorData ?? '';
const requestKey = 'O43z0dpjhgX20SCx4KAo';
const challengeResponse = await youtube.getAttestationChallenge('ENGAGEMENT_TYPE_UNBOUND');
const requestKey = 'O43z0dpjhgX20SCx4KAo';
const challengeResponse = await youtube.getAttestationChallenge('ENGAGEMENT_TYPE_UNBOUND');
if (!challengeResponse.bg_challenge) throw new Error('Could not get challenge');
if (!challengeResponse.bg_challenge) throw new Error('Could not get challenge');
const platformMinter =
Capacitor.getPlatform() === 'android'
? androidPoTokenMinter
: window.electronAPI.generatePoToken;
const platformMinter =
Capacitor.getPlatform() === 'android'
? androidPoTokenMinter
: window.electronAPI.generatePoToken;
poTokenCacheStore.set(
await platformMinter(challengeResponse.bg_challenge, requestKey, visitorData)
);
}
poTokenCacheStore.set(
await platformMinter(challengeResponse.bg_challenge, requestKey, visitorData)
);
const extraArgs: Record<string, any> = {
playbackContext: {