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

31 lines
1.4 KiB
Markdown

# 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