No description
Find a file
2026-03-19 11:06:47 +01:00
erm.png update README - add erm 2026-03-18 15:27:49 +01:00
README.md update README - Test 2026-03-19 11:06:47 +01:00

Awave_Metadata-Server

Der Awave-MetadataServer stellt den Datenbankbestandteil des Awave-Streamingsystems dar.

Funktionsbereich

Dieser übernimmt konkret folgende Aufgaben:

  • Content-Katalog

    Der Server liefert alles was der Nutzer sieht, bevor er auf "Play" drückt.

    • Strukturierung: Stellt dem Client konkrete Informationen zu unterschiedlichen Medien zur Verfügung
    • Discovery: Liefert Daten für die Suche, Filterung nach Genres, Tags oder anderen Indikatoren
    • Assets-Verwaltung: Speichert zwar keine Images selbst, liefert aber die URLs zu Postern und Thumbnails
  • Personalisierung & User-State

    Der Server dokumentiert Personalisierungen und Nutzerverhalten mit

    • Fortschrittsbalken: Speichert für jeden Account sekundengenau, wo ein Video pausiert wurde.
    • Playlists: Verwaltet Playlists, die automatisch durch gewählte Tags entstehen und Favoriten der Nutzer
    • Profile & Settings: Server weiß, z.B. welche Sprache der Nutzer bevorzugt (Audio/Subtitle)
  • Streaming-Logistik

    Der Server vermittelt zwischen dem Client und dem eigentlichen Video-File auf dem Streaming-Server

    • Pfad-Auflösung: Beim Streamstart eines Clients wird der Server dazu aufgerufen auf dem Streaming-Server die entsprechende URL weiterzugeben
    • Berechtigung: Überprüft, ob der Nutzer überhaupt angemeldet ist und diesen Inhalt sehen darf, bevor die URL weitergegeben wird
  • Automatisierung

    Dies betrifft vor allem die Kommunikation zur Admin-Schnittstelle

    • Halbauto-Matching: Durch die Admin-Schnittstelle wird bei Festellung neuer Medien auf dem Streaming-Server neue Meta-Data durch diesen auf die DB gespeichert
    • Backend-Logik: Auf Befehl der Admin-Schnittstelle werden einträge nach CRUD bearbeitet und verwaltet

ERM-Struktur der Datenbank

ERM konnte nicht geladen werden

Alle Entitäten mit ihren jeweiligen Attributen unterteilen sich in drei Kategorien:

  • Account-Relevant (Lila)

    Entitäten, die pro Account personalisiert diesem zugeordnet und von dem jeweiligen Nutzer verwaltet werden

    • Account: Identifikation eines Nutzers

      • account_id
      • username
      • email
      • hashed_pw
      • profilpicture_url
      • date_of_birth
      • created_at
      • is_active
    • Settings: Account-speziefische Endgerät-übergreifende Einstellungen

      • settings_id
      • auto_select_language
      • audio_language
      • subtitle_language
      • seen_media_progress_value (Beschreibt in % ab wann ein Video als "Gesehen" markiert wird)
    • Playlist: Vom Nutzer selbst erstellte Playlist, die manuell hinzugefügte Media oder durch verschiedene Tags autogeneriert ist

      • playlist_id
      • title
      • is_dynamic (Beschreibt, ob Nutzer manuell diese mit Medien füllt oder durch Tags autogeneriert wird)
      • filter_tag_id
      • filter_language_id
      • filter_actor_id
      • filter_publisher_id
  • Grundstruktur der Medien (Gelb)

    Entitäten, die zueinander die Relation darstellen, in der Medien auf dem Streamingsystem abgebildet sind

    • Media: Ursprungs-Entität für sämtliche Äußerungen von Mediendateien

      • media_id
      • title
      • title_alternative
      • description
      • release_date
      • duration_in_sec
      • age_rating
      • upload_date
      • media_url
      • thumbnail_url
      • timestamp_intro_start
      • timestamp_intro_end
      • timestamp_outro_start
      • timestamp_outro_end
    • Movie: Erweiterte Media in Form eines Films

      • movie_id
    • Season: Staffel, die Folgen enthält

      • season_id
      • season_number
      • cover_url
      • release_date
    • Episode: Erweiterte Media in Form einer Folge einer Serie

      • episode_id
      • episode_number
    • Series: Serie, die Staffeln enthält

      • series_id
      • title
      • title_alternative
      • cover_url
      • release_date
    • Category: Übergreifende thematische Unterteilung von Medienwerken

      • category_id
      • title
      • icon_type
    • Collection: Gruppierung thematisch gleich passender Medienwerke unterhalb einer Kategorie

      • collection_id
      • title
      • cover_url

