PeerTube Smart-Home-Integration, kostenlos und Open Source

PeerTube in Gladys: neue Videos und Livestreams deiner Kanäle, Zahlen der Instanz.
PeerTube ist die freie, föderierte Videoplattform von Framasoft. Diese Integration folgt einer Instanz (deiner oder einer beliebigen öffentlichen) und den Kanälen deiner Wahl in Gladys: neue Videos, laufende Livestreams, die Zahlen der Instanz und, mit deinem Konto, deine ungelesenen Benachrichtigungen. Die Integration liest nur: Kein Beitrag, kein Kommentar, keine Änderung auf PeerTube.
Echt getestet mit PeerTube 7.3.0 (in Docker, mit einem Konto, einem Kanal, hochgeladenen Videos und einem RTMP-Livestream) und mit framatube.org (PeerTube 8.3.1).
Was du brauchst
- Gladys Assistant 5.1.0 oder neuer.
- Die Adresse einer PeerTube-Instanz: deine in deinem Netzwerk
(
http://192.168.1.20:9000) oder eine öffentliche (https://framatube.org). - Die Kennungen der zu folgenden Kanäle. Die Kennung ist das Ende der Adresse
der Kanalseite:
https://framatube.org/c/joinpeertubeergibtjoinpeertube. Ein Kanal einer anderen Instanz wirdname@hostgeschrieben ([email protected]): Die konfigurierte Instanz muss ihn kennen (Föderation), was bei einem Kanal, dem sie oder einer ihrer Benutzer folgt, immer der Fall ist. - Optional: Benutzername und Passwort deines Kontos auf dieser Instanz.
Einrichtung
- Öffne in Gladys Integrationen, installiere PeerTube und öffne dann den Tab Konfiguration.
- Adresse der Instanz: die Adresse der PeerTube-Seite, wie im Browser. Eine
bloße Adresse wird verstanden:
framatube.org(HTTPS),192.168.1.20:9000(HTTP in deinem Netzwerk). - Zu folgende Kanäle: die Kennungen, durch Kommas getrennt (höchstens 20). Die Adresse einer Kanalseite geht auch.
- Konto (optional): dein Benutzername und dein Passwort. Lass sie leer, um nur die öffentlichen Seiten zu lesen.
- Aktualisierungsintervall: 1, 2 (Standard), 5 oder 10 Minuten. Jede Abfrage macht zwei leichte Anfragen pro Kanal und eine oder zwei für das Konto. Ein Livestream wird höchstens so spät erkannt.
- Sprache der Namen: die Sprache der Funktionsnamen (beim Anlegen eines Geräts festgelegt), der Daten und des Satzes der Szenenaktion.
- Speichere und nutze dann Verbindung testen: Die Antwort nennt Name und Version der Instanz, die gefundenen Kanäle und das Konto.
- Öffne den Tab Entdecken und füge die gewünschten Geräte hinzu.
Die Geräte
Alle Geräte sind schreibgeschützt. Gladys fragt sie nie ab: Die Integration liest PeerTube mit ihrem eigenen Timer, im gewählten Intervall.
Die Instanz
PeerTube gefolgt vom Namen der Instanz:
- Online: Die Instanz antwortet.
- Lokale Videos: die auf der Instanz selbst veröffentlichten Videos.
- Aufrufe der lokalen Videos: ihre Aufrufe, alle zusammen.
- Benutzer: die Konten der Instanz.
- Gefolgte Instanzen: die anderen Instanzen, denen sie folgt.
PeerTube berechnet diese Zahlen alle paar Minuten neu, daher ändern sie sich in Stufen.
Die Kanäle
Ein Gerät pro Kanal, benannt wie der Kanal:
- Live auf Sendung: Der Kanal ist gerade live.
- Zuschauer des Livestreams: die Zuschauer seines Livestreams (0 ohne Livestream).
- Letztes Video: der Titel seines neuesten Videos.
- Letztes Video veröffentlicht am: dessen Datum und Uhrzeit.
- Abonnenten: die Abonnenten des Kanals.
- Videos: seine Videos (ohne laufende Livestreams).
Das Konto
Mit einem Konto PeerTube gefolgt von deiner Kennung (name@host):
- Ungelesene Benachrichtigungen: was die Glocke von PeerTube anzeigt (neue Kommentare, neue Abonnenten, Videos deiner Abos usw.).
- Abonnenten: die Abonnenten all deiner Kanäle zusammen.
Dashboard
Das Widget PeerTube-Videos zeigt von oben nach unten: deine ungelesenen Benachrichtigungen (mit Konto), eine Zeile pro laufendem Livestream (Kanal, Titel, Zuschauer), dann die sechs neuesten Videos der gefolgten Kanäle als Posterraster (Vorschaubild, Titel, Kanal, Datum). Tippe auf ein Video, um seine Details zu öffnen; bei einer Instanz mit HTTPS öffnet ein Link Ansehen es auf PeerTube. Die Vorschaubilder liefert die Integration: Dein Browser lädt nie etwas von der Instanz.
Szenen
Auslöser
- Neues PeerTube-Video: Ein gefolgter Kanal hat ein neues Video veröffentlicht. Filter: der Kanal (leer: beliebig). Variablen: der Kanal, seine Kennung, der Titel, die Adresse des Videos, seine Dauer (Minuten) und sein Veröffentlichungsdatum.
- PeerTube-Livestream gestartet: Ein gefolgter Kanal ist live. Filter: der Kanal. Variablen: der Kanal, seine Kennung, Titel und Adresse des Livestreams.
- PeerTube-Livestream beendet: Ein Livestream eines gefolgten Kanals ist vorbei. Filter: der Kanal. Variablen: der Kanal, seine Kennung, der Titel, die Adresse, die Dauer (Minuten, gezählt ab der ersten Abfrage, die ihn gesehen hat) und die Zuschauerspitze.
Für schon Vorhandenes wird nichts gemeldet: Die erste Abfrage eines Kanals lernt nur seine Videos kennen, und das Gesehene bleibt über Neustarts erhalten.
Aktionen
- Neueste PeerTube-Videos lesen: liest PeerTube jetzt und liefert einen Satz für eine Nachricht oder eine Sprachansage („PeerTube: jetzt live: …; neueste Videos: …“), für alle Kanäle oder einen, mit 1, 3 oder 5 genannten Videos. Ausgaben: der Satz, ob ein Livestream läuft, der Titel des Livestreams, Titel, Kanal und Adresse des letzten Videos.
Szenenideen
- Neues PeerTube-Video auf deinem Lieblingskanal → schick dir eine Nachricht
mit
{{triggerEvent.data.title}}und{{triggerEvent.data.url}}. - PeerTube-Livestream gestartet → dimm das Wohnzimmerlicht und sag „Der Livestream von {{triggerEvent.data.channel_name}} hat begonnen“ auf dem Lautsprecher an.
- Jeden Abend um 19 Uhr → Neueste PeerTube-Videos lesen, dann den Satz per Nachricht schicken.
- Ungelesene Benachrichtigungen größer als 0 → eine Lampe blau schalten.
Fehlerbehebung
- PeerTube antwortet nicht: Prüfe Adresse und Port (9000 bei einer einfachen Docker-Installation, keiner hinter einem Reverse-Proxy). Der Container der Integration muss diese Adresse erreichen.
- Kein PeerTube unter dieser Adresse: Gemeint ist die Adresse der Seite, nicht die einer eingebetteten Seite oder eines Objektspeichers.
- Kanal … nicht gefunden: Prüfe die Kennung auf der Kanalseite. Ein
entfernter Kanal muss der Instanz bekannt sein: Öffne seine Seite einmal von
der Instanz aus (Suche nach
name@host) oder folge ihm. - Die Instanz begrenzt die Anfragen: Wähle ein längeres Intervall oder weniger Kanäle. Öffentliche Instanzen begrenzen die API pro Adresse.
- Anmeldung abgelehnt: Prüfe Benutzername und Passwort in der Weboberfläche derselben Instanz. Konten mit Zwei-Faktor-Authentifizierung sowie Anmeldungen über OpenID Connect oder SAML werden nicht unterstützt: Lass das Konto leer und nutze den öffentlichen Teil.
- Für alles andere setze
LOG_LEVEL=debugund eröffne ein Issue: https://github.com/guim31/gladys-peertube/issues
Grenzen
- Nur lesen: kein Hochladen, kein Kommentar, kein Abo aus Gladys.
- Ein Livestream wird bei der nächsten Abfrage erkannt, und seine Dauer beginnt dort. Ein Livestream, der zwischen zwei Abfragen stoppt und weiterläuft, gilt nicht als beendet.
- Höchstens 5 neue Videos eines Kanals werden pro Abfrage gemeldet (die neuesten): Ein größerer Schwung auf einmal wird gezählt, aber nicht ganz gemeldet.
- Vorschaubild und Link eines Videos kommen von der konfigurierten Instanz: Ein entfernter Kanal erscheint so, wie diese Instanz ihn kennt.
- Kein Webhook: Die Sandbox von Gladys hat keinen eingehenden Port, daher wird PeerTube regelmäßig gelesen.
- Nicht mit Framasoft oder dem PeerTube-Projekt verbunden.
Konfigurationseinstellungen
Diese Einstellungen fragt PeerTube in seinem Konfigurationsbildschirm in Gladys ab.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Dein PeerTube | section | Nein | Gib die Adresse einer PeerTube-Instanz (deine oder eine öffentliche) und die zu folgenden Kanäle ein. Lege dann die Geräte im Tab „Entdecken“ an. Das Konto ist optional. |
| Adresse der Instanz | string | Ja | Die Adresse der PeerTube-Seite, wie im Browser (https://… für eine öffentliche Instanz, http://IP:9000 in deinem Netzwerk). |
| Zu folgende Kanäle | string | Nein | Kennungen der Kanäle, durch Kommas getrennt (höchstens 20): name für einen Kanal der Instanz, name@host für einen anderen, oder die Adresse seiner Seite. |
| Konto (optional) | section | Nein | Dein Konto auf dieser Instanz ergänzt ein Gerät mit deinen ungelesenen Benachrichtigungen und den Abonnenten deiner Kanäle. Leer lassen, um nur die öffentlichen Seiten zu lesen. |
| Benutzername | string | Nein | Der Benutzername (oder die E-Mail) zum Anmelden. Konten mit Zwei-Faktor-Authentifizierung oder externer Anmeldung (OpenID, SAML) werden nicht unterstützt. |
| Passwort | secret | Nein | Das Passwort dieses Kontos. Es wird nur an die Instanz gesendet, um ein Sitzungstoken zu erhalten. |
| Optionen | section | Nein | |
| Aktualisierungsintervall | select | Nein | Wie oft PeerTube gelesen wird: jedes Mal zwei leichte Anfragen pro Kanal. Ein Livestream wird höchstens so spät erkannt. |
| Sprache der Namen | select | Nein | Sprache der Funktionsnamen (beim Anlegen des Geräts festgelegt), der Daten und der Szenen-Ergebnisse. |
So installierst du PeerTube in Gladys
- Öffne in Gladys Integrationen: PeerTube erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- Klicke auf Installieren. Gladys lädt das Docker-Image (
ghcr.io/guim31/gladys-peertube:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-peertube.
PeerTube benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.
Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.
Über externe Integrationen
PeerTube ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation