Wordpress Studio Link Integration

Guten Morgen, guten Abend und guten Tag!

Da ich in dem Thread am Ende feststellen musste, dass es noch keine Integration von Studio Link in WordPress gibt, will ich es nun in die Hand nehmen, eine Lösung zu entwickeln – gern auch im Team.

Das Ziel des Entwicklungsvorgangs ist es, ein Wordpress Plugin bereitzustellen, welches Podcastern die Möglichkeit gibt, die eigene Internetseite dynamisch auf den Status des Podcasts reagieren zu lassen.

So ist zum Beispiel denkbar, wenn der Podcast live ist, eine Box einzublenden, die Benutzer darauf hinweist.
Eine andere Möglichkeit ist es, eine OnAir Grafik im Hintergrund einzublenden oder gleich den Live Podcast in Form des Studio Link On Air Players in einer Leiste einzubinden.

Die Entwicklung wird dabei voraussichtlich in 3 Phasen ablaufen:

  1. Programmierung eines einfachen Plugin´s, welches Theme Developern erlaubt den Podcast Status auszulesen und in ihrem Theme zu verwenden. Außerdem soll ein Shortcode eingebunden werden, welcher Bestimmte passage des Textes nur anzeigt, wenn Bedingungen erfüllt sind.
  2. Weiterentwicklung zu einem Plugin, in welchem der Nutzer durch Regelsätze festlegen kann, wann ein von ihm selbst geschriebener Code ausgeführt wird.
  3. Das Plugin freundlicher für Endnutzer machen, indem es ermöglicht wird auch, ohne Custom Code Veränderungen an der Seite vorzunehmen.

Beispiel Phase 2:

WENN StudiLink-OnlineStatus = Online UND StudioLink-ShowStatus = live UND Seite = Startseite
ODER StudioLink-OnlineStatus = Online UND studioLink-ShowStatus = preshow UND Seite = Startseite
DANN führe CustomCode Aus


Beispiel ShortCode:

[StudiLink Status=Preshow]
Dieser Text Wird nur angezeigt, wenn die Show in der Preshow ist.
[/StudioLink]

[StudiLink Status=live]
Jetzt sind wir sogar Live!
[/StudioLink]

[StudiLink Online=False]
Leider sind wir gerade nicht am LiveStreamen. Ihr könnt euch aber gern unsere aufgenommenen Episoden unter LINK anhören.
[/StudioLink]


Einige Fragen sind aber noch offen:

Wie soll das Plugin heißen?
Wer würde gern an der Entwicklung teilhaben?
Gibt es überhaupt Interesse an so einem Plugin?

Ihr könnt mir ja gern mal eure Fragen, Anregungen, Kritik und Antworten auf meine gerade gestellten Fragen hier hereinstellen. :slight_smile:

Hier geht’s zum GitHub.

Nico

PS: Für die Entwicklung bin ich auf das Bereitstellen der Daten von @sreimers angewiesen.
Er hat in dem oben verlinkten Thread schon gemeint, dass er eine Schnittstelle in Form einer JSON URL bereitstellen würde. Bis dahin werde ich mich zum Plugin entwickeln belesen und das Grundgerüst zum Entwickeln aufbauen.

9 „Gefällt mir“

Und hier die API dazu:

https://stream.studio-link.de/api/streams/{slug}.json

image

Für dieses Beispiel wäre das also:

https://stream.studio-link.de/api/streams/mystream.json
{
    "name": "My Stream",
    "listeners": 0,
    "state": "offline"
}

Es gibt folgende Zustände für state:

test 
preshow
live
break
online
offline
6 „Gefällt mir“

Könnte mal die API noch etwas aufbohren um

  • gib mir alle registrierten Streams
  • gib mir alle aktiven Streams
    ?
2 „Gefällt mir“

Aktuell gibt es diese auch schon (z.B. für Podlive) allerdings nur mit Authentifizierung, ich muss mir da mal ein paar Gedanken machen. @eazy hatte das auch schon mal angeregt.

