All Projects → carcabot → Tiktok Signature

carcabot / Tiktok Signature

Generate tiktok signature token using node

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Tiktok Signature

Rize
High-level, fluent and chainable API provided library for puppeteer.
Stars: ✭ 147 (-27.23%)
Mutual labels:  puppeteer
Reactopt
A CLI React performance optimization tool that identifies potential unnecessary re-rendering
Stars: ✭ 1,975 (+877.72%)
Mutual labels:  puppeteer
Headless Recorder
Chrome extension that records your browser interactions and generates a Playwright or Puppeteer script.
Stars: ✭ 13,786 (+6724.75%)
Mutual labels:  puppeteer
Nike Buy Bot
A bot using Node.js / puppeteer that buys a Nike shoe when it drops
Stars: ✭ 149 (-26.24%)
Mutual labels:  puppeteer
Twitch Watcher
Automatic watching the twitch to get Valorant drop
Stars: ✭ 162 (-19.8%)
Mutual labels:  puppeteer
Whatsapp Bot
BOT - WhatsApp Web in TypeScript
Stars: ✭ 170 (-15.84%)
Mutual labels:  puppeteer
Puppeteer Sharp
Headless Chrome .NET API
Stars: ✭ 2,122 (+950.5%)
Mutual labels:  puppeteer
Puppeteer Recaptcha Solver
Recaptcha solver for puppeteer
Stars: ✭ 195 (-3.47%)
Mutual labels:  puppeteer
Visible
🦉 Accessibility testing framework at the next level
Stars: ✭ 164 (-18.81%)
Mutual labels:  puppeteer
Chrome Aws Lambda
Chromium Binary for AWS Lambda and Google Cloud Functions
Stars: ✭ 2,502 (+1138.61%)
Mutual labels:  puppeteer
Socialmanagertools Docs
📚 Documentation of Social Manager Tools
Stars: ✭ 151 (-25.25%)
Mutual labels:  puppeteer
Secret Agent
The web browser that's built for scraping.
Stars: ✭ 151 (-25.25%)
Mutual labels:  puppeteer
Examples
Use case-driven examples for using Puppeteer and headless chrome
Stars: ✭ 2,125 (+951.98%)
Mutual labels:  puppeteer
Google Meet Scheduler
😴 Attends classes for you.
Stars: ✭ 150 (-25.74%)
Mutual labels:  puppeteer
Phantomas
Headless Chromium-based web performance metrics collector and monitoring tool
Stars: ✭ 2,191 (+984.65%)
Mutual labels:  puppeteer
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites
Stars: ✭ 1,853 (+817.33%)
Mutual labels:  puppeteer
Puppeteer Recorder
Record animations using puppeteer. Based on electron-recorder.
Stars: ✭ 169 (-16.34%)
Mutual labels:  puppeteer
Equa11y
A stream-lined command line tool for developers to easily run accessibility testing locally through axe-core and puppeteer.
Stars: ✭ 201 (-0.5%)
Mutual labels:  puppeteer
Jvppeteer
Headless Chrome For Java (Java 爬虫)
Stars: ✭ 193 (-4.46%)
Mutual labels:  puppeteer
Linkedin Profile Scraper
🕵️‍♂️ LinkedIn profile scraper returning structured profile data in JSON. Works in 2020.
Stars: ✭ 171 (-15.35%)
Mutual labels:  puppeteer

NPM npm

Installation

npm i tiktok-signature

Buy Me A Coffee

Usage

Generating signatures dynamically

To generate signatures dynamically this repo comes with an integrated http server (listen.js) which accepts POST requests to http://localhost:8080/signature with url in request body.

You have to start the server

npm start

Request signature

curl -d "https://m.tiktok.com/share/item/list?secUid=&id=&type=5&count=30&minCursor=0&maxCursor=0&shareUid=" http://localhost:8080/signature

Docker

Build
docker build . -t tiktok-signature
Run
docker run -p 8080:8080 -v $(pwd):/usr/app tiktok-signature

tac token can expire and signatures are no longer valid, to avoid this uncomment the following lines in listen.js.

// setTimeout(function () {
//   server.close(() => {
//     console.log("Server shutdown completed.");
//     process.exit(1);
//   });
// }, 1 * 60 * 60 * 1000);

Module

const Signer = require("tiktok-signature"); // Import package

const signer = new Signer(); // Create new signer
await signer.init(); // Create page with. Returns promise

const signature = await signer.sign("tiktok url"); // Get sign for your url. Returns promise
const token = await signer.getVerifyFp(); // Get verification token for your url. Returns promise

await signer.close(); // Close browser. Returns promise

You can pass your desired User-Agent and tac on class creation.

new Signer("Mozilla"); // Set User-Agent to Mozilla
new Signer(null, "123"); // Set tac to 123

CLI

Install dependencies

npm i playwright

Now you can generate the token using

node browser.js "https://m.tiktok.com/api/item_list/?count=30&id=1&type=5&secUid=&maxCursor=1&minCursor=0&sourceType=12&appId=1233"

The response token should look like this

[email protected]: {"signature":"DujjbAAgEBW5rRjddk.Jbw7o4nAAFAo","verifyFp":"verify_kamf6ehv_80g0FE87_GAoN_4PgQ_9w6P_xgcNXK53gx2W"}

Fetch service url

Trending or VideoFeed

https://m.tiktok.com/api/item_list/?count=30&id=1&type=5&secUid=&maxCursor=1&minCursor=0&sourceType=12&appId=1233

Video feed

https://m.tiktok.com/node/video/feed

Testing

You can test it using

import requests

signature = "oKxAeAAgEBgX6bvJMQKua6CsQWAAP4r"
verifyFp = ""

referer = "https://www.tiktok.com/@ondymikula/video/6757762109670477061"

url = "https://m.tiktok.com/api/item_list/?count=30&id=1&type=5&secUid=&maxCursor=1&minCursor=0&sourceType=12&appId=1233" + \
    "&verifyFp=" + verifyFp + \
    "&_signature=" + signature
request = requests.get(url, headers={"method": "GET",
                                "accept-encoding": "gzip, deflate, br",
                                "Referer": referer,
                                "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
                                })
data = request.json()
print(data)

NOTE

It's very important that the userAgent be the same when generate and when request for response.


Buy Me A Coffee

Contributing

If you have a better improvement to this code, let me know ;)

Hope it helps.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].