carcabot / tiktok-signature

Generate tiktok signature token using node
752 stars 286 forks source link

Has anyone figured out how often you can send a request to get TikToks from a profile before TikTok blocks you? #105

Closed robindz closed 3 years ago

robindz commented 3 years ago

E.g.:

1 request / 5 min = Never blocked 1 request / 2 min = Blocked after 12 hours and have to wait 24 hours for the block to go away

nuqz commented 3 years ago

The same problem here. According to my logs I've been banned after 10 minutes (without any requests limits). After that, it is possible to get a response only from the main page, hashtag and a trending videos (aka /foryou). I'll measure the time until IP will be unblocked.

Update 1

Have noticed lots of errors in JS console:

Access to XMLHttpRequest at 'https://m.tiktok.com/api/...blah...blah...blah...'
from origin 'https://www.tiktok.com' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header is present on the requested resource.

When I disable CORS policies with --disable-web-security option - nothing works, except homepage. It turns out that on some pages (including /foryou) access is denied using JavaScript. I can see some videos in the feed initially, but Page not available appears soon. When I open user page (like .../@rihanna) - the service responds with status 200, but page content is totally empty (0 Bytes).

Update 2

It seems that the service blocks an IP address for more than 24 hours. I'm not able to measure the blocking time more accurately because my IP changes too often.

Update 3

A software with about following rates:

HTML requests (something simple like GET .../@someuser - max 15 requests per 30 seconds period (over 1k total requests) API requests (GET .../api/item_list/...) - max 15 requests per 30 seconds period (about 100 total requests) Video downloads - unlimited (over 1k total downloaded videos)

worked more than one hour without blocking (even captchas did not appear). I think it's a good point to start experiments and increase rates. upd - banned 10 minutes later, so totally after about 1h and 10min.

@robindz, could you also join the experiments and try different options?

Update 4

2h 52m with rates: HTML - 10 requests per 30 seconds (2.1k total) API - 10 requests per 30 seconds (183 total) Downloads - 100 requests per 250 seconds (1.7k total)

New insight here.

Update 5

3h 28m with the rates above + update cookies every 10 minutes. HTML - 2.7k total API - 217 total Downloads 2.1k total

In case 4 and case 5, IP have been unblocked after about 12 hours.