2 „Gefällt mir“

Das wäre natürlich wirklich keine schlechte Sache. Dadurch wäre ja beispielsweise eine Auswahl des eigenen Podcasts aus einer Liste von registrierten Podcasts mittels Suchfunktion denkbar.
Das würde sicher die Nutzererfahrung in späteren Versionen verbessern.

Momentan bin ich aber noch beim Grundgerüst. Wenn das steht, gibt’s erstmal ein Update auf GitHub und hier und dann werde ich auch versuchen @phil und @GestrandeterPanda in den Entwicklungsprozess zu integrieren, falls die beiden da noch Interesse dran haben :slight_smile:

1 „Gefällt mir“

Lässt sich daraus auch ein automatisches “$Podcast ist live” Posting nach Twitter oder Mastodon bauen?

1 „Gefällt mir“

Klar. Regelmäßige Abfrage der API, vorherigen Status speichern und mit aktuellem abgleichen. Wenn vorher „offliine“ und nun „live“ → twittern.

Technisch kein Ding. Aber ich kann leider keine Twitter-Bots schreiben/Twitter-APIs anzapfen. Ich tu mich mit oAuth extrem schwer :frowning:

1 „Gefällt mir“

Wäre aber eine Überlegung wert, sowas ein zu bauen. Der Server ist ja 99% Online und somit jeder Erweiterung von Reaper/Ultraschall in dieser Hinsicht überlegen. Und wenn wir schon eine Integration von Studio Link in Wordpress umsetzen wollen, warum dann nicht auch Social Media Integrieren.

Ich habe zwar noch nie mit der Twitter API gearbeitet, aber es gibt ja immer ein erstes Mal :smile:

Übringens kleines Update:
Ich denke ich werde das Git heute Abend oder Morgen früh füllen. Bin gerade noch am Arbeiten, deshalb konnte ich da nicht so viel dran machen.

2 „Gefällt mir“

Ich habe soeben die erste Version auf das Github hochgeladen. :partying_face:

Das ganze stellt bisher vor allem das Grundgerüst für die zukünftige Entwicklung dar. Bis jetzt ist es möglich Shortcodes zu erstellen, welche Text, HTML und Javascript auf der Seite einfügen jenachdem welchen Status der, in den Einstellungen festgelegte, Podcast hat.

Beispiele:

[StudioLink online=“True”] Dein Podcast ist Online! Dieser Text wird angezeigt wenn der Podcast in der Preshow, Live, Postshow, oder Online ist.[/StudioLink]
[StudioLink] Das ist die Kurzform und hat den gleichen Effekt wie der Shortcode oben. [StudioLink]
[StudioLink status = “live”] Dieser Text wird nur angezeigt, wenn dein Podcast Live ist! [/StudioLink]
[StudioLink online = “false”] Dieser Text wird angezeigt wenn der Podcast im Test, Break, oder Offline ist. [/StudioLink]

(Groß und Kleinschreibung ist bei “StudioLink” wichtig, beim Rest aber nicht!)

Folgendes ist möglich:

online= “True” / “False”
status= "test " / “preshow” / “live” / “postshow” / “break” / “online” / “offline”

Ich denke jetzt ist die Zeit gekommen, in der @phil und @GestrandeterPanda mit in die Entwicklung einsteigen können :slight_smile:

Also @GestrandeterPanda du würdest dich als GitHub Betreuer wohlfühlen, richtig?
@phil was wäre dein Interesse?


PS: @sreimers Mir ist ein Bug in der API aufgefallen:
Wen ich länger keine Aktion im Studio Link On Air Browserfenster unternommen habe, ändert sich der Status des Podcasts von “live” oder “preshow” auf “online”. Damit ist leider keine verlässliche abfrage vom Status mehr möglich. Wäre es nicht Sinnvoller Online ganz aus dem Status zu entfernen? Schließlich ist man bei jedem Status außer “Offline” und “Break” ja immer Online.

