@@ -26,10 +26,18 @@ def __init__(self, language='en', region='IN', cookie=None):
2626 self .signature_key = "_signature"
2727 self .tiktok_browser = TikTokBrowser (self .user_agent )
2828
29- def send_get_request (self , url , params ):
29+ def send_get_request (self , url , params , extra_headers = None ):
3030 url = build_get_url (url , params )
3131 signature = self .tiktok_browser .fetch_auth_params (url , language = self .language )
3232 url = build_get_url (url , {self .signature_key : signature }, append = True )
33+ if extra_headers is None :
34+ headers = self .headers
35+ else :
36+ headers = {}
37+ for key , val in extra_headers .items ():
38+ headers [key ] = val
39+ for key , val in self .headers .items ():
40+ headers [key ] = val
3341 data = get_req_json (url , params = None , headers = self .headers )
3442 return data
3543
@@ -63,7 +71,12 @@ def getUserByName(self, user_name):
6371 params [key ] = val
6472 return self .send_get_request (url , params )
6573
66- def getUserVideos (self , user_id , secUid , count = 30 ):
74+ def getVideosByUserName (self , user_name , count = 30 ):
75+ user_data = self .getUserByName (user_name )
76+ user_obj = user_data ["userInfo" ]["user" ]
77+ user_id = user_obj ["id" ]
78+ secUid = user_obj ["secUid" ]
79+
6780 url = self .base_url + "/item_list/"
6881 req_default_params = {
6982 "type" : "1" ,
@@ -83,3 +96,101 @@ def getUserVideos(self, user_id, secUid, count=30):
8396 for key , val in self .default_params .items ():
8497 params [key ] = val
8598 return self .send_get_request (url , params )
99+
100+ def getLikesByUserName (self , user_name , count = 30 ):
101+ user_data = self .getUserByName (user_name )
102+ user_obj = user_data ["userInfo" ]["user" ]
103+ user_id = user_obj ["id" ]
104+ secUid = user_obj ["secUid" ]
105+
106+ url = self .base_url + "/item_list/"
107+ req_default_params = {
108+ "type" : "2" ,
109+ "maxCursor" : "0" ,
110+ "minCursor" : "0" ,
111+ "sourceType" : "9" ,
112+ "appId" : "1180" ,
113+ "region" : self .region
114+ }
115+ params = {
116+ "id" : user_id ,
117+ "secUid" : secUid ,
118+ "count" : str (count )
119+ }
120+ for key , val in req_default_params .items ():
121+ params [key ] = val
122+ for key , val in self .default_params .items ():
123+ params [key ] = val
124+ return self .send_get_request (url , params )
125+
126+ def getHashTag (self , hashTag ):
127+ url = self .base_url + "/challenge/detail/"
128+ params = {
129+ "challengeName" : hashTag .replace ("#" , "" )
130+ }
131+ for key , val in self .default_params .items ():
132+ params [key ] = val
133+ return self .send_get_request (url , params )
134+
135+ def getVideosByHashTag (self , hashTag , count = 30 ):
136+ hashTag = hashTag .replace ("#" , "" )
137+ hashTag_obj = self .getHashTag (hashTag )
138+ hashTag_id = hashTag_obj ["challengeInfo" ]["challenge" ]["id" ]
139+ url = "https://m.tiktok.com/share/item/list"
140+ req_default_params = {
141+ "secUid" : "" ,
142+ "type" : "3" ,
143+ "minCursor" : "0" ,
144+ "maxCursor" : "0" ,
145+ "shareUid" : "" ,
146+ "recType" : ""
147+ }
148+ params = {
149+ "id" : str (hashTag_id ),
150+ "count" : str (count ),
151+ }
152+ for key , val in req_default_params .items ():
153+ params [key ] = val
154+ for key , val in self .default_params .items ():
155+ params [key ] = val
156+ extra_headers = {"Referer" : "https://www.tiktok.com/tag/" + str (hashTag )}
157+ return self .send_get_request (url , params , extra_headers = extra_headers )
158+
159+ def getMusic (self , music_id ):
160+ url = self .base_url + "/music/detail/"
161+ params = {
162+ "musicId" : music_id
163+ }
164+ for key , val in self .default_params .items ():
165+ params [key ] = val
166+ return self .send_get_request (url , params )
167+
168+ def getVideosByMusic (self , music_id , count = 30 ):
169+ url = "https://m.tiktok.com/share/item/list"
170+ req_default_params = {
171+ "secUid" : "" ,
172+ "type" : "4" ,
173+ "minCursor" : "0" ,
174+ "maxCursor" : "0" ,
175+ "shareUid" : "" ,
176+ "recType" : ""
177+ }
178+ params = {
179+ "id" : str (music_id ),
180+ "count" : str (count ),
181+ }
182+ for key , val in req_default_params .items ():
183+ params [key ] = val
184+ for key , val in self .default_params .items ():
185+ params [key ] = val
186+ extra_headers = {"Referer" : "https://www.tiktok.com/music/original-sound-" + str (music_id )}
187+ return self .send_get_request (url , params , extra_headers = extra_headers )
188+
189+ def getVideoById (self , video_id ):
190+ url = self .base_url + "/item/detail/"
191+ params = {
192+ "itemId" : str (video_id )
193+ }
194+ for key , val in self .default_params .items ():
195+ params [key ] = val
196+ return self .send_get_request (url , params )
0 commit comments