Commit ef28a63c by baiquan

update cookies issue

parent 5beb15fb
...@@ -13,6 +13,8 @@ from loguru import logger ...@@ -13,6 +13,8 @@ from loguru import logger
from tenacity import retry, stop_after_attempt, wait_fixed from tenacity import retry, stop_after_attempt, wait_fixed
from tqdm import tqdm from tqdm import tqdm
from common import setup_proxy
DOMAIN = "http://20tools.net" DOMAIN = "http://20tools.net"
HEADERS = { HEADERS = {
...@@ -37,7 +39,7 @@ DEFAULT_HEADER = { ...@@ -37,7 +39,7 @@ DEFAULT_HEADER = {
'sec-fetch-site': 'same-origin', 'sec-fetch-site': 'same-origin',
} }
def download_video(url: str, file_: str,headers: dict, proxies: dict): def download_video(url: str, file_: str,headers: dict):
""" """
下载视频 下载视频
...@@ -47,7 +49,7 @@ def download_video(url: str, file_: str,headers: dict, proxies: dict): ...@@ -47,7 +49,7 @@ def download_video(url: str, file_: str,headers: dict, proxies: dict):
:param file_: 文件地址 :param file_: 文件地址
:return: :return:
""" """
response = requests.get(url, verify=False, stream=True, headers=headers, proxies=proxies) response = requests.get(url, verify=False, stream=True, headers=headers)
with open(file_, "wb") as f: with open(file_, "wb") as f:
for chunk in response.iter_content(chunk_size=1024): for chunk in response.iter_content(chunk_size=1024):
if chunk: f.write(chunk) if chunk: f.write(chunk)
...@@ -223,6 +225,7 @@ class AWSV4Signer: ...@@ -223,6 +225,7 @@ class AWSV4Signer:
class Upload: class Upload:
def __init__(self, task): def __init__(self, task):
self.session = None
self.slices = None self.slices = None
self.session_key = None self.session_key = None
self.upload_id = None self.upload_id = None
...@@ -237,7 +240,7 @@ class Upload: ...@@ -237,7 +240,7 @@ class Upload:
self.headers = task.get('headers') self.headers = task.get('headers')
self.file_path_ = task.get('file_path_') self.file_path_ = task.get('file_path_')
# @retry(stop=stop_after_attempt(5), wait=wait_fixed(1)) @retry(stop=stop_after_attempt(5), wait=wait_fixed(1))
def get_upload_token(self): def get_upload_token(self):
""" """
获取上传token 获取上传token
...@@ -245,11 +248,8 @@ class Upload: ...@@ -245,11 +248,8 @@ class Upload:
:return: :return:
""" """
headers = {**DEFAULT_HEADER, **self.headers} headers = {**DEFAULT_HEADER, **self.headers}
print(self.cookies)
print(headers)
url = 'https://fxg.jinritemai.com/product/video/uploadVideoToken?type=video&useBoe=false&appid=1&_bid=ffa_goods' url = 'https://fxg.jinritemai.com/product/video/uploadVideoToken?type=video&useBoe=false&appid=1&_bid=ffa_goods'
response = requests.get(url,cookies=self.cookies,headers=headers, proxies=self.proxies) response = self.session.get(url, cookies=self.cookies,headers=headers)
print(response.text)
upload_token = response.json()['data']['auth_token'] upload_token = response.json()['data']['auth_token']
if upload_token: if upload_token:
return upload_token return upload_token
...@@ -295,7 +295,7 @@ class Upload: ...@@ -295,7 +295,7 @@ class Upload:
} }
headers = {**headers, **self.headers} headers = {**headers, **self.headers}
response = requests.get('https://vod.bytedanceapi.com/', params=params, headers=headers, proxies=self.proxies, timeout=5) response = self.session.get('https://vod.bytedanceapi.com/', params=params,cookies=self.cookies, headers=headers, timeout=5)
upload_data = response.json() upload_data = response.json()
upload_nodes = upload_data['Result']['InnerUploadAddress']['UploadNodes'] upload_nodes = upload_data['Result']['InnerUploadAddress']['UploadNodes']
if upload_nodes: if upload_nodes:
...@@ -334,7 +334,7 @@ class Upload: ...@@ -334,7 +334,7 @@ class Upload:
'phase': 'init', 'phase': 'init',
} }
url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}?uploads' url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}?uploads'
response = requests.post(url, params=params, headers=headers, proxies=self.proxies, timeout=5) response = self.session.post(url, params=params ,cookies=self.cookies, headers=headers, timeout=5)
upload_id = response.json()['payload']['uploadID'] upload_id = response.json()['payload']['uploadID']
if upload_id: if upload_id:
return upload_id, session_key, auth, store_uri return upload_id, session_key, auth, store_uri
...@@ -379,7 +379,7 @@ class Upload: ...@@ -379,7 +379,7 @@ class Upload:
} }
data = chunks[slice_['part_offset']] data = chunks[slice_['part_offset']]
url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}' url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}'
response = requests.post(url, headers=headers, data=data, params=params, proxies=self.proxies, timeout=60) response = self.session.post(url, headers=headers,cookies=self.cookies, data=data, params=params, timeout=60)
if response.json()['success'] == 0 and response.text: if response.json()['success'] == 0 and response.text:
return response return response
...@@ -414,7 +414,7 @@ class Upload: ...@@ -414,7 +414,7 @@ class Upload:
data = ','.join([f"{s['part_number']}:{s['crc32']}" for s in self.slices]) data = ','.join([f"{s['part_number']}:{s['crc32']}" for s in self.slices])
url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}' url = f'https://tos-d-ct-lf.snssdk.com/{store_uri}'
response = requests.post(url, params=params, headers=headers, data=data, proxies=self.proxies, timeout=5) response = self.session.post(url, params=params,cookies=self.cookies, headers=headers, data=data, timeout=5)
if response.json()['success'] == 0: if response.json()['success'] == 0:
return response return response
...@@ -462,8 +462,8 @@ class Upload: ...@@ -462,8 +462,8 @@ class Upload:
'x-amz-security-token': self.session_token, 'x-amz-security-token': self.session_token,
} }
headers = {**headers, **self.headers} headers = {**headers, **self.headers}
response = requests.post('https://vod.bytedanceapi.com/', params=params, headers=headers, response = self.session.post('https://vod.bytedanceapi.com/',cookies=self.cookies, params=params, headers=headers,
data=data, proxies=self.proxies, timeout=5) data=data, timeout=5)
if response.json()['Result']['Results'][0]: if response.json()['Result']['Results'][0]:
return response.json()['Result']['Results'][0] return response.json()['Result']['Results'][0]
...@@ -473,7 +473,13 @@ class Upload: ...@@ -473,7 +473,13 @@ class Upload:
:return: :return:
""" """
print(self.file_path_) proxies = self.proxies
addr = proxies['addr']
port = proxies['port']
username = proxies['username']
proxies_password = proxies['password']
session = setup_proxy(addr, int(port), username, proxies_password)
self.session = session
self.file_size = os.path.getsize(self.file_path_) self.file_size = os.path.getsize(self.file_path_)
logger.info("开始获取上传token") logger.info("开始获取上传token")
upload_token = self.get_upload_token() upload_token = self.get_upload_token()
...@@ -512,7 +518,7 @@ def upload_video(task): ...@@ -512,7 +518,7 @@ def upload_video(task):
file_path_ = os.path.join(VIDEO_PATH, file_name) file_path_ = os.path.join(VIDEO_PATH, file_name)
if not os.path.exists(file_path_): if not os.path.exists(file_path_):
logger.info(f"文件 {file_name} 不存在,开始下载") logger.info(f"文件 {file_name} 不存在,开始下载")
download_video(task['video_url'], file_path_, headers=task['headers'], proxies=task['proxies']) download_video(task['video_url'], file_path_, headers=task['headers'])
logger.success("下载完成") logger.success("下载完成")
video_duration = get_video_duration(file_path_) video_duration = get_video_duration(file_path_)
if video_duration > 60: if video_duration > 60:
...@@ -537,9 +543,11 @@ if __name__ == '__main__': ...@@ -537,9 +543,11 @@ if __name__ == '__main__':
task = { task = {
'video_url': 'https://cloud.video.taobao.com/play/u/2200778999140/p/2/e/6/t/1/504992565058.mp4?appKey=38829', 'video_url': 'https://cloud.video.taobao.com/play/u/2200778999140/p/2/e/6/t/1/504992565058.mp4?appKey=38829',
'file_name': '8d481cb3103b082871bc20dc50fba5f4.mp4', 'file_name': '8d481cb3103b082871bc20dc50fba5f4.mp4',
'proxies': { "proxies": {
"http": "socks5h://UKZ5TYSJUQNB:3X4Q79VMDPK0@58.251.251.226:9001", "addr": "58.251.251.226",
"https": "socks5h://UKZ5TYSJUQNB:3X4Q79VMDPK0@58.251.251.226:9001" "port": "9001",
"username": "UKZ5TYSJUQNB",
"password": "3X4Q79VMDPK0"
}, },
'cookie': { 'cookie': {
'PHPSESSID': 'ea6b555fb9074efe8cda5f15a4e1095e', 'PHPSESSID': 'ea6b555fb9074efe8cda5f15a4e1095e',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment