I've added my video downloader function in video_downloader.py
and the library's video info getter, that is, getVideoById
now works within an async code without error. Just small changes, nothing more.
Don't use proxies when using the requests
library. I've used psiphon when I was testing this library. It was quite a headache to try to get the code work, but I just give up. And the headless chromium wouldn't start too because of proxies at 222nd line of the code — get_ws_endpoint
in launcher.py
.
This is an unofficial TikTok Api python wrapper. I have an App using this API, and thus will constantly keep updating this wrapper
This implementation is inspired by TikTokApi, but runs faster.
To get started using this API, follow the instructions below.
Pip
pip install PyTikTokAPI
Install from source
git clone https://github.com/avilash/TikTokAPI-Python.git
python setup.py install
Import
from TikTokAPI import TikTokAPI
Get your keys from Cookie. You can get them from the Applications tab in Chrome developer console.
By default it used hardcoded values which may not work after some time.
The keys to extract are s_v_web_id
and tt_webid
cookie = {
"s_v_web_id": "<your_key>",
"tt_webid": "<your_key>"
}
Get the most trending Videos on TikTok
api = TikTokAPI(cookie=cookie)
retval = api.getTrending(count=5)
Get a user by name
api = TikTokAPI(cookie=cookie)
user_obj = api.getUserByName("fcbarcelona")
Get videos of a user
api = TikTokAPI(cookie=cookie)
user_videos = api.getVideosByUserName("fcbarcelona")
Get likes of a user
api = TikTokAPI(cookie=cookie)
user_videos = api.getLikesByUserName("fcbarcelona")
This section contains details about the parameters of each function and what it returns
Inputs
- language - Self explanatory
- region - Self explanatory
- cookie - The TikTok Cookie containing the parameter s_v_web_id. If not provided, the parameter will be generated.
__init__(self, language='en', region='IN', cookie=None)
Inputs
- count - Number of videos to fetch
getTrending(self, count=30)
Inputs
- user_name - Username, eg - fcbarcelona
getUserByName(self, user_name)
Inputs
- user_name - Username, eg - fcbarcelona
- count - Number of videos to fetch
getVideosByUserName(self, user_name, count=30)
Inputs
- user_name - Username, eg - fcbarcelona
- count - Number of videos to fetch
getLikesByUserName(self, user_name, count=30)
Inputs
- hashTag - HashTag, eg - #fcbarcelona
getHashTag(self, hashTag)
Inputs
- hashTag - HashTag, eg - #fcbarcelona
- count - Number of videos to fetch
getVideosByHashTag(self, hashTag, count=30)
Inputs
- music_id - Music Id, eg - 6704854531001289474
getMusic(self, music_id)
Inputs
- music_id - Music Id, eg - 6704854531001289474
- count - Number of videos to fetch
getVideosByMusic(self, music_id, count=30)
Inputs
- video_id - Video Id, eg - 6843481669886954757
getVideoById(self, video_id)
Inputs
- video_id - Video Id, eg - 6843481669886954757
- save_path - Path where the downloaded video should be saved
downloadVideoById(self, video_id, save_path)
Inputs
- video_id - Video Id, eg - 6843481669886954757
- save_path - Path where the downloaded video should be saved
downloadVideoByIdNoWatermark(self, video_id, save_path)
- Avilash Kumar - avilash
This project is licensed under the MIT License - see the LICENSE file for details