tiktok-passport
Version, currently 0.3.03 versions
- 0.3.0latestApr 24, 2021
- 0.2.0not indexedApr 29, 2021
- 0.1.0not indexedApr 29, 2021
github.com/lucasintel/tiktok-passport
Minimal, high-performance docker image that signs TikTok API requests
9 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
tiktok-passport:
github: lucasintel/tiktok-passport
version: ~> 0.3.0Then run:
shards installshard.yml
- Crystal
1.0.0- License
- MIT
- Author
- kandayo <kdy@absolab.xyz>
- Target
tiktok-passportfrom src/entrypoint.cr
Dependencies
Runtime Dependencies
- pool*github: ysbaddaden/pool
- selenium*github: matthewmcgarvey/selenium.cr
README
# Tiktok Passport
Minimal (really, 6 megabytes) docker image that signs Tiktok requests. For now,
it works for my use case. You will have to spin up a pool of selenium
instances.
Tiktok Passport automatically recovers from connection-related failures with
the remote browser. Just make sure to monitor and restart unhealthy/crashed
selenium instances.
To prevent detection, [evasion strategies](https://github.com/kandayo/tiktok-passport/tree/main/src/tiktok_passport/marionette/javascript/evasions)
ported from `puppeteer-extra-plugin-stealth` are included. You can find the
stealth test at the examples folder.
## Minimal setup
```yml
services:
tiktok-passport:
build:
context: .
dockerfile: Dockerfile
image: tiktok-passport:0.3.0
environment:
SELENIUM_BROWSER_URL: "http://chrome:4444/wd/hub"
ports:
- 3000:3000
depends_on:
chrome:
condition: service_healthy
chrome:
image: selenium/standalone-chrome:90.0.4430.85
restart: "always"
environment:
SE_NODE_MAX_SESSIONS: 12
SE_NODE_OVERRIDE_MAX_SESSIONS: "true"
SE_NODE_SESSION_TIMEOUT: 86400
healthcheck:
test: "/opt/bin/check-grid.sh --host 0.0.0.0 --port 4444"
interval: 5s
timeout: 30s
retries: 5
```
## Environment variables
- `POOL_CAPACITY`
- `POOL_TIMEOUT`
- `SELENIUM_BROWSER_URL`
- `PORT`
## Example
### Request:
```
curl -X POST \
-H "Content-type: application/json" \
-d '{"url": "https://m.tiktok.com/api/post/item_list/?aid=1988&secUid=SECUID&count=30&cursor=0"}' \
http://localhost:3000
```
### Response
```json
{
"status": "ok",
"data":{
"signed_at": 1619243929467,
"signature": "_02B4Z6wo00f01oiMkTwAOIBGG5Gn74kktFaIjbWAAMKsaf",
"verify_fp": "verify_knvc19xz_GHZpp3IL_sSnf_4ZTf_AZfo_FNbSIOPCkS00",
"signed_url": "https://m.tiktok.com/api/post/item_list/?aid=1988&secUid=SECUID&count=30&cursor=0&verifyFp=verify_knvc19xz_GHZpp3IL_sSnf_4ZTf_AZfo_FNbSIOPCkS00&_signature=_02B4Z6wo00f01oiMkTwAOIBGG5Gn74kktFaIjbWAAMKsaf",
"navigator":{
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Windows NT 10.0; Win64; x64) Chrome/88.0.4324.96 Safari/537.36",
"browser_name": "Mozilla",
"browser_version": "5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Windows NT 10.0; Win64; x64) Chrome/88.0.4324.96 Safari/537.36",
"browser_language": "en-US",
"browser_platform": "Win32",
"screen_width": 1920,
"screen_height": 1080
}
}
}
```
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
0.3.0- Tagged
- Apr 24, 2021
- Commit
5d39e372ce06- Crystal
1.0.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/lucasintel/tiktok-passport
Metadata
- Created
- Aug 13, 2026
- Updated
- Aug 13, 2026
- Synced
- Aug 13, 2026
- Versions
- 3