Twitch Client Teil #2 - Architektur

Twitch Client Teil #2 - Architektur

Von Jan Suchotzki

Die weiteren Teile dieser Mini-Serie findest du hier: Teil #1 - Einleitung und Authentifizierung Teil #3 - Lesen per TwitchAPI Teil #4 - AccessToken erstellen Teil #5 - Schreiben per TwitchAPI - Follow Channel Client

Grundsätzlich ist eine Kommunikation mit den Twitch-Servern nur über das Internet möglich. Damit du trotzdem einen Client in C# entwickeln kannst, gibt es Bibliotheken wie die TwitchLib die die Interaktion via REST API, IRC und Websockets in C# Klassen verpacken. Wie das alles zusammenhängt und funktioniert, erkläre ich dir in diesem Video:

Hier nochmals der Überblick wofür du die verschiedenen Protokolle die dir über die TwitchLib angeboten werden benutzen kannst:

TwitchAPI, TwitchChat und TwitchPubSub

Hier noch ein paar konkretere Beispiele welche Art von Clients du mit den jeweiligen Technologien entwickeln kannst:

  • TwitchAPI - Alleine mit dem Auslesen von Daten über die TwitchAPI kannst du beispielsweise statistische Auswertungen wie bei den Twitchtools machen. Darüberhinaus hast du mit dem schreibenden Zugriff aber auch die Möglichkeit Werkzeuge zu entwickeln die einen Broadcaster beim Verwalten seiner Streams und Videos unterstützen. Ein Beispiel dafür ist die Overwolf Twitch Streaming Application.
  • TwitchChat - Ein großteil der Anwendungen die im Netz zu finden sind bieten Funktionalitäten um den Chat zu verwalten. Dabei bieten Bots wie beispielsweise moobot die Möglichkeit Spam-Posts auszufiltern, Umfragen zu starten, Giveaways einfach einzubinden oder auch die Teilnehmer einen Song auswählen zulassen. In eine ganz andere Richtung gehen Kanäle wie BattleOfTheCrowds bei denen es möglich ist mittels des Chats an einem Spiel teilzunehmen. Dazu wird ebenfalls TwitchChat verwendet. Einen ersten Eindruck wie das geht kannst du hier bekommen.
  • Twitch PubSub - Konkrete Beispiele in der das Twitch PubSub System verwendet wird habe ich nicht gefunden. Theoretisch kann ich die Anwendungsfälle von der offiziellen Dokumentation nachvollziehen. Jedoch bin ich gespannt ob du mir konkrete Projekte zeigen kannst in der das PubSub verwendet wird.
  • Eine detaillierte Erklärung was das Twitch PubSub System (TPS) ist, findest du hier
  • Der Quellcode der TwitchLib ist hier bei GitHub verfügbar. Eine erste Beschreibung ist dort ebenfalls vorhanden.
  • Teile der Doku für TwitchLib sind bereits fertig und hier verfügbar.
  • Wenn du die TwitchLib einfach in deinem Visual Studio Projekt nutzen möchtest, kannst du dir die Binaries von NuGet holen
  • Eine wirklich gute Einführung in die Arbeit des Entwicklungsteam bei Twitch gibt dieser Blog-Post

Viel Erfolg bei der Analyse der Architektur

Jan