diff --git a/architecture.md b/architecture.md index e681501..78717ef 100644 --- a/architecture.md +++ b/architecture.md @@ -3,7 +3,7 @@ - Background Script — Daten gruppiert an Server senden (POST /videos) # Server ## API -- POST /videos — Videodaten von Extension empfangen +- POST /videos — Video-Batch empfangen, Duplikate entfernen - GET /videos — alle Videos abrufen - GET /videos/downloaded — heruntergeladene Videos abrufen - POST /videos/{id}/download — Download triggern @@ -11,17 +11,20 @@ - GET /videos/{id}/file — Video-Datei zum Download ausliefern ## Services - VideoService — Videos speichern, abrufen, Status verwalten -- DownloadService — yt-dlp aufrufen, Download-Status tracken +- DownloadService — yt-dlp aufrufen, Video herunterladen +- StreamService — Live-Streaming via yt-dlp + ffmpeg ## Model - Video — id, title, youtuber, thumbnail_url, youtube_url, file_path # App ## Screens - AllVideosScreen — alle Videos als Cards - DownloadedVideosScreen — heruntergeladene Videos als Cards -- VideoDetailScreen — Starten, Download, Zurück +- VideoDetailScreen — Starten, Download, Zurück, Löschen - VideoPlayerScreen — Player mit Standard-Controls ## ViewModel - VideoViewModel — Video-State verwalten, API-Aufrufe triggern, lokal bevorzugen sonst streamen +## Services +- LocalStorageService — Videos lokal speichern, pruefen, loeschen ## API - ServerApi — kommuniziert mit FastAPI (GET /videos, POST /download, GET /stream, GET /videos/{id}/file) ## Model diff --git a/commication.md b/commication.md index 11273e6..1ea03cb 100644 --- a/commication.md +++ b/commication.md @@ -1,7 +1,7 @@ # Browser Extension intern - Videodaten erfassen # Browser Extension -> Server -- Videodaten senden +- Videodaten gruppiert senden # Server intern - Videodaten persistieren - Video herunterladen @@ -15,3 +15,5 @@ # App intern - Video streamen anfragen - Video downloaden anfragen +- Video lokal speichern +- Video lokal abspielen diff --git a/features.md b/features.md index 920b748..71f09a9 100644 --- a/features.md +++ b/features.md @@ -1,13 +1,12 @@ # Aufgaben ## Browser - Sichtbare Youtube Videos werden erfasst -- Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen an den Server gesendet -- Bereits erfasste Videos werden nicht erneut gesendet +- Videodaten (Titel, Youtuber, Bild, Url) werden nach dem erfassen gruppiert an den Server gesendet - Extension hat keine Einstellung ## App - Ansicht: Navigation mit Alle Videos, Heruntergeladen - Alle Videos: Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) - Heruntergeladen: Heruntergeladene Videos als Cards auflisten (Untereinander: Bild, Youtuber, Titel) - Klick auf Card zeigt die Videoübersicht (Starten, Download, Zurück) -- Klick auf Startet startet den Stream über den Server mit den Standard Video-Controls -- Klick auf Download lädt das Video herunter und übertragt es auf den Client \ No newline at end of file +- Klick auf Startet startet den Stream über den Server mit den Standard Video-Controls und einem Zurück-Button +- Klick auf Download lädt das Video herunter und wird lokal auf dem Client gespeichert \ No newline at end of file diff --git a/systems.md b/systems.md index 80b1ebd..15e5ea3 100644 --- a/systems.md +++ b/systems.md @@ -2,8 +2,7 @@ - Javascript: Daten angezeigter Videos an Server senden # Server - FastAPI: Videodaten empfangen -- python: Downlods triggern, Videos streamen -- yt-dlp + ffmpeg: Video herunterladen +- yt-dlp + ffmpeg: Video herunterladen, Videos streamen - SQLite: Daten persistieren # App - Kotlin: Videos auflisten, Download triggern, Videos abspielen