Files
youtube-app/CLAUDE.md
2026-04-04 21:56:31 +02:00

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 Komponente
  • commication.md — Kommunikationsflüsse zwischen den Systemen
  • features.md — Konkrete Features und Benutzerinteraktionen
  • architecture.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 empfangen
  • GET /videos — alle Videos abrufen
  • GET /videos/downloaded — heruntergeladene Videos abrufen
  • POST /videos/{id}/download — Download auf Server triggern
  • GET /videos/{id}/stream — Video streamen
  • GET /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