1 „Gefällt mir“

Kann es sein das dein Teststream nur ein leeres Audio Signal sendet? Dann wird der Stream automatisch nach 300 Sekunden getrennt, das Plug-in baut die Verbindung dann aber wieder neu auf. Daher auch der Wechsel vom Status.

1 „Gefällt mir“

Exakt! Also doch kein Bug, sondern beabsichtigt. Dann macht es ja vielleicht sogar Sinn, beim Status „Online“ einen Hinweis für den Admin zu Integrieren, der zeigt dass kein aktives Audio Signal übermittelt wird. Oder gibt es noch andere Umstände unter denen nur „Online“ als Status angezeigt wird?

1 „Gefällt mir“

Online ist der Default Status, wenn irgendwas gesendet wird. Der eigentliche Status (Live, Test, Break, Preshow, Postshow) wird dann manuell im Webfenster gesetzt. Ein paar davon lösen z.B. eine Push Notification für Podlive aus. Das parsen vom Audiosignal ist nicht ganz trivial, aber theoretisch könnte ich dazu eine Warnung integrieren, ich setze es mal auf die Roadmap.

2 „Gefällt mir“

Ok, nur zum Verständnis:

Wird auch bei einem aktiven Audio Signal nach 5 Minuten der Status in der json auf “Online” gesetzt?

Ich habe leider kein Mikrofon da, um das zu testen.


Und kleines Update @MacSnider: Ich bin gerade dabei mir die Twitter OAuth API an zu sehen. Ich bin mir momentan noch nicht sicher, wie lange eine Integration noch dauert, aber ich habe es auf jeden Fall auf meiner To-Do Liste :slight_smile:

1 „Gefällt mir“

Das passiert nur wenn der Stream neu gestartet wird.

1 „Gefällt mir“

Hallo,

wo finde ich denn die .zip Datei zum installieren des Plugin unter WordPress ?

Andreas

Momentan noch garnicht, da wir uns noch im der frühen Entwicklung befinden.

Du kannst das Plugin aber über das GitHub Downloaden:

Du gehst auf unser GitHub. Dort findest du oben rechts den Grünen Button „Clone or Download“.
Den Anklicken und dann auf „Download ZIP“.

Die ZIP Datei kannst du dann unter WordPress bei „Plugin Installieren“ -> „Hochladen“ Installieren und aktivieren.

Ich habe umfassende Änderungen an der Architektur des Plugins durchgeführt, bin aber noch nicht ganz fertig. Ich werde das ganze in den nächsten Tagen veröffentlichen.
Deshalb würde ich dir auch dringend empfehlen ab und zu hier vorbei zu schauen und das Plugin zu updaten wenn es eine neue Version gibt.
( Dafür musst du das Plugin momentan deinstallieren und neu installieren. )
Die Momentane Implementation ist nicht die sauberste, da ich mich gerade noch in die WordPress Plugin API einlese.
Die nächste Version dürfte dann aber eine ziemlich ordentliche Architektur und Dokumentation haben :slight_smile:

5 „Gefällt mir“

super ! danke für die schnelle und ausführliche Antwort … ich mache mich gleich mal ran

Andreas

Mitmachen :wink:
Ich klone mir das Repo mal und schaue, was man noch verbessern kann. Du bist ja schon ein Stück weit gekommen.

Ich kenne mich recht gut mit den WordPress-Schnittstellen/APIs aus. Da kann ich dich sicherlich unterstützen, wenn es konkrete Fragen gibt. Meld dich da gern per DM o.ä.

2 „Gefällt mir“

@nmierbach @phil Was haltet ihr davon an der Stelle auch gleich noch den Podlive Button einzubauen? So können potentielle Hörer den Podcast direkt in der Podlive App öffnen, wenn sie die App bereits haben:

Ich finde das könnte gut an die Stelle auf der Webseite passen.

5 „Gefällt mir“

ich habe das mal als Feature Request auf GitHub überführt.

3 „Gefällt mir“