diff --git a/README.md b/README.md new file mode 100644 index 0000000..f38bb1d --- /dev/null +++ b/README.md @@ -0,0 +1,100 @@ +# TikTok-Live-Java +A Node.js library to receive live stream events such as comments and gifts in realtime from [TikTok LIVE](https://www.tiktok.com/live) by connecting to TikTok's internal WebCast push service. The package includes a wrapper that connects to the WebCast service using just the username (`uniqueId`). This allows you to connect to your own live chat as well as the live chat of other streamers. No credentials are required. Besides [Chat Comments](#chat), other events such as [Members Joining](#member), [Gifts](#gift), [Subscriptions](#subscribe), [Viewers](#roomuser), [Follows](#social), [Shares](#social), [Questions](#questionnew), [Likes](#like) and [Battles](#linkmicbattle) can be tracked. You can also send [automatic messages](#send-chat-messages) into the chat by providing your Session ID. + + +Do you prefer other programming languages? +- **Node** orginal: [TikTok-Live-Connector](https://github.com/isaackogan/TikTok-Live-Connector) by [@isaackogan](https://github.com/isaackogan) +- **Python** rewrite: [TikTokLive](https://github.com/isaackogan/TikTokLive) by [@isaackogan](https://github.com/isaackogan) +- **Go** rewrite: [GoTikTokLive](https://github.com/Davincible/gotiktoklive) by [@Davincible](https://github.com/Davincible) +- **C#** rewrite: [TikTokLiveSharp](https://github.com/frankvHoof93/TikTokLiveSharp) by [@frankvHoof93](https://github.com/frankvHoof93) + +**NOTE:** This is not an official API. It's a reverse engineering project. + +#### Overview +- [Getting started](#getting-started) +- [Params and options](#params-and-options) +- [Methods](#methods) +- [Events](#events) +- [Examples](#examples) +- [Contributing](#contributing) + +## Getting started + +1. Install the package via NPM +``` +npm i tiktok-live-connector +``` + +2. Create your first chat connection + +```java + public static void main(String[] args) + { + // Username of someone who is currently live + var tiktokUsername = "officialgeilegisela"; + + TikTokLive.newClient(tiktokUsername) + .onConnected(event -> + { + System.out.println("Connected"); + }) + .onJoin(event -> + { + System.out.println("User joined -> " + event.getUser().getNickName()); + }) + .onComment(event -> + { + System.out.println(event.getUser().getUniqueId() + ": " + event.getText()); + }) + .onError(event -> + { + event.getException().printStackTrace(); + }) + .buildAndRun(); + } +``` + +## Methods +A `TikTokLive` object contains the following methods. + +| Method Name | Description | +| ----------- | ----------- | +| connect | Connects to the live stream chat.
Returns a `Promise` which will be resolved when the connection is successfully established. | +| disconnect | Disconnects the connection. | +| getRoomInfo | Gets the current room info from TikTok API including streamer info, room status and statistics. | + +## Events + +A `TikTokLive` object has the following events + +Control Events: +- [connected](#connected) +- [disconnected](#disconnected) +- [streamEnd](#streamend) +- [rawData](#rawdata) +- [websocketConnected](#websocketconnected) +- [error](#error) + +Message Events: +- [member](#member) +- [chat](#chat) +- [gift](#gift) +- [roomUser](#roomuser) +- [like](#like) +- [social](#social) +- [emote](#emote) +- [envelope](#envelope) +- [questionNew](#questionnew) +- [linkMicBattle](#linkmicbattle) +- [linkMicArmies](#linkmicarmies) +- [liveIntro](#liveintro) +- [subscribe](#subscribe) + +Custom Events: +- [follow](#follow) +- [share](#share) + +

+ +## Contributing +Your improvements are welcome! Feel free to open an issue or pull request.