Add anonymous listening support and redesign web-player UI

Backend:
- Expose GET /config/playback so the frontend can detect whether
  anonymous listening is enabled without requiring auth
- Wire anonymous access through track streaming and YouTube resolve flows

Frontend:
- Allow browsing/listening without a session when the backend enables it
- Redesign Inicio, Sidebar and top bar with a new dark theme, typography,
  and layout (top bar with live quick-search, sticky/blurred on scroll)
- Populate Top música, Popular and Recomendados with real Musify +
  YouTube Music data instead of placeholders
- Various shape, spacing, color and animation refinements across the
  redesigned components
This commit is contained in:
2026-09-11 01:29:37 +02:00
parent 10766bbb47
commit 389b3b9244
40 changed files with 1172 additions and 452 deletions
+42
View File
@@ -177,6 +177,23 @@ export interface paths {
patch?: never;
trace?: never;
};
"/config/playback": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
/** Get The Public Playback Configuration (Whether Anonymous Listening Is Allowed). Works Anonymously. */
get: operations["GetPlaybackPublicConfig"];
put?: never;
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/mixes": {
parameters: {
query?: never;
@@ -742,6 +759,11 @@ export interface components {
hasNextPage: boolean;
hasPreviousPage: boolean;
};
PlaybackPublicConfigResponse: {
allowAnonymousListening: boolean;
/** Format: int32 */
anonymousFragmentSeconds: number | string;
};
PlayListApplicationResponse: {
/** Format: uuid */
id: string;
@@ -1423,6 +1445,26 @@ export interface operations {
};
};
};
GetPlaybackPublicConfig: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody?: never;
responses: {
/** @description OK */
200: {
headers: {
[name: string]: unknown;
};
content: {
"application/json": components["schemas"]["PlaybackPublicConfigResponse"];
};
};
};
};
GetMixes: {
parameters: {
query?: never;