From a9a0c1ef8ea33c4513b21b5652de7cadf5f0a9a7 Mon Sep 17 00:00:00 2001 From: WardPearce Date: Thu, 5 Mar 2026 13:25:20 +1300 Subject: [PATCH] Implemented PUBLIC_PLAYER_ID --- docs/DOCKER-FULL.md | 5 +++++ materialious/src/lib/api/youtubejs/index.ts | 4 +++- materialious/src/lib/misc.ts | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/DOCKER-FULL.md b/docs/DOCKER-FULL.md index 0839aece..8a29ea73 100644 --- a/docs/DOCKER-FULL.md +++ b/docs/DOCKER-FULL.md @@ -47,6 +47,11 @@ services: # guide here for URL structure https://docs.preset.io/docs/uri-connection-strings DATABASE_CONNECTION_URI: "sqlite:///materialious-data/materialious.db" + # YouTube player id to use, can be left blank but setting to a older player id may fix + # video playback with local video processing. + # https://youtube-player-ids.nadeko.net + PUBLIC_PLAYER_ID: "" + # Use Materialious account system. PUBLIC_INTERNAL_AUTH: "true" diff --git a/materialious/src/lib/api/youtubejs/index.ts b/materialious/src/lib/api/youtubejs/index.ts index b8a45735..5563b91f 100644 --- a/materialious/src/lib/api/youtubejs/index.ts +++ b/materialious/src/lib/api/youtubejs/index.ts @@ -1,3 +1,4 @@ +import { getPublicEnv } from '$lib/misc'; import { interfaceRegionStore } from '$lib/store'; import { USER_AGENT } from 'bgutils-js'; import { get } from 'svelte/store'; @@ -12,7 +13,8 @@ export async function getInnertube(): Promise { fetch: fetch, cache: new UniversalCache(true), location: get(interfaceRegionStore), - user_agent: USER_AGENT + user_agent: USER_AGENT, + player_id: getPublicEnv('PLAYER_ID') ?? '9f4cc5e4' }); return innertube; diff --git a/materialious/src/lib/misc.ts b/materialious/src/lib/misc.ts index c637d112..1fec17d6 100644 --- a/materialious/src/lib/misc.ts +++ b/materialious/src/lib/misc.ts @@ -10,7 +10,9 @@ import { addToast } from './components/Toast.svelte'; import { _ } from './i18n'; export function getPublicEnv(envName: string): string | undefined { - return env[`PUBLIC_${envName}`] ?? import.meta.env[`VITE_${envName}`]; + const envValue = env[`PUBLIC_${envName}`] ?? import.meta.env[`VITE_${envName}`]; + if (envValue === '') return; + return envValue; } export function isMobile(): boolean {