How to Collect Data from TikTok

How to scrape TikTok videos posted or liked by a user, collect a large user list from seed accounts, and collect trending videos all with a simple API.

There are a lot of news related to TikTok selling to US companies and the issue of scraping TikTok data becomes more actual due to the possible closing of the service.

In short, TikTok now has a sizeable real-world influence, especially considering that a typical user spends almost an hour per day watching videos on the platform. With this in mind, it is important to understand what TikTok shows to millions of eyeballs every day and to do that, we will need some data.

So in this guide, we’d like to introduce the way of collecting useful data from this media service using the Python library TikTokApi. The following topics will be covered:

  1. 👤 Collecting videos posted by a user
  2. ❤️ Collecting videos liked by a user
  3. ️️🏷️ Collecting videos by hashtag
  4. 📈 Collecting trending videos
  5. 🧑🏽‍🤝‍🧑🏽 Collecting a list of users (by a seed account)

0. 🤓 Prepare the dependencies

For not to rewrite all the simple steps, please, check out the official TikTokApi Github repository to be up to date: https://github.com/davidteather/TikTok-Api#getting-started

Also, to start scraping in scale we’d like to suggest using proxies to avoid TikTok ban. Check our free proxies list: https://scrapingant.com/free-proxies/

1. 👤 Collecting videos posted by a user

To scrape videos from the Kourtney Kardashian – @kourtneykardashian TikTok account, here is what we need to do in Python:


from TikTokApi import TikTokApi
api = TikTokApi()
n_videos = 100
username = 'kourtneykardashian'
user_videos = api.byUsername(username, count=n_videos)

print(user_videos)

The user_videos object is now a list of 100 video dictionaries, and the print(user_videos) output will look like the following:


[
   {
      "id":"6842416492261248262",
      "desc":"",
      "createTime":1593124239,
      "video":{
         "id":"awesome",
         "height":1024,
         "width":576,
         "duration":50,
         "ratio":"720p",
         "cover":"https://p16-sign-sg.tiktokcdn.com/obj/tos-maliva-p-0068/4b45d1820df44e81971cb2981f159cf8_1593124242?x-expires=1600174800&x-signature=anmH2YurlaeKKYUv3fbXt0IIcEA%3D",
         "originCover":"https://p16-sign-sg.tiktokcdn.com/obj/tos-maliva-p-0068/f4521a4cf921460e908d300033f13b3e_1593124241?x-expires=1600174800&x-signature=fJrnLur6fsrLdLzRrPMmRk2USrc%3D",
         "dynamicCover":"https://p16-sign-sg.tiktokcdn.com/obj/tos-maliva-p-0068/abb62e51195f430daf261120aed1a196_1593124242?x-expires=1600174800&x-signature=QW9I2K%2BosgTDSb5wnaBC0avUuQE%3D",
         "playAddr":"https://v77.tiktokcdn.com/81609c19fb240081e71e7a1ddebc7435/5f5e7872/video/tos/useast2a/tos-useast2a-pve-0068/f44d75f329f74133a9005e0c53303ab0/?a=1233&br=2128&bt=1064&cr=0&cs=0&cv=1&dr=0&ds=3&er=&l=202009131351280101901860143105F323&lr=tiktok_m&mime_type=video_mp4&qs=0&rc=anVubmY8a3dsdTMzZjczM0ApNzlnNzlpPDw5N2ZoPGZpZmdnNWowXmleXm5fLS0wMTZzcy4tYl4uXzFiMGEzMTJhX2I6Yw%3D%3D&vl=&vr=",
         "downloadAddr":"https://v77.tiktokcdn.com/81609c19fb240081e71e7a1ddebc7435/5f5e7872/video/tos/useast2a/tos-useast2a-pve-0068/f44d75f329f74133a9005e0c53303ab0/?a=1233&br=2128&bt=1064&cr=0&cs=0&cv=1&dr=0&ds=3&er=&l=202009131351280101901860143105F323&lr=tiktok_m&mime_type=video_mp4&qs=0&rc=anVubmY8a3dsdTMzZjczM0ApNzlnNzlpPDw5N2ZoPGZpZmdnNWowXmleXm5fLS0wMTZzcy4tYl4uXzFiMGEzMTJhX2I6Yw%3D%3D&vl=&vr=",
         "shareCover":[
....
]

2. ❤️ Collecting videos liked by a user

Let’s continue working with Kourtney Kardashian TikTok account and check what videos have been liked by this account:


from TikTokApi import TikTokApi
api = TikTokApi()
n_videos = 100
username = 'kourtneykardashian'

liked_videos = api.userLikedbyUsername(username, count=n_videos)

print(liked_videos)

3. ️️🏷️ Collecting videos by hashtag

Let’s check out what videos we can scape by the #kardashian hashtag:


from TikTokApi import TikTokApi
api = TikTokApi()
n_videos = 100
hashtag = 'kardashian'

hashtag_videos = api.byHashtag(hashtag, count=n_videos)

print(hashtag_videos)

4. 📈 Collecting trending videos

Maybe you just need to collect trending videos for content analysis. The API makes that pretty simple:


from TikTokApi import TikTokApi
api = TikTokApi()
n_videos = 100
trending_videos = api.trending(count=n_videos)

print(trending_videos)

5. 🧑🏽‍🤝‍🧑🏽 Collecting a list of users by a seed account

Probably the most interesting part of the analysis and machine learning experiments. So, for example, we’d like to get all suggested users for Kourtney Kardashian for further retrieving of TikToks:


from TikTokApi import TikTokApi
api = TikTokApi()
n_suggestions = 100
username = 'kourtneykardashian'
user_id = api.getUser(username)['userInfo']['user']['id']
suggested = api.getSuggestedUsersbyID(count=n_suggestions, user_id=user_id)

print(suggested)

Summary

TikTok provides a large amount of useful data that can be converted into a machine learning dataset or used for manual analysis. Also, media research allows an understanding of trends dynamic for creating the most popular account.

Close Bitnami banner
Bitnami