peertube-plugin-youth-schedule
v0.2.0
Published
PeerTube plugin: youth protection schedule (configurable HH:mm slots and end time)
Downloads
119
Maintainers
Readme
PeerTube Plugin: Jugendschutz-Sendezeiten (Youth Schedule)
PeerTube-Plugin zur zeitgesteuerten Freigabe von Videos aus Jugendschutzgründen. Videos können ab einer konfigurierbaren Startzeit (HH:mm) bis zu einer konfigurierbaren Endzeit angezeigt werden.
Zweck
- Jugendschutz-Zeitfenster: Inhalte sind erst ab einer gewählten Startzeit sichtbar, bis zur definierten Endzeit.
- Einfache Redaktion: Zusatzfelder beim Video-Upload/-Edit (Checkbox + Zeit-Auswahl).
- Flexible Admin-Konfiguration: Zeitquelle (Server/Browser), Startzeit-Slots als CSV (HH:mm), Endzeit (HH:mm).
Funktionsumfang
- Video-Formular ergänzt um:
- Checkbox: „Jugendschutz: sensibler Inhalt?“
- Select: „Sendezeit (Start, HH:mm)“ mit Optionen aus der Admin-Konfiguration
- Auf der Videoseite wird der Player blockiert und ein Hinweis angezeigt, solange die aktuelle Zeit außerhalb des erlaubten Fensters liegt (inkl. Über-Mitternacht-Logik).
- Admin-Einstellungen:
- Zeitquelle: Serverzeit oder Browserzeit des Nutzers
- Sendezeit-Slots (CSV HH:mm oder HH): Liste erlaubter Startzeiten
- Endzeit (HH:mm): Ende des sichtbaren Fensters
Voraussetzungen
- PeerTube-Version: ≥ 5.2.0 (
engine.peertube)
Installation
- Abhängigkeiten installieren und bauen:
npm install npm run build - Bereitstellung in PeerTube:
- Plugin-Ordner
peertube-plugin-youth-schedulein das Plugins-Verzeichnis der Instanz legen, oder - ZIP erzeugen und in der PeerTube-Administration unter „Plugins/Themes“ hochladen.
- Plugin-Ordner
- In der PeerTube-Administration das Plugin aktivieren.
Hinweis zu npm: Ein README.md muss im Paketwurzelverzeichnis liegen, damit es auf der npm-Seite angezeigt wird. Siehe „About package README files“ in der npm-Dokumentation (docs.npmjs.com).
Konfiguration (Administration)
- Zeitquelle (
timeSource)Server: Serverzeit bestimmt die Verfügbarkeit.Browser (Benutzer): Zeit aus dem Browser des Nutzers wird zur Prüfung verwendet.
- Sendezeit-Slots (
timeSlots)- CSV-Liste gültiger Startzeiten im Format
HH:mmoderHH, z. B.20:00,22:30,23. - Bestimmt die auswählbaren Optionen im Video-Formular.
- CSV-Liste gültiger Startzeiten im Format
- Endzeit (
endTime)- Ende des Sichtbarkeitsfensters im Format
HH:mm(z. B.06:00). - Wenn Endzeit kleiner als Startzeit ist, gilt das Fenster über Mitternacht (z. B. 22:30 → 05:30).
- Ende des Sichtbarkeitsfensters im Format
Verwendung (Upload/Bearbeitung)
- Checkbox „Jugendschutz: sensibler Inhalt?“ aktivieren, wenn zutreffend.
- Unter „Sendezeit (Start, HH:mm)“ die Startzeit wählen.
- Die Metadaten werden gespeichert; die Freigabe erfolgt automatisch im zulässigen Fenster.
Verhalten auf der Videoseite
- Logik (Minuten-genau): Verfügbar im Intervall
[Start .. End); bei Start > End über Mitternacht:[Start..24:00) ∪ [00:00..End). - Die „aktuelle Zeit“ kommt je nach Konfiguration von der Serverzeit oder der Browserzeit.
- Blockier-Hinweis zeigt das Intervall „von Start bis End“.
Technische Details
- Gespeicherte Metadaten pro Video:
youthSensitive: booleanyouthOpenMinutes: number(Minuten ab 00:00, rückwärtskompatibel zuyouthOpenHour)
- API-Endpunkte:
GET /plugins/peertube-plugin-youth-schedule/router/config→{ timeSource, slots: string[HH:mm], endTime }GET /plugins/peertube-plugin-youth-schedule/router/video/:uuid/youth-allowed?clientMinutes=INT→{ allowed, openLabel, endLabel }
- Client-Bundles:
dist/video-edit-client-plugin.js(Formular) unddist/video-watch-client-plugin.js(Watch-Seite). - Build:
esbuild(Skriptnpm run build),prepare-Hook baut automatisch.
Lizenz
- AGPL-3.0
Support & Issues
- Repository: https://github.com/yarkolife/peertube-plugin-youth-schedule
- Issues: https://github.com/yarkolife/peertube-plugin-youth-schedule/issues
