KickLib 0.0.3

Additional Details

Missing dependencies

There is a newer version of this package available.
See the version list below for details.
dotnet add package KickLib --version 0.0.3
NuGet\Install-Package KickLib -Version 0.0.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="KickLib" Version="0.0.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add KickLib --version 0.0.3
#r "nuget: KickLib, 0.0.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install KickLib as a Cake Addin
#addin nuget:?package=KickLib&version=0.0.3

// Install KickLib as a Cake Tool
#tool nuget:?package=KickLib&version=0.0.3

<p align="center"> <img src="KickLibLogo.png" style="max-height: 300px;"> </p>

<p align="center"> <a href="https://www.microsoft.com/net"><img src="https://img.shields.io/badge/-.NET%207.0-blueviolet" style="max-height: 300px;"></a> <img src="https://img.shields.io/badge/Platform-.NET-lightgrey.svg" style="max-height: 300px;"> <a href="https://discord.gg/fPRXy57WrS"><img src="https://img.shields.io/badge/Discord-KickLib-green.svg" style="max-height: 300px;"></a> <a href="https://github.com/Bukk94/KickLib/blob/master/LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" style="max-height: 300px;"></a> </p>

<p align="center"> <a href='https://ko-fi.com/fusedchat' target='_blank'> <img height='30' style='border:0;height:38px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0' alt='Buy Me a Coffee at ko-fi.com' /> </a>

About

KickLib is a C# library that allows for interaction with unofficial / undocumented Kick API (https://kick.com) and eases implementation for various bots.

Features

  • Reading Chat Messages
  • Reading Channel events (follows)
  • Clips
    • Get all clips
    • Get channel clips
    • Get clip information
  • Channels
    • Get channel information
  • Livestreams
    • Is streamer live?
    • Get livestream information
  • Users
    • Get user information

Installing

First, install NuGet. Then, install KickLib from the package manager console:

PM> Install-Package KickLib

Or from the .NET CLI as:

dotnet add package KickLib

Examples

Using API to get information

IKickApi kickApi = new KickApi();

var userName = "channelUsername";

// Get information about user
var user = await kickApi.Users.GetUserAsync(userName);

// Get information about channel
var channelInfo = await kickApi.Channels.GetChannelInfoAsync(userName);

// Is user broadcasting / streaming?
var isBroadcasting = await kickApi.Livestream.IsStreamerLiveAsync(userName);

// Gets detailed information about current livestream
var liveInfo = await kickApi.Livestream.GetLivestreamInfoAsync(userName);

// Get channel clips
var channelClips = await kickApi.Clips.GetChannelClipsAsync(userName);

Using Client to read chat messages

IKickClient client = new KickClient();

client.OnMessage += delegate(object sender, ChatMessageEventArgs e)
{
    Console.WriteLine(e.Data.Content);
};

await client.ListenToChatRoomAsync(1234567);
await client.ConnectAsync();

Custom downloader client

If you are not satisfied with provided client, you can implement your own download logic. All you need to do is implement IApiCaller interface and pass new instance to KickApi.

public class MyOwnDownloader : IApiCaller 
{
    // Implementation
}
var myDownloader = new MyOwnDownloader();
IKickApi kickApi = new KickApi(myDownloader);

Limitations

Currently KickLib is not able to do authenticated calls, because any authentication to Kick's API is very tricky and they do not provide any official ways to authenticate. Thus library uses only endpoints that don't need this (but there are plans to extend it in the future).

Disclaimer

Kick don't have any official API. All functionality in KickLib was researched and reversed-engineered from their website. This means that any API can change without announce.

KickLib is meant to be used for education purposes. Don't use it for heavy scraping or other harmful actions against Kick streaming platform. I don't take responsibility for any KickLib misuse and I strongly advice against such actions.

Once API is officially released, this library will be adjusted accordingly.

License

See MIT License

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.7 419 11/14/2023
0.1.6 111 11/9/2023
0.1.5 104 11/8/2023
0.1.4 154 9/25/2023
0.1.3 112 9/21/2023
0.1.2 379 7/21/2023
0.1.1 210 7/13/2023
0.1.0 132 7/13/2023
0.0.6 134 7/13/2023
0.0.5 136 7/12/2023
0.0.4 158 7/12/2023
0.0.3 153 7/12/2023
0.0.2 136 7/12/2023
0.0.1 136 7/11/2023

Linked Client project, added preparation for authentication, added more endpoint calls