Weitere Attribute die durch die jeweilige Relation der Entitäten entstehen

Relationen zwischen den Entitäten:

Nr. Entität 1 Beziehungs-Typ Entität 2 Beschreibung
1 Media (is a) Episode Eine Episode ist eine Media
2 Media (is a) Movie Ein Movie ist eine Media
3 Publisher 1/M:N Movie Ein Publisher kann mehrere Movie produzieren. Ein Movie hat mindestens einen Publisher
4 Movie M:N Actor Movie können viele Actor haben. Actor können an vielen Movie beteiligt sein
5 Movie M:N Tag Movie können viele Tag haben. Tag können mehreren Movie zugeordnet sein
6 Category 1:N Movie Eine Category kann mehrere Movie haben. Ein Movie ist explizit einer Category zugeordnet
7 Collection 1/0:1/N Movie Eine Collection hat mindestens ein Movie. Ein Movie ist eventuell Explizit einer Collection zugeordnet
8 Season 1:1/N Episode Eine Season hat mindestens eine Episode. Eine Episode ist explizit einer Season zugeordnet
9 Series 1:1/N Season Eine Series hat mindestens eine Season. Eine Season ist explizit einer Series zugeordnet
10 Publisher 1/M:N Series Ein Publisher kann mehrere Series produzieren. Eine Series hat mindestens einen Publisher
11 Series M:N Actor Series können viele Actor haben. Actor können an vielen Series beteiligt sein
12 Series M:N Tag Series können viele Tag haben. Tag können mehreren Series zugeordnet sein
13 Series M:N Language Series können viele Language haben. Language können mehreren Series zugeordnet sein
14 Media M:N Language Media können viele Language haben. Language können mehreren Media zugeordnet sein
15 Category 1:N Series Eine Category beinhalten mehrere Series. Eine Series ist explizit einer Category zugeordnet
16 Category 1:N Collection Eine Category beinhalten mehrere Collection. Eine Collection ist explizit einer Category zugeordnet
17 Media M:N Playlist Eine Media kann mehrere Playlist zugeordnet sein. Eine Playlist kann mehrere Medien haben
18 Account 1:N Playlist Jeder Account kann viele Playlist beinhalten. Eine Playlist ist explizit einem Account zugeordnet
19 Account 1:1 Settings Jeder Account hat exakt eine Settings und anders herum
20 Account M:N Media Ein Account kann mehrere Media gesehen haben. Ein Media kann von mehrere Account gesehen worden sein
21 Account M:N Category Ein Account hat Zugriff auf mehrere Category. Eine Category kann für mehrere Accounts freigeschaltet worden sein

Ergänzende Attribute jeweiliger Relationen:

TESTTESTTEST

Nr. Attribute Beschreibung
4 played_as Als wen der Schauspieler im Film spielt
4 is_only_voice Ob der Schauspieler im Film nur als Syncronrolle wirkt
11 played_as Als wen der Schauspieler in der Serie spielt
11 is_only_voice Ob der Schauspieler in der Serie nur als Syncronrolle wirkt
20 progress_in_seconds Inwieweit ein Account die jeweilige Media soweit gesehen hat - zur Zwischenspeicherung (-1, 0, x)