fix(tiktok): 修改X-Bogus接口

This commit is contained in:
imgyh 2023-02-13 12:53:18 +08:00
parent ef4fa2b4ba
commit abb9a8e857
5 changed files with 26 additions and 51 deletions

View File

@ -145,6 +145,9 @@ python TikTokCommand.py -l https://live.douyin.com/802939216127 -p /path/to/down
- [ ] 获取分享的音乐链接下的所有作品
- [ ] 获取热搜榜数据
- [ ] 多主页链接批量下载
- [ ] 多线程下载
- [ ] 保存数据至数据库
- [ ] 制作成接口
# 鸣谢

View File

@ -32,9 +32,9 @@ class TikTok(object):
self.utils = Utils()
self.result = Result()
self.headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'referer':'https://www.douyin.com/',
'Cookie': 'msToken=%s;odin_tt=324fb4ea4a89c0c05827e18a1ed9cf9bf8a17f7705fcc793fec935b637867e2a5a9b8168c885554d029919117a18ba69;' % self.utils.generate_random_str(107)
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36',
'referer': 'https://www.douyin.com/',
'Cookie': 'msToken=%s;odin_tt=324fb4ea4a89c0c05827e18a1ed9cf9bf8a17f7705fcc793fec935b637867e2a5a9b8168c885554d029919117a18ba69;' % self.utils.generate_random_str(107)
}
@ -52,7 +52,7 @@ class TikTok(object):
try:
r = requests.get(url=url, headers=self.headers)
except Exception as e:
print('[ 警告 ]:输入链接有误!\r')
print('[ 错误 ]:输入链接有误!\r')
return key_type, key
# 抖音把图集更新为note
@ -80,7 +80,7 @@ class TikTok(object):
key_type = "live"
if key is None or key_type is None:
print('[ 警告 ]:输入链接有误!无法获取 id\r')
print('[ 错误 ]:输入链接有误!无法获取 id\r')
return key_type, key
print('[ 提示 ]:作品或者用户的 id = %s\r' % key)
@ -132,9 +132,12 @@ class TikTok(object):
max_cursor = 0
self.awemeList = []
print("[ 提示 ]:正在获取接口数据请稍后...\r\n")
print("[ 提示 ]:正在获取所有作品数据请稍后...\r")
print("[ 提示 ]:会进行多次请求,等待时间较长...\r\n")
times = 0
while True:
times = times + 1
print("[ 提示 ]:正在进行第 " + str(times) + " 次请求...\r")
if mode == "post":
url = self.urls.USER_POST + self.utils.getXbogus(
url=f'sec_user_id={sec_uid}&count={count}&max_cursor={max_cursor}&aid=1128&version_name=23.5.0&device_platform=android&os_version=2333')
@ -168,7 +171,10 @@ class TikTok(object):
# 退出条件
if datadict["has_more"] != 1:
print("[ 提示 ]:所有作品数据获取完成...\r\n")
break
else:
print("[ 提示 ]:第 " + str(times) + " 次请求成功...\r")
return self.awemeList
@ -191,7 +197,7 @@ class TikTok(object):
return None
if live_json == {} or live_json['status_code'] != 0:
print("[ 警告 ]:接口未返回信息\r")
print("[ 错误 ]:接口未返回信息\r")
return None
# 清空字典
@ -284,7 +290,7 @@ class TikTok(object):
try:
# 使用作品 创建时间+描述 当文件夹
file_name = self.utils.replaceStr(awemeDict["create_time"] + awemeDict["desc"])
file_name = self.utils.replaceStr(awemeDict["create_time"] + " " + awemeDict["desc"])
aweme_path = os.path.join(savePath, file_name)
if not os.path.exists(aweme_path):
os.mkdir(aweme_path)

View File

@ -47,7 +47,7 @@ def getLiveInfo():
if __name__ == "__main__":
# getAwemeInfo()
# getUserInfo()
getLiveInfo()
# getLiveInfo()
pass
################################# 测试命令 ######################################################
# 视频

View File

@ -55,24 +55,7 @@ class Urls(object):
self.FOLLOW_FEED = 'https://www.douyin.com/aweme/v1/web/follow/feed/?'
# X-Bogus Path
self.GET_XB_PATH = 'http://47.115.200.238/xg/path?url='
# X-Bogus Dict
self.GET_XB_DICT = 'http://47.115.200.238/xg/dict/?params='
# X-Bogus Login
self.GET_XB_LOGIN = 'http://47.115.200.238/login'
# X-Bogus Register
self.GET_XB_REGISTER = 'http://47.115.200.238/register'
# X-Bogus Token
self.GET_XB_TOKEN = 'http://47.115.200.238/token'
#######################################################################################
######################################### APP #########################################
# X-Gorgon Path
self.GET_XG_LOGIN = 'http://47.115.200.238/xog/path?url='
self.GET_XB_PATH = 'https://tiktok.199933.xyz/xb'
#######################################################################################

View File

@ -15,7 +15,6 @@ Change Log :
import random
import re
from urllib.parse import urlencode, unquote
import json
import requests
from TikTokUrls import Urls
@ -51,33 +50,17 @@ class Utils(object):
# 去除前后空格
return result
def getXbogus(self, url, cookie=None, referer="https://www.douyin.com/"):
def getXbogus(self, url, headers=None):
urls = Urls()
headers = {
"cookie": cookie,
"referer": referer,
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}
try:
if isinstance(url, dict):
params = eval(unquote(url, 'utf-8'))
url = urlencode(params, safe="=")
response = json.loads(requests.post(
urls.GET_XB_DICT + url,
headers=headers).text)
if isinstance(url, str):
url = url.replace('&', '%26')
response = json.loads(requests.post(
urls.GET_XB_PATH + url,
headers=headers).text)
else:
print('[ 提示 ]:传入的参数有误')
response = json.loads(requests.post(
url= urls.GET_XB_PATH, data={"param" : url}, headers=headers).text)
except Exception as e:
print('[ 错误 ]:%s' % e)
params = response["result"][0]["paramsencode"]
xb = response["result"][0]["X-Bogus"]["0"]
# print('[ 调试 ]:%s' % self.params)
params = response["param"]
xb = response["X-Bogus"]
return params #, xb