Skip to content

Commit 565d222

Browse files
committed
Adapting to changes in TikTok API
1 parent 7157117 commit 565d222

File tree

3 files changed

+43
-14
lines changed

3 files changed

+43
-14
lines changed

TikTokAPI/tiktok_browser.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import os
22
import asyncio
33
from pyppeteer import launch
4-
from pyppeteer_stealth import stealth
54
from .utils import python_list2_web_list
65

76

@@ -58,7 +57,9 @@ async def async_fetch_auth_params(self, url, language):
5857
browser = await launch(self.options)
5958
page = await browser.newPage()
6059

61-
await stealth(page)
60+
await page.evaluateOnNewDocument("""() => {
61+
delete navigator.__proto__.webdriver;
62+
}""")
6263

6364
await page.setUserAgent(self.userAgent)
6465
await page.setExtraHTTPHeaders({

TikTokAPI/tiktokapi.py

+39-11
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,67 @@
11
import os
2+
import random
3+
import urllib.parse
24
from .utils import random_key, build_get_url, get_req_json, get_req_content, get_req_text
35
from .tiktok_browser import TikTokBrowser
46

57

68
class TikTokAPI(object):
79

8-
def __init__(self, language='en', region='IN', cookie=None):
10+
def __init__(self, language='en', browser_lang="en-US", timezone="Asia/Kolkata", region='IN', cookie=None):
911
self.base_url = "https://t.tiktok.com/api"
10-
self.user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) " \
11-
"Chrome/83.0.4103.106 Safari/537.36"
12+
self.user_agent = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:79.0) Gecko/20100101 Firefox/79.0"
1213

1314
self.headers = {
14-
"User-Agent": self.user_agent
15+
"User-Agent": self.user_agent,
1516
}
1617
self.language = language
18+
self.browser_lang = browser_lang
19+
self.timezone = timezone
1720
self.region = region
21+
1822
if cookie is None:
1923
self.verifyFp = random_key(16)
2024
else:
2125
self.verifyFp = cookie
2226
self.default_params = {
27+
"aid": "1988",
28+
"app_name": "tiktok_web",
29+
"device_platform": "web",
30+
"referer": "",
31+
"user_agent": urllib.parse.quote_plus(self.user_agent),
32+
"cookie_enabled": "true",
33+
"screen_width": "1920",
34+
"screen_height": "1080",
35+
"browser_language": self.browser_lang,
36+
"browser_platform": "Linux+x86_64",
37+
"browser_name": "Mozilla",
38+
"browser_version": "5.0+(X11)",
39+
"browser_online": "true",
40+
"timezone_name": self.timezone,
41+
# "page_referer": "https://www.tiktok.com/foryou?lang=en",
42+
"priority_region": self.region,
43+
44+
"appId": "1180",
45+
"region": self.region,
46+
"appType": "t",
47+
48+
"isAndroid": "false",
49+
"isMobile": "false",
50+
"isIOS": "false",
51+
"OS": "linux",
52+
"tt-web-region": self.region,
53+
2354
"language": self.language,
2455
"verifyFp": self.verifyFp
2556
}
2657
self.signature_key = "_signature"
58+
self.did_key = "did"
2759
self.tiktok_browser = TikTokBrowser(self.user_agent)
2860

2961
def send_get_request(self, url, params, extra_headers=None):
3062
url = build_get_url(url, params)
63+
did = str(random.randint(10000, 999999999))
64+
url = build_get_url(url, {self.did_key: did}, append=True)
3165
signature = self.tiktok_browser.fetch_auth_params(url, language=self.language)
3266
url = build_get_url(url, {self.signature_key: signature}, append=True)
3367
if extra_headers is None:
@@ -45,13 +79,11 @@ def getTrending(self, count=30):
4579
url = self.base_url + "/item_list/"
4680
req_default_params = {
4781
"id": "1",
48-
"type": "1",
82+
"type": "5",
4983
"secUid": "",
5084
"maxCursor": "0",
5185
"minCursor": "0",
5286
"sourceType": "12",
53-
"appId": "1180",
54-
"region": self.region
5587
}
5688
params = {
5789
"count": str(count)
@@ -83,8 +115,6 @@ def getVideosByUserName(self, user_name, count=30):
83115
"maxCursor": "0",
84116
"minCursor": "0",
85117
"sourceType": "8",
86-
"appId": "1180",
87-
"region": self.region
88118
}
89119
params = {
90120
"id": user_id,
@@ -109,8 +139,6 @@ def getLikesByUserName(self, user_name, count=30):
109139
"maxCursor": "0",
110140
"minCursor": "0",
111141
"sourceType": "9",
112-
"appId": "1180",
113-
"region": self.region
114142
}
115143
params = {
116144
"id": user_id,

0 commit comments

Comments
 (0)