Initialer commit

This commit is contained in:
2026-05-03 21:51:45 +02:00
commit 7dd108a58e
117 changed files with 9145 additions and 0 deletions

29
nextsteps.txt Normal file
View File

@@ -0,0 +1,29 @@
1. Deezer App anlegen: https://developers.deezer.com/myapps → Redirect URI http://localhost:8080/auth/callback
2. Backend starten:
cd libredeck-web
DEEZER_APP_ID=xxx DEEZER_APP_SECRET=yyy mvn spring-boot:run
3. Android: In app/build.gradle die BACKEND_URL anpassen, dann in Android Studio öffnen und builden
4. Gradle Wrapper fehlt noch im Android-Projekt — entweder gradle wrapper ausführen oder aus linkster-android kopieren
Was gebaut:
7 neue Backend-Dateien:
- AppleMusicConfig Properties: apple.music.team-id, apple.music.key-id, apple.music.private-key
- AppleMusicTokenGenerator erzeugt und cached den Developer-JWT (ES256, standard Java-Crypto, keine neuen Deps)
- AppleMusicTokenStore Session-scoped Storage für den Music User Token (wie bei Spotify/Tidal)
- AppleMusicApiClient HTTP-Client gegen api.music.apple.com; unterstützt Catalog- und Library-Playlists, ThreadLocal-Token-Pinning für async Jobs
- AppleMusicProvider implementiert StreamingProvider, wird automatisch im Registry registriert
- AppleMusicAuthRequiredException
- AppleMusicController Endpunkte: /apple/configured, /apple/connected, /apple/developer-token, /apple/token, /apple/disconnect, /apple/playlists
Geändert:
- GenerateController Apple Music Auth-Check (nur für Library-Playlists) + Token-Pinning
- index.html 4. Service "Apple Music" im Switcher, MusicKit JS v3 Auth-Flow, Playlist-Picker
Konfiguration (in .env eintragen):
APPLE_MUSIC_TEAM_ID=XXXXXXXXXX
APPLE_MUSIC_KEY_ID=XXXXXXXXXX
APPLE_MUSIC_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----
Benötigt wird ein MusicKit-Key aus dem Apple Developer Portal. Ist nichts konfiguriert, bleibt das Panel sichtbar aber zeigt "nicht konfiguriert".