Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
doudian-py
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
baiquan
doudian-py
Commits
ef28a63c
Commit
ef28a63c
authored
Apr 30, 2025
by
baiquan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update cookies issue
parent
5beb15fb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
18 deletions
+26
-18
upload_video.py
+26
-18
No files found.
upload_video.py
View file @
ef28a63c
...
@@ -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
.
proxie
s
,
timeout
=
5
)
response
=
self
.
session
.
get
(
'https://vod.bytedanceapi.com/'
,
params
=
params
,
cookies
=
self
.
cookies
,
headers
=
header
s
,
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
.
proxie
s
,
timeout
=
5
)
response
=
self
.
session
.
post
(
url
,
params
=
params
,
cookies
=
self
.
cookies
,
headers
=
header
s
,
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
.
proxie
s
,
timeout
=
60
)
response
=
self
.
session
.
post
(
url
,
headers
=
headers
,
cookies
=
self
.
cookies
,
data
=
data
,
params
=
param
s
,
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'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment