Skip to main content

tiktok-forge

TikTok signature forge — Android & Web authentication signature generator.

Developer: MERO · Telegram: @QP4RM
Version: 0.0.1
Python: 3.10+


Installation

pip install tiktok-forge

Or from source:

git clone https://github.com/MERO-QP4RM/tiktok-forge
cd tiktok-forge
pip install .

Algorithms Implemented

Algorithm Header Purpose
Argus x-argus Primary Android signature (Simon cipher + SM3 hash)
Gorgon x-gorgon, x-khronos Request integrity + timestamp
Ladon x-ladon License-based authentication token
TTEncrypt — Payload encryption for device registration
X-Bogus X-Bogus Web request signature
X-Gnarly X-Gnarly Web secondary signature
msToken msToken Web session token
verifyFp verifyFp Browser fingerprint

Quick Start

Android API Signatures

from tiktokforge import TikTokSigner

params = "aid=1233&app_name=musical_ly&device_platform=android"

headers = TikTokSigner.generate_headers(params=params)
print(headers)

Shortcut Functions

from tiktokforge import generate_headers, encrypt, decrypt, encode, decode

headers = generate_headers(params="aid=1233&app_name=musical_ly")

encrypted = encrypt({"device_id": "123456", "os": "android"})

decrypted = decrypt(encrypted)

protobuf_bytes = encode({1: "value", 2: 123})

data_dict = decode(protobuf_bytes)

Web Signatures

from tiktokforge import (
    generate_ms_token,
    generate_verify_fp,
    generate_x_bogus,
    generate_x_gnarly,
    generate_web_headers,
    generate_web_id,
)

ms_token = generate_ms_token()
verify_fp = generate_verify_fp()
web_id = generate_web_id()

url_params = "aid=1988&app_name=tiktok_web&device_platform=web"
x_bogus = generate_x_bogus(url_params)
x_gnarly = generate_x_gnarly(url_params)

web_headers = generate_web_headers(url_params=url_params)
print(web_headers)

Individual Algorithm Usage

from tiktokforge.algorithms import Argus, Gorgon, Ladon

argus = Argus.encrypt(params="aid=1233&app_name=musical_ly")
print(argus)

gorgon = Gorgon.encrypt(params="aid=1233&app_name=musical_ly")
print(gorgon)

ladon = Ladon.encrypt(aid=1233, lc_id=2142840551)
print(ladon)

Full Android GET Request

import requests
from tiktokforge import TikTokSigner

params = {
    "aid": 1233,
    "app_name": "musical_ly",
    "device_platform": "android",
    "os_version": "9",
    "device_type": "2203121C",
    "device_brand": "Xiaomi",
    "language": "en",
    "region": "US",
}

query_string = "&".join(f"{k}={v}" for k, v in params.items())
auth_headers = TikTokSigner.generate_headers(params=query_string)

headers = {
    "User-Agent": "com.zhiliaoapp.musically/2023700040 (Linux; U; Android 9; en_US; 2203121C; Build/PQ3A.190705.09121607;tt-ok/3.12.13.4-tiktok)",
    "Connection": "Keep-Alive",
    "Accept-Encoding": "gzip",
}
headers.update(auth_headers)

url = f"https://api.tiktokv.com/aweme/v1/feed/?{query_string}"
response = requests.get(url, headers=headers)
print(response.json())

Full Android POST Request

import requests
from tiktokforge import TikTokSigner

params = "aid=1233&app_name=musical_ly"
data = {
    "username": "example",
    "password": "encrypted_password",
    "mix_mode": 1,
}

auth_headers = TikTokSigner.generate_headers(
    params=params,
    data=data,
    cookie="sessionid=abc123; tt_csrf_token=xyz789",
)

headers = {
    "User-Agent": "com.zhiliaoapp.musically/2023700040 (Linux; U; Android 9; en_US; 2203121C)",
    "Content-Type": "application/x-www-form-urlencoded",
}
headers.update(auth_headers)

url = f"https://api.tiktokv.com/passport/user/login/?{params}"
response = requests.post(url, headers=headers, data=data)
print(response.json())

TTEncrypt Device Registration

import requests
from tiktokforge import TikTokSigner

device_info = {
    "magic_tag": "ss_app_log",
    "header": {
        "display_name": "TikTok",
        "update_version_code": 2023700040,
        "manifest_version_code": 2023700040,
        "aid": 1233,
        "channel": "googleplay",
        "package": "com.zhiliaoapp.musically",
        "version_name": "37.0.4",
        "version_code": 2023700040,
        "os": "Android",
        "os_version": "9",
        "os_api": 28,
        "device_model": "2203121C",
        "device_brand": "Xiaomi",
        "cpu_abi": "arm64-v8a",
        "language": "en",
        "timezone": -5,
    },
    "_gen_time": 1706789012345,
}

encrypted_payload = TikTokSigner.encrypt(device_info)
auth_headers = TikTokSigner.generate_headers(
    params="aid=1233&app_name=musical_ly",
    data=encrypted_payload,
)

headers = {
    "User-Agent": "com.zhiliaoapp.musically/2023700040 (Linux; U; Android 9; en_US; 2203121C)",
    "Content-Type": "application/octet-stream",
}
headers.update(auth_headers)

url = "https://log.tiktokv.com/service/2/device_register/?aid=1233&app_name=musical_ly"
response = requests.post(url, headers=headers, data=encrypted_payload)

Protobuf Encode/Decode

from tiktokforge import encode, decode

data = {1: "hello", 2: 42, 3: b"raw_bytes"}
encoded = encode(data)
print(f"Encoded: {encoded.hex()}")

decoded = decode(encoded)
print(f"Decoded: {decoded}")

API Reference

TikTokSigner.generate_headers()

TikTokSigner.generate_headers(
    params,          # str | dict  — URL query parameters (required)
    data=None,       # str | bytes | dict — POST body
    device_id=None,  # str — device identifier
    aid=1233,        # int | str — application ID
    lc_id=2142840551,
    sdk_ver="v05.01.02-alpha.7-ov-android",
    sdk_ver_code=83952160,
    version_name="37.0.4",
    version_code=2023700040,
    cookie=None,     # str — cookie string
    unix=None,       # int — unix timestamp (auto if None)
)

Returns: dict with keys:

  • x-ss-req-ticket — request timestamp in milliseconds
  • x-tt-trace-id — trace identifier
  • x-ss-stub — MD5 hash of body (if data provided)
  • x-ladon — Ladon token
  • x-gorgon — Gorgon signature
  • x-khronos — unix timestamp
  • x-argus — Argus token
  • cookie — (if provided)

TikTokSigner.encrypt(data) / TikTokSigner.decrypt(data)

Encrypt/decrypt payloads using TTEncrypt algorithm.

generate_web_headers(url_params, user_agent, referer, ts)

Returns a dict with web-specific headers including msToken, verifyFp, X-Bogus, X-Gnarly, webId.


Default Values (TikTok Android 37.0.4)

Parameter Default
aid 1233
lc_id 2142840551
sdk_ver v05.01.02-alpha.7-ov-android
sdk_ver_code 83952160
version_name 37.0.4
version_code 2023700040

Disclaimer

This library is for educational and research purposes only. Use must comply with TikTok's Terms of Service and applicable laws. The author is not responsible for any misuse.

Metadata

Release files for tiktok-forge 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tiktok-forge 0.0.1
File Size Uploaded
tiktok_forge-0.0.1.tar.gz 38.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tiktok-forge 0.0.1
File Interpreter ABI Platform
tiktok_forge-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 79.3 kB

Release files / tiktok_forge-0.0.1.tar.gz

Download URL tiktok_forge-0.0.1.tar.gz
Size 38.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0293803ba7015d7692d0c97731bfb3305217fad43edb07b4699615db37f07065
BLAKE2b-256 checksum
How to use checksums
d6e2849fa03caa0f43bca87049d5f4959216432fd25c678bd2f77f80a5c3938c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release files / tiktok_forge-0.0.1-py3-none-any.whl

Download URL tiktok_forge-0.0.1-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08350822393d0f1a70967c82089d2d162448fcd974c65ebe0fe35c5a5e88a301
BLAKE2b-256 checksum
How to use checksums
215e876ce229f8ffea4110f72bfc9f92966114c175324a2acbb3a97c2dad7128
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page