https://github.com/velddev/twitch
A Wumpus-style, low-level implementation of the Twitch Apis.
https://github.com/velddev/twitch
Last synced: 4 months ago
JSON representation
A Wumpus-style, low-level implementation of the Twitch Apis.
- Host: GitHub
- URL: https://github.com/velddev/twitch
- Owner: velddev
- License: mit
- Created: 2022-12-21T08:13:21.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2019-03-22T21:47:34.000Z (about 7 years ago)
- Last Synced: 2025-09-09T05:15:18.655Z (9 months ago)
- Homepage:
- Size: 119 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://discord.gg/yd8x2wM) [](https://ci.appveyor.com/project/Aux/twitch) 
# Twitch
A [Wumpus-style](https://github.com/discord-net/Wumpus.Net), low-level implementation of the Twitch Apis.
### Builds
Development builds of projects that are available for testing can be found by adding this feed to your nuget sources.
`https://www.myget.org/F/akitaux/api/v3/index.json`
### Samples
##### Helix
Authentication and a basic request to get online streams.
```csharp
var helix = new TwitchHelixClient
{
Authorization = new AuthenticationHeaderValue("Bearer", "oauth token")
};
var response = await helix.GetStreamsAsync(new GetStreamsParams
{
UserNames = new[] { (Utf8String)"emongg"), (Utf8String)"timthetatman" }
});
foreach (var stream in response.Data)
Console.WriteLine($"{stream.UserName} is online! {stream.Title}");
```
##### Chat
Joining a channel and displaying messages in the console.
```csharp
var chat = new TwitchChatClient();
chat.Connected += () =>
{
chat.Send(new IrcMessage(IrcCommand.Nickname, "justinfan42069"));
chat.Send(new IrcMessage(IrcCommand.Password, "justinfan42069"));
chat.Send(new IrcMessage(IrcCommand.Join, "#emongg"));
};
chat.ReceivedPayload += (payload, n) =>
{
if (payload.Command == IrcCommand.Message)
Console.WriteLine(string.Join(" ", payload.Parameters));
};
await chat.RunAsync("wss://irc-ws.chat.twitch.tv:443");
```
##### PubSub
Listening to a channel's subscriptions and displaying them in the console
```csharp
var pubsub = new TwitchPubsubClient();
pubsub.Connected += () =>
{
pubsub.SendListenAsync(
new Topic(PubsubDispatchType.ChannelSubscriptionV1, 1234567),
"oauth token");
};
pubsub.ChannelSubscriptionV1 += (sub) =>
{
Console.WriteLine($"{sub.DisplayName} just subscribed to {sub.ChannelName} for {sub.CumulativeMonths} month(s)!");
};
await pubsub.RunAsync("wss://pubsub-edge.twitch.tv");
```