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
d660c663
Commit
d660c663
authored
Apr 30, 2025
by
baiquan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add change_video_status
parent
ef28a63c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
101 additions
and
29 deletions
+101
-29
upload_video.py
+101
-29
No files found.
upload_video.py
View file @
d660c663
...
...
@@ -15,8 +15,6 @@ from tqdm import tqdm
from
common
import
setup_proxy
DOMAIN
=
"http://20tools.net"
HEADERS
=
{
"Content-Type"
:
"application/json"
,
"Accept"
:
"application/json"
,
...
...
@@ -235,25 +233,36 @@ class Upload:
self
.
session_token
=
None
self
.
access_key_id
=
None
self
.
file_size
=
None
self
.
file_name
=
None
self
.
proxies
=
task
.
get
(
"proxies"
)
self
.
cookies
=
task
.
get
(
'cookie'
)
self
.
headers
=
task
.
get
(
'headers'
)
self
.
file_path_
=
task
.
get
(
'file_path_'
)
@retry
(
stop
=
stop_after_attempt
(
5
),
wait
=
wait_fixed
(
1
))
def
get_upload_token
(
self
):
def
get_upload_token
(
self
,
upload_id
=
None
):
"""
获取上传token
:return:
"""
headers
=
{
**
DEFAULT_HEADER
,
**
self
.
headers
}
url
=
'https://fxg.jinritemai.com/product/video/uploadVideoToken?type=video&useBoe=false&appid=1&_bid=ffa_goods'
response
=
self
.
session
.
get
(
url
,
cookies
=
self
.
cookies
,
headers
=
headers
)
upload_token
=
response
.
json
()[
'data'
][
'auth_token'
]
if
upload_id
:
params
=
{
'vid'
:
upload_id
,
'appid'
:
'1'
,
}
else
:
params
=
{
'appid'
:
'1'
,
}
url
=
f
'https://fxg.jinritemai.com/product/video/uploadVideoToken'
response
=
self
.
session
.
get
(
url
,
cookies
=
self
.
cookies
,
headers
=
headers
,
params
=
params
)
upload_token
=
response
.
json
()[
'data'
]
if
upload_token
:
return
upload_token
@retry
(
stop
=
stop_after_attempt
(
5
),
wait
=
wait_fixed
(
1
))
def
get_upload_nodes
(
self
):
"""
...
...
@@ -464,13 +473,49 @@ class Upload:
headers
=
{
**
headers
,
**
self
.
headers
}
response
=
self
.
session
.
post
(
'https://vod.bytedanceapi.com/'
,
cookies
=
self
.
cookies
,
params
=
params
,
headers
=
headers
,
data
=
data
,
timeout
=
5
)
logger
.
info
(
response
.
text
)
if
response
.
json
()[
'Result'
][
'Results'
][
0
]:
return
response
.
json
()[
'Result'
][
'Results'
][
0
]
def
change_video_status
(
self
,
video_id
,
video_name
):
"""
更改上传视频状态
:return:
"""
params
=
{
'syncToMaterial'
:
'true'
,
'appid'
:
'1'
,
}
json_data
=
{
'vid_list'
:
[
video_id
,
],
'name_list'
:
[
video_name
,
],
'appid'
:
1
,
}
url
=
'https://fxg.jinritemai.com/product/video/changeVideoStatus'
response
=
self
.
session
.
post
(
url
,
params
=
params
,
cookies
=
self
.
cookies
,
headers
=
self
.
headers
,
json
=
json_data
)
logger
.
info
(
response
.
text
)
def
get_upload_video_info
(
self
,
video_id
):
"""
获取上传视频信息
:return:
"""
play_auth_token
=
self
.
get_upload_token
(
video_id
)[
'play_auth_token'
]
response
=
self
.
session
.
get
(
f
'https://vod.bytedanceapi.com/?{play_auth_token}'
,
headers
=
self
.
headers
,
cookies
=
self
.
cookies
,
timeout
=
5
)
logger
.
info
(
response
.
text
)
if
response
.
json
()[
'Result'
][
'Data'
][
'Status'
]
!=
10
:
raise
Exception
(
'上传视频失败'
)
return
response
.
json
()[
'Result'
][
'Data'
][
'PlayInfoList'
][
0
]
def
run
(
self
):
"""
运行
:return:
"""
proxies
=
self
.
proxies
...
...
@@ -482,7 +527,7 @@ class Upload:
self
.
session
=
session
self
.
file_size
=
os
.
path
.
getsize
(
self
.
file_path_
)
logger
.
info
(
"开始获取上传token"
)
upload_token
=
self
.
get_upload_token
()
upload_token
=
self
.
get_upload_token
()
[
'auth_token'
]
logger
.
info
(
"获取上传token成功"
)
self
.
access_key_id
=
upload_token
[
'AccessKeyID'
]
self
.
session_token
=
upload_token
[
'SessionToken'
]
...
...
@@ -501,11 +546,14 @@ class Upload:
self
.
slices
,
chunks
=
video_split
(
self
.
file_path_
)
for
slice_
in
self
.
slices
:
self
.
upload_video_split
(
slice_
,
chunks
,
auth
,
store_uri
)
logger
.
info
(
"
上传视频成功
"
)
logger
.
info
(
"
视频已上传
"
)
self
.
upload_video_finish
(
auth
,
store_uri
)
video_id
=
self
.
get_upload_result
()[
'Vid'
]
return
video_id
self
.
change_video_status
(
video_id
,
self
.
file_name
)
logger
.
info
(
"视频状态已更改"
)
video_info
=
self
.
get_upload_video_info
(
video_id
)
return
video_id
,
video_info
def
upload_video
(
task
):
...
...
@@ -529,10 +577,11 @@ def upload_video(task):
task
[
'file_path_'
]
=
file_path_
upload
=
Upload
(
task
)
video_id
=
upload
.
run
()
video_id
,
video_info
=
upload
.
run
()
logger
.
success
(
f
"上传成功,视频ID为:{video_id}"
)
result
=
{
'video_id'
:
video_id
,
'video_info'
:
video_info
,
'file_path'
:
file_path_
,
}
return
result
...
...
@@ -541,22 +590,45 @@ def upload_video(task):
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"
:
{
"addr"
:
"58.251.251.226"
,
"port"
:
"9001"
,
"username"
:
"UKZ5TYSJUQNB"
,
"password"
:
"3X4Q79VMDPK0"
},
'cookie'
:
{
'PHPSESSID'
:
'ea6b555fb9074efe8cda5f15a4e1095e'
,
'PHPSESSID_SS'
:
'ea6b555fb9074efe8cda5f15a4e1095e'
,
},
'headers'
:
{
'user-agent'
:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36'
,
'sec-ch-ua'
:
'"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"'
},
}
"headers"
:
{
"user-agent"
:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.6772.1 Safari/537.36"
,
"sec-ch-ua"
:
"'Google Chrome';v='131', 'Chromium';v='131', 'Not_A Brand';v='24'"
},
"cookie"
:
{
"passport_csrf_token"
:
"6f1838896e7b9cd71380426d6093a9b0"
,
"passport_csrf_token_default"
:
"6f1838896e7b9cd71380426d6093a9b0"
,
"is_staff_user"
:
"false"
,
"PIGEON_CID"
:
"1761839869605566"
,
"SHOP_ID"
:
"217987424"
,
"op_session"
:
""
,
"passport_auth_status"
:
"16dbe412cad1c4120f80b4f2a75f2fbc
%2
Cd9bc6591051417afe327f70b05f78dcd"
,
"passport_auth_status_ss"
:
"16dbe412cad1c4120f80b4f2a75f2fbc
%2
Cd9bc6591051417afe327f70b05f78dcd"
,
"qc_tt_tag"
:
"0"
,
"passport_mfa_token"
:
"CjHZ1t4oVStiK
%2
BWhirW0ofyGTdEV8hW0cGLqEFXfqPK8iUiYuFfgK
%2
FI3XZ9fVtsjRQ
%2
B2GkoKPAAAAAAAAAAAAABO7NqzLsWdPHKH
%2
B2qO0UgY
%2
FGIMp
%2
B9ME
%2
BfqieZr
%2
FAGzOPrMd3H1XZo15DriUy
%2
FPcWWVhhCY6u8NGPax0WwgAiIBA
%2
FjKnWk
%3
D"
,
"sessionid"
:
"70f5161b7b961c32c0d0c92b76e1e954"
,
"sessionid_ss"
:
"70f5161b7b961c32c0d0c92b76e1e954"
,
"sid_tt"
:
"70f5161b7b961c32c0d0c92b76e1e954"
,
"uid_tt"
:
"31ac2392728b8f0638528e63720d63c6"
,
"uid_tt_ss"
:
"31ac2392728b8f0638528e63720d63c6"
,
"PHPSESSID"
:
"ea6b555fb9074efe8cda5f15a4e1095e"
,
"PHPSESSID_SS"
:
"ea6b555fb9074efe8cda5f15a4e1095e"
,
"ucas_c0"
:
"CkEKBTEuMC4wEIqIgdL41uSGaBjmJiCb66DF883DAiiwITC-7dD8pMyQA0C6pbbABki62fLCBlCjvLzOwPzd-WdYbhIUQePNSvIzA2AqfMku-VVaYxocXyI"
,
"ucas_c0_ss"
:
"CkEKBTEuMC4wEIqIgdL41uSGaBjmJiCb66DF883DAiiwITC-7dD8pMyQA0C6pbbABki62fLCBlCjvLzOwPzd-WdYbhIUQePNSvIzA2AqfMku-VVaYxocXyI"
,
"sid_guard"
:
"70f5161b7b961c32c0d0c92b76e1e954
%7
C1745720009
%7
C5183999
%7
CThu
%2
C+26-Jun-2025+02
%3
A13
%3
A28+GMT"
,
"sid_ucp_v1"
:
"1.0.0-KDExOWYxZjEwZWJmZGRmZjIzMDMxZWMzMWEwOTlkZTY3OTlkNjU5ZjQKGQi-7dD8pMyQAxDJpbbABhiwISAMOAFA6wcaAmxxIiA3MGY1MTYxYjdiOTYxYzMyYzBkMGM5MmI3NmUxZTk1NA"
,
"ssid_ucp_v1"
:
"1.0.0-KDExOWYxZjEwZWJmZGRmZjIzMDMxZWMzMWEwOTlkZTY3OTlkNjU5ZjQKGQi-7dD8pMyQAxDJpbbABhiwISAMOAFA6wcaAmxxIiA3MGY1MTYxYjdiOTYxYzMyYzBkMGM5MmI3NmUxZTk1NA"
,
"COMPASS_LUOPAN_DT"
:
"session_7497809415819608371"
,
"BUYIN_SASID"
:
"SID2_7497807982542717199"
,
"odin_tt"
:
"22463254516415b30a9636a1e8d873dbe80f11222dfc2ba8a8d522a10da1298b82375f17436ecd78146241260873a66e"
,
"ttwid"
:
"1
%7
CMFdTuHX3M0W14Bao11G9c4hqdaJywwj6SGMPYOTz93o
%7
C1745735758
%7
Cfb86819121428a8f2806469e0343c58aea3fe6a904990a2646c5184180c5ae09"
},
"video_url"
:
"https://cloud.video.taobao.com/play/u/2200778999140/p/2/e/6/t/1/504992565058.mp4?appKey=38829"
,
"file_name"
:
"efad540ae5554568509afb543a861b3a_raw.mp4"
,
"proxies"
:
{
"addr"
:
"58.251.251.226"
,
"port"
:
"9001"
,
"username"
:
"UKZ5TYSJUQNB"
,
"password"
:
"3X4Q79VMDPK0"
}
}
print
(
upload_video
(
task
))
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