TikTokLive.client.ws package#

Submodules#

TikTokLive.client.ws.ws_client module#

class TikTokLive.client.ws.ws_client.WebcastProxyConnect(uri: str, *, proxy: Proxy | None, **kwargs)#

Bases: ProxyConnect

class TikTokLive.client.ws.ws_client.WebcastWSClient(ws_kwargs: dict = {}, proxy: Proxy | None = None)#

Bases: object

Websocket client responsible for connections to TikTok

build_connection_args(uri: str, headers: Dict[str, str]) Dict[str, Any]#

Build the websockets library connection arguments dictionary

Parameters:
  • uri – URI to connect to TikTok

  • headers – Headers to send to TikTok on connecting

Returns:

Connection dictionary

async connect(uri: str, headers: Dict[str, str]) AsyncIterator[WebcastResponseMessage]#

Connect to the Webcast websocket server & handle cancellation

Parameters:
  • uri

  • headers

Returns:

async connect_loop(uri: str, headers: Dict[str, str]) AsyncIterator[WebcastResponseMessage]#

Connect to the Webcast server & iterate over response messages.

The iterator exits normally when the connection is closed with close code 1000 (OK) or 1001 (going away) or without a close code. It raises a ConnectionClosedError when the connection is closed with any other code.

Parameters:
  • uri – URI to connect to

  • headers – Headers used for the connection

Returns:

Yields WebcastResponseMessage

property connected: bool#

Check if the websocket is currently connected

Returns:

Connection status

async disconnect() None#

Request to stop the websocket connection & wait :return: None

async process_recv(data: bytes) List[WebcastResponseMessage]#

Handle push frames received as websocket data

Parameters:

data – Protobuf bytestream

Returns:

List of contained messages for handling

async send_ack(log_id: int, internal_ext: str) None#

Acknowledge incoming messages from TikTok

Parameters:
  • log_id – ID for the acknowledgement

  • internal_ext – [unknown] Outbound data

Returns:

None

Module contents#