TikTokLive uses a series of global defaults to create the HTTP client. You can customize these settings to modify headers, URLs, cookies, and more.
What are WebDefaults?
WebDefaults is a global configuration object that controls how TikTokLive interacts with TikTok’s servers. These settings must be configured before creating a TikTokLiveClient instance.
Always configure WebDefaults before creating your client. Changes made after client creation will not take effect.
Available Parameters
| Parameter | Type | Description |
|---|
tiktok_sign_api_key | str | Euler Stream API key to increase rate limits |
tiktok_app_url | str | TikTok app URL (default: https://www.tiktok.com) |
tiktok_sign_url | str | Signature server URL for generating tokens |
tiktok_webcast_url | str | TikTok livestream URL (default: https://webcast.tiktok.com) |
web_client_params | dict | URL parameters for TikTok HTTP requests |
web_client_headers | dict | Headers for TikTok HTTP requests |
web_client_cookies | dict | Custom cookies for the HTTP client |
ws_client_params | dict | URL parameters for WebSocket connection |
ws_client_params_append_str | str | Extra string data for WebSocket URI |
ws_client_headers | dict | Extra headers for WebSocket client |
ja3_impersonate | str | JA3 fingerprint to impersonate |
Basic Usage
Import WebDefaults
from TikTokLive import TikTokLiveClient
from TikTokLive.client.web.web_settings import WebDefaults
Configure settings before client creation
# Override default HTTP settings
WebDefaults.tiktok_sign_url = "https://my-sign-server.com"
WebDefaults.web_client_headers['my_new_header'] = "my-new-value"
Create the client
client: TikTokLiveClient = TikTokLiveClient(
unique_id="@username"
)
Complete Example
from TikTokLive.client.client import TikTokLiveClient
from TikTokLive.client.logger import LogLevel
from TikTokLive.client.web.web_settings import WebDefaults
from TikTokLive.events import ConnectEvent
# *Before* creating a client, you can override the default HTTP settings
WebDefaults.tiktok_sign_url = "https://my-sign-server.com"
WebDefaults.web_client_headers['my_new_header'] = "my-new-value"
# Create the client
client: TikTokLiveClient = TikTokLiveClient(
unique_id="@tv_asahi_news",
)
@client.on(ConnectEvent)
async def on_connect(event: ConnectEvent):
client.logger.info(f"Connected to {event.unique_id}!")
if __name__ == '__main__':
client.logger.setLevel(LogLevel.INFO.value)
client.run()
Common Use Cases
Add custom headers to all HTTP requests:
WebDefaults.web_client_headers['User-Agent'] = "MyCustomUserAgent/1.0"
WebDefaults.web_client_headers['X-Custom-Header'] = "custom-value"
Custom Cookies
Set custom cookies for the HTTP client:
WebDefaults.web_client_cookies = {
'session_id': 'your-session-id',
'preference': 'dark-mode'
}
Custom Signature Server
Use your own signature server instead of Euler Stream:
WebDefaults.tiktok_sign_url = "https://your-signature-server.com"
If you have an Euler Stream API key, set it to increase rate limits:WebDefaults.tiktok_sign_api_key = "your-api-key-here"
WebSocket Parameters
Modify WebSocket connection parameters:
WebDefaults.ws_client_headers['X-Custom-WS-Header'] = "value"
WebDefaults.ws_client_params['custom_param'] = "param_value"
Advanced Configuration
URL Parameters
Add custom URL parameters to HTTP requests:
WebDefaults.web_client_params = {
'lang': 'en',
'region': 'US'
}
JA3 Fingerprint
Set a custom JA3 fingerprint for browser impersonation:
WebDefaults.ja3_impersonate = "chrome_108"
The JA3 fingerprint should match the current version on the Sign Server, or privileged methods will fail.
Best Practices
- Configure before client creation - Always set
WebDefaults before instantiating TikTokLiveClient
- Don’t modify during runtime - Changes to
WebDefaults affect all future client instances
- Keep credentials secure - Never hardcode API keys or session tokens in your source code
- Test changes - Verify that custom configurations don’t break connectivity
WebDefaults is a global singleton. Changes affect all TikTokLiveClient instances created afterward.