Commit ef28a63c by baiquan

update cookies issue

parent 5beb15fb
......@@ -13,6 +13,8 @@ from loguru import logger
from tenacity import retry, stop_after_attempt, wait_fixed
from tqdm import tqdm
from common import setup_proxy
DOMAIN = "http://20tools.net"
HEADERS = {
......@@ -37,7 +39,7 @@ DEFAULT_HEADER = {
'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):
:param file_: 文件地址
: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:
for chunk in response.iter_content(chunk_size=1024):
if chunk: f.write(chunk)
......@@ -223,6 +225,7 @@ class AWSV4Signer:
class Upload:
def __init__(self, task):
self.session = None
self.slices = None
self.session_key = None
self.upload_id = None
......@@ -237,7 +240,7 @@ class Upload:
self.headers = task.get('headers')
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):
"""
获取上传token
......@@ -245,11 +248,8 @@ class Upload:
:return:
"""
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'
response = requests.get(url,cookies=self.cookies,headers=headers, proxies=self.proxies)
print(response.text)
response = self.session.get(url, cookies=self.cookies,headers=headers)
upload_token = response.json()['data']['auth_token']
if upload_token:
return upload_token
......@@ -295,7 +295,7 @@ class Upload:
}
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_nodes = upload_data['Result']['InnerUploadAddress']['UploadNodes']
if upload_nodes:
......@@ -334,7 +334,7 @@ class Upload:
'phase': 'init',
}
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']
if upload_id:
return upload_id, session_key, auth, store_uri
......@@ -379,7 +379,7 @@ class Upload:
}
data = chunks[slice_['part_offset']]
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:
return response
......@@ -414,7 +414,7 @@ class Upload:
data = ','.join([f"{s['part_number']}:{s['crc32']}" for s in self.slices])
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:
return response
......@@ -462,8 +462,8 @@ class Upload:
'x-amz-security-token': self.session_token,
}
headers = {**headers, **self.headers}
response = requests.post('https://vod.bytedanceapi.com/', params=params, headers=headers,
data=data, proxies=self.proxies, timeout=5)
response = self.session.post('https://vod.bytedanceapi.com/',cookies=self.cookies, params=params, headers=headers,
data=data, timeout=5)
if response.json()['Result']['Results'][0]:
return response.json()['Result']['Results'][0]
......@@ -473,7 +473,13 @@ class Upload:
: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_)
logger.info("开始获取上传token")
upload_token = self.get_upload_token()
......@@ -512,7 +518,7 @@ def upload_video(task):
file_path_ = os.path.join(VIDEO_PATH, file_name)
if not os.path.exists(file_path_):
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("下载完成")
video_duration = get_video_duration(file_path_)
if video_duration > 60:
......@@ -537,9 +543,11 @@ if __name__ == '__main__':
task = {
'video_url': 'https://cloud.video.taobao.com/play/u/2200778999140/p/2/e/6/t/1/504992565058.mp4?appKey=38829',
'file_name': '8d481cb3103b082871bc20dc50fba5f4.mp4',
'proxies': {
"http": "socks5h://UKZ5TYSJUQNB:3X4Q79VMDPK0@58.251.251.226:9001",
"https": "socks5h://UKZ5TYSJUQNB:3X4Q79VMDPK0@58.251.251.226:9001"
"proxies": {
"addr": "58.251.251.226",
"port": "9001",
"username": "UKZ5TYSJUQNB",
"password": "3X4Q79VMDPK0"
},
'cookie': {
'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