Files
youtube-app/architecture.md
2026-04-05 15:16:59 +02:00

1.4 KiB

Browser Extension

  • Content Script — YouTube-DOM auslesen, Videodaten extrahieren
  • Background Script — Daten gruppiert an Server senden (POST /videos)

Server

API

  • POST /videos — Video-Batch empfangen, Duplikate entfernen
  • GET /videos — alle Videos abrufen
  • GET /videos/downloaded — heruntergeladene Videos abrufen
  • POST /videos/{id}/download — Download triggern
  • GET /videos/{id}/stream — Video streamen
  • GET /videos/{id}/file — Video-Datei zum Download ausliefern

Services

  • VideoService — Videos speichern, abrufen, Status verwalten
  • 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, 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

  • Video — id, title, youtuber, thumbnailUrl, youtubeUrl, isDownloaded, localFilePath