All Projects → nicklaw5 → Helix

nicklaw5 / Helix

Licence: mit
A Twitch Helix API client written in Go.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Helix

Tmi.js
💬 Javascript library for the Twitch Messaging Interface. (Twitch.tv)
Stars: ✭ 938 (+919.57%)
Mutual labels:  twitch
Twitch Stream Recorder
Record twitch streams live!
Stars: ✭ 41 (-55.43%)
Mutual labels:  twitch
Twitchy
CLI streamlink wrapper for twitch.tv
Stars: ✭ 80 (-13.04%)
Mutual labels:  twitch
Java Twirk
Small, basic library for communication via the Twitch chat. Java 8 compatible
Stars: ✭ 36 (-60.87%)
Mutual labels:  twitch
Essentialnowplaying
A now playing tool intended to be used with OBS.
Stars: ✭ 40 (-56.52%)
Mutual labels:  twitch
Flitch
A sample Flutter (https://flutter.io) app using the Twitch API.
Stars: ✭ 51 (-44.57%)
Mutual labels:  twitch
Twitch downloader
A universal twitch.tv VOD download script. Compatible with both old- and new-style VODs.
Stars: ✭ 24 (-73.91%)
Mutual labels:  twitch
Docker Multistreamer
Dockerized multistreamer
Stars: ✭ 90 (-2.17%)
Mutual labels:  twitch
Ttv Ublock
Blocking ads on that certain streaming website
Stars: ✭ 1,008 (+995.65%)
Mutual labels:  twitch
Swifttwitch
👾 The New Twitch API for iOS; wrapped in Swift goodness 👾
Stars: ✭ 72 (-21.74%)
Mutual labels:  twitch
Twitchcsharp
Twitch C# Wrapper for the Twitch v3 REST API
Stars: ✭ 36 (-60.87%)
Mutual labels:  twitch
Api
`fdgt` is a mock API for the Twitch. Via `fdgt`, you can simulate events without having to spend a penny!
Stars: ✭ 40 (-56.52%)
Mutual labels:  twitch
Devchatterbot
Stars: ✭ 60 (-34.78%)
Mutual labels:  twitch
Badusb botnet
👥😈 Infect a pc with badusb and establish a connection through telegram.
Stars: ✭ 32 (-65.22%)
Mutual labels:  twitch
Twitchirc Unity
lightweight IRC client component for use with the Unity Engine.
Stars: ✭ 81 (-11.96%)
Mutual labels:  twitch
Twitch misc
Misc. Twitch bits and pieces
Stars: ✭ 26 (-71.74%)
Mutual labels:  twitch
Streamingclientlibrary
C# client library for Twitch, YouTube Live, and other streaming services
Stars: ✭ 48 (-47.83%)
Mutual labels:  twitch
Trains.net
A simple 2D game written in C# with .NET Core. Development is streamed live on https://twitch.tv/davidwengier and past streams available on YouTube at http://bit.ly/trains-net-videos
Stars: ✭ 92 (+0%)
Mutual labels:  twitch
Mixer Mixitup
Streaming bot application for handling chat, events, moderation, and other streamer assistance features
Stars: ✭ 83 (-9.78%)
Mutual labels:  twitch
Skraper
Kotlin/Java library and cli tool for scraping posts and media from various sources with neither authorization nor full page rendering (Facebook, Instagram, Twitter, Youtube, Tiktok, Telegram, Twitch, Reddit, 9GAG, Pinterest, Flickr, Tumblr, IFunny, VK, Pikabu)
Stars: ✭ 72 (-21.74%)
Mutual labels:  twitch

helix

A Twitch Helix API client written in Go (Golang).

Tests and Coverage Coverage Status

Package Status

This project is a work in progress. Twitch has not finished all available endpoints/features for the Helix API, but as these get released they are likely to be implemented in this package.

Documentation & Examples

All documentation and usage examples for this package can be found in the docs directory. If you are looking for the Twitch API docs, see the Twitch Developer website.

Supported Endpoints & Features

Authentication:

  • [x] Generate Authorization URL ("code" or "token" authorization)
  • [x] Get App Access Tokens (OAuth Client Credentials Flow)
  • [x] Get User Access Tokens (OAuth Authorization Code Flow)
  • [x] Refresh User Access Tokens
  • [x] Revoke User Access Tokens
  • [x] Validate Access Token

API Endpoint:

  • [x] Start Commercial
  • [x] Get Extension Analytics
  • [x] Get Cheermotes
  • [x] Get Game Analytics
  • [x] Get Bits Leaderboard
  • [ ] Get Extension Transactions
  • [x] Create Clip
  • [x] Get Clip
  • [ ] Get Clips
  • [x] Create Entitlement Grants Upload URL
  • [x] Get Code Status
  • [x] Get Drops Entitlements
  • [x] Redeem Code
  • [x] Get Top Games
  • [x] Get Games
  • [ ] Get Hype Train Events
  • [ ] Check AutoMod Status
  • [ ] Get Banned Users
  • [ ] Get Banned Events
  • [ ] Get Moderators
  • [ ] Get Moderator Events
  • [ ] Search Categories
  • [ ] Search Channels
  • [ ] Get Stream Key
  • [x] Get Streams
  • [x] Create Stream Marker
  • [x] Get Stream Markers
  • [ ] Get Channel Information
  • [ ] Modify Channel Information
  • [ ] Get Broadcaster Subscriptions
  • [ ] Get All Stream Tags
  • [ ] Get Stream Tags
  • [ ] Replace Stream Tags
  • [ ] Create User Follows
  • [ ] Delete User Follows
  • [x] Get Users
  • [x] Get Users Follows
  • [ ] Get User Extensions
  • [ ] Get User Active Extensions
  • [x] Update User
  • [ ] Update User Extensions
  • [x] Get Videos
  • [x] Get Webhook Subscriptions
  • [x] Create / Remove / List EventSub Subscriptions

Quick Usage Example

This is a quick example of how to get users. Note that you don't need to provide both a list of ids and logins, one or the other will suffice.

client, err := helix.NewClient(&helix.Options{
    ClientID: "your-client-id",
})
if err != nil {
    // handle error
}

resp, err := client.GetUsers(&helix.UsersParams{
    IDs:    []string{"26301881", "18074328"},
    Logins: []string{"summit1g", "lirik"},
})
if err != nil {
    // handle error
}

fmt.Printf("Status code: %d\n", resp.StatusCode)
fmt.Printf("Rate limit: %d\n", resp.GetRateLimit())
fmt.Printf("Rate limit remaining: %d\n", resp.GetRateLimitRemaining())
fmt.Printf("Rate limit reset: %d\n\n", resp.GetRateLimitReset())

for _, user := range resp.Data.Users {
    fmt.Printf("ID: %s Name: %s\n", user.ID, user.DisplayName)
}

Output:

Status code: 200
Rate limit: 30
Rate limit remaining: 29
Rate limit reset: 1517695315

ID: 26301881 Name: sodapoppin
ID: 18074328 Name: destiny
ID: 26490481 Name: summit1g
ID: 23161357 Name: lirik

Contributions

PRs are very much welcome. Where possible, please write tests for any code that is introduced by your PRs.

License

This package is distributed under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].