1.9 KiB
1.9 KiB
YouTube App
Selbst-gehostete Anwendung: YouTube-Videos per Browser Extension erfassen, auf einem Server speichern und per Kotlin-App auf Android/Android TV streamen und herunterladen.
Dokumentation
systems.md— Technologie-Stack pro Komponentecommication.md— Kommunikationsflüsse zwischen den Systemenfeatures.md— Konkrete Features und Benutzerinteraktionenarchitecture.md— Detaillierter Systemaufbau (Endpoints, Services, Models, Screens)szenarios.md— Benutzer-Szenarien
Architektur
Drei Komponenten:
Browser Extension (JavaScript, Manifest V3)
- Content Script liest YouTube-DOM aus, extrahiert Videodaten
- Background Script sendet Daten an Server (POST /videos)
Server (Python, FastAPI, SQLite, yt-dlp + ffmpeg)
- REST API empfängt Videodaten, liefert Videolisten, triggert Downloads, streamt Videos
- yt-dlp lädt Videos von YouTube, speichert auf dem Server
- Beim Streamen wird das Video automatisch heruntergeladen, falls noch nicht geschehen
App (Kotlin, Android/Android TV)
- Screens: AllVideos, Downloaded, VideoDetail, VideoPlayer
- Videos werden vom Server gestreamt, optional auf das Gerät heruntergeladen
- Lokale Videos werden bevorzugt abgespielt, sonst Stream
API Endpoints
POST /videos— Videodaten von Extension empfangenGET /videos— alle Videos abrufenGET /videos/downloaded— heruntergeladene Videos abrufenPOST /videos/{id}/download— Download auf Server triggernGET /videos/{id}/stream— Video streamenGET /videos/{id}/file— Video-Datei zum Download auf Client ausliefern
Entscheidungen
- Kein Jellyfin — erfüllt nicht die Anforderung, Videos vor dem Download aufzulisten
- Kein PostgreSQL/MySQL — SQLite reicht für den Prototyp
- Keine Benutzerprofile im Prototyp
- Videos werden auf dem Server gespeichert, Client speichert nur bei explizitem Download
- Sprache der Dokumentation: Deutsch