软件大小:0
软件授权:共享软件
软件语言:简体中文
阅读次数:
软件等级:
软件类型:国产软件
更新时间:2022-08-20
应用平台:xp/win7/win10/win11
视频软件的播放功能是一般软件使用者最主要的功能之一。2010年以前,视频软件一般是在电脑安装使用的,而且是与电脑的操作系统相关联的,视频软件相对来说比较单一。随着电子技术和网络技术的不断发展,视频软件也呈现出多样化的发展模式,传统的视频软件其应用范围更为广泛,很多门户网站也开始涉足视频及语音播放功能并设计插件以读取视频文件。随着智能手机、ipad平板电脑的出现,视频软件更是得到迅猛发展,大量免费的视频软件为更多用户提供了便利的视频浏览和播放功能。 快手批量上传视频软件,Python编写的一个快手批量上传视频源码,生成后即可获得简单的批量上传工具,可以将视频进行批量压缩调整,能大幅节省上传者的操作时间,下面给出快手批量上传视频软件详细的源码说明,有需求的朋友们可以下载试试。 快手批量上传视频软件介绍获取手机号->模拟登录->获取kuaishou.web.cp.api_ph->获取上传token->申请块上传文件->上传文件->文件上传完毕->发布视频 发布视频需要coverKey,fileId,kuaishou.web.cp.api_ph,这三个参数 coverKey和fileId是上传文件完毕时获取到的 kuaishou.web.cp.api_ph是登录时获到的 软件特色代替人工,无需人工值守, 帮助用户批量自动上传视频 支持各种mp4视频,可以自动adsl换ip操作 优势亮点软件自带修改视频(剪切和MD5功能)让每个视频都不重复 支持自由设置间隔时间,彻底解放双手 不用守着电脑,自动批量上传 源码一览#coding:utf-8 import urllib import urllib.request import ssl import http.cookiejar import requests,json import re import time import random import os from http.cookiejar import MozillaCookieJar from urllib.request import urlopen ssl._create_default_https_context=ssl._create_unverified_context c=http.cookiejar.LWPCookieJar()#生成一个储存cookie的对象 cookie=urllib.request.HTTPCookieProcessor(c)
opener=urllib.request.build_opener(cookie)#把这储存器绑定到opener对象中
urllib.request.install_opener(opener)
定时=1#分钟
header ={
'Referer':'https://cp.kuaishou.com/article/publish/video', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' }
def login():
# print("ccccc")
手机号=input('请输入手机号:')
#获取验证码 req=urllib.request.Request('https://id.kuaishou.com/pass/kuaishou/sms/requestMobileCode') req.headers=header#模拟浏览器
data={ 'sid':'kuaishou.web.cp.api', 'type':'53', 'countryCode':'+86', 'phone':手机号, 'ztIdentityVerificationType':"", 'ztIdentityVerificationCheckToken':"" }
data=urllib.parse.urlencode(data).encode('utf-8') html=opener.open(req,data).read()#html会返回验证码成功或不成功 #print(html)
code=input('请输入验证码:')
#验证 验证码区
req=urllib.request.Request('https://id.kuaishou.com/pass/kuaishou/login/mobileCode') req.headers=header#模拟浏览器
data={ 'countryCode':'+86', 'sid':'kuaishou.web.cp.api', 'createId':'true', 'phone':手机号, 'smsCode':code
}
data=urllib.parse.urlencode(data).encode('utf-8') html=opener.open(req,data).read()#html会返回验证码成功或不成功
#print(html)
#获取kuaishou.web.cp.api.at 提取字符串=html.decode('utf-8')
# print(re.search('kuaishou.web.cp.api.at',提取字符串).span()) 元组= re.search('kuaishou.web.cp.api.at',提取字符串).span()
list_str = list(提取字符串) for num in range(0,元组[0]+25): list_str.pop(0) 提取字符串 = ''.join(list_str)
元组= re.search('",',提取字符串).span()
list_str = list(提取字符串) for num in range(元组[0],len(list_str)): list_str.pop(元组[0])
提取字符串 = ''.join(list_str)
kuaishou_web_cp_api_at=提取字符串
# print(kuaishou_web_cp_api_at)
# print(取第一个数) # print(type(取第一个数)) # print(type(num))
随机数=random.randint(0,9)
#获取kuaishou.web.cp.api_ph
data={ 'authToken':kuaishou_web_cp_api_at, 'sid':'kuaishou.web.cp.api' }
data=json.dumps(data).encode() header2 ={
'Connection':'keep-alive', 'Content-Length':len(data),
'EagleEye-pAppName':'e6zufio2qe@6aa9d0be6640ab'+str(随机数), 'EagleEye-SessionID':'stk'+str(随机数)+'Lke6od75zahpCh3pq8nk99qR',
'Pragma':'no-cache', 'Referer':'https://passport.kuaishou.com/account/login/?sid=kuaishou.web.cp.api&redirectURL=https%3A%2F%2Fcp.kuaishou.com%2Fprofile', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0', } req=urllib.request.Request('https://passport.kuaishou.com/account/login/api/verifyToken',data=data,method='POST') req.headers=header2#模拟浏览器
html=opener.open(req,data).read()#html会返回验证码成功或不成功 #print(html)
提取字符串=html.decode('utf-8') 元组= re.search('kuaishou.web.cp.api_ph',提取字符串).span() list_str = list(提取字符串) for num in range(0,元组[0]+25): list_str.pop(0) 提取字符串 = ''.join(list_str)
元组= re.search('",',提取字符串).span() list_str = list(提取字符串) for num in range(元组[0],len(list_str)): list_str.pop(元组[0]) 提取字符串 = ''.join(list_str)
kuaishou_web_cp_api_ph=提取字符串 #print(kuaishou_web_cp_api_ph)
#html=urlopen(req,data)
# print(c) # print(len(data)) # print(html.read().decode())
文件个数 = 0 集合=set(())
for root, dirs, files in os.walk(r"."): # root 表示当前正在访问的文件夹路径 # dirs 表示该文件夹下的子目录名list # files 表示该文件夹下的文件list # 遍历文件 for f in files:
字符串=re.search('.mp4',os.path.join(root, f)) if 字符串!=None: 集合.add(os.path.join(root, f)) 文件个数 += 1 # print(集合) # print(os.path.join(root, f))
列表=list(集合) print('一共有'+str(文件个数)+'个视频')
循环次数=0 while 循环次数<> 循环次数=循环次数+1
time.sleep(60*定时)#秒
文件名=列表[0] 真与假=True while 真与假: 元组= re.search(r'\\',文件名) if 元组==None: 真与假=False else: list_str = list(文件名) for num in range(0,元组.end()): list_str.pop(0) 文件名 = ''.join(list_str)
print('正在上传'+文件名)
#模拟上传视频 #1.获取上传token
data={ 'kuaishou.web.cp.api_ph':kuaishou_web_cp_api_ph, 'uploadType':'1' }
data=json.dumps(data).encode() header3 ={ 'Connection':'keep-alive', 'Content-Length':len(data), 'Content-Type':'application/json;charset=utf-8', 'Pragma':'no-cache', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' }
req=urllib.request.Request('https://cp.kuaishou.com/rest/cp/works/v2/video/pchttp://img.win1064.cn/upload/down_shipin2/pre',data=data,method='POST')
req.headers=header3#模拟浏览器
#data=urllib.parse.urlencode(data).encode('utf-8') html=opener.open(req,data).read()#html会返回验证码成功或不成功
# print(html.decode('utf8'))
提取字符串=html.decode('utf-8') 元组= re.search('token',提取字符串).span() list_str = list(提取字符串) for num in range(0,元组[0]+8): list_str.pop(0) 提取字符串 = ''.join(list_str)
元组= re.search('",',提取字符串).span() list_str = list(提取字符串) for num in range(元组[0],len(list_str)): list_str.pop(元组[0]) 提取字符串 = ''.join(list_str)
上传token=提取字符串
# print(上传token)
#2.https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/resume #/api/上传/恢复
req=urllib.request.Request('https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/resume?upload_token='+上传token) req.headers=header#模拟浏览器
html=opener.open(req).read()#html会返回验证码成功或不成功
#print(html.decode('utf8'))
time.sleep(1)
#3.申请块上传文件
with open(列表[0],'rb') as f: 视频数据二进制=f.read()
文件大小=len(视频数据二进制)
文件大小2=文件大小
迭代次数 = 0 最后一次文件大小=0 while (迭代次数 <>
判断是否为负=文件大小2-4194304 if 判断是否为负 <> #print(迭代次数) 最后一次文件大小=文件大小2 # print(最后一次文件大小) break
迭代次数 = 迭代次数 + 1 文件大小2=判断是否为负
# print("迭代次数"+str(迭代次数))
if 迭代次数==0: # print("进入迭代次数==0")
Content_Range='bytes 0-'+str(文件大小)+'/'+str(文件大小)
header_视频上传={
'Accept':'application/json, text/plain, */*', 'Accept-Encoding':'gzip, deflate, br', 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection':'keep-alive', 'Content-Length':len(视频数据二进制), 'Content-Range':Content_Range, 'Content-Type':'application/octet-stream', 'Host':'upload.kuaishouzt.com', 'Origin':'https://cp.kuaishou.com', 'Referer':'https://cp.kuaishou.com/article/publish/video?origin=www.kuaishou.com', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0' }
req=urllib.request.Request('https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/fragment?upload_token='+上传token+'&fragment_id=0',data=data,method='POST')
req.headers=header_视频上传#模拟浏览器
html=opener.open(req,视频数据二进制).read()#html会返回验证码成功或不成功
# print(html.decode('utf8')) else:
for i in range(0,迭代次数): # print("i"+str(i)) if i==迭代次数:
# print("进入最后上传块")
Content_Range='bytes '+str(迭代次数*4194304)+'-'+str(文件大小-1)+'/'+str(文件大小)
header_视频上传={
'Accept':'application/json, text/plain, */*', 'Accept-Encoding':'gzip, deflate, br', 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection':'keep-alive', 'Content-Length':最后一次文件大小, 'Content-Range':Content_Range, 'Content-Type':'application/octet-stream', 'Host':'upload.kuaishouzt.com', 'Origin':'https://cp.kuaishou.com', 'Referer':'https://cp.kuaishou.com/article/publish/video?origin=www.kuaishou.com', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0' }
req=urllib.request.Request('https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/fragment?upload_token='+上传token+'&fragment_id='+str(迭代次数),data=data,method='POST')
req.headers=header_视频上传#模拟浏览器
文件切割=视频数据二进制[迭代次数*4194304:文件大小] # print("文件大小"+str(文件大小-迭代次数*4194304)) html=opener.open(req,文件切割).read()#html会返回验证码成功或不成功
else: # print(str(i))
Content_Range='bytes '+str(i*4194304)+'-'+str((i+1)*4194304-1)+'/'+str(文件大小) # Content_Range='bytes 0-4194303/11765090' header_视频上传={
'Accept':'application/json, text/plain, */*', 'Accept-Encoding':'gzip, deflate, br', 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection':'keep-alive', 'Content-Length':4194304, 'Content-Range':Content_Range, 'Content-Type':'application/octet-stream', 'Host':'upload.kuaishouzt.com', 'Origin':'https://cp.kuaishou.com', 'Referer':'https://cp.kuaishou.com/article/publish/video?origin=www.kuaishou.com', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0' }
req=urllib.request.Request('https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/fragment?upload_token='+上传token+'&fragment_id='+str(i),data=data,method='POST')
req.headers=header_视频上传#模拟浏览器
文件切割=视频数据二进制[i*4194304:(i+1)*4194304]
html=opener.open(req,文件切割).read()#html会返回验证码成功或不成功
#print("11111111111"+html.decode('utf8'))
# print(len(data))
header_视频上传={
'Accept':'application/json, text/plain, */*', 'Accept-Encoding':'gzip, deflate, br', 'Accept-Language':'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2', 'Connection':'keep-alive', 'Content-Length':'0', 'Host':'upload.kuaishouzt.com', 'Origin':'https://cp.kuaishou.com', 'Referer':'https://cp.kuaishou.com/article/publish/video?origin=www.kuaishou.com', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0'
}
req=urllib.request.Request('https://upload.kuaishouzt.com/apihttp://img.win1064.cn/upload/down_shipin2/complete?fragment_count=1&upload_token='+上传token,method='POST')
req.headers=header_视频上传#模拟浏览器
html=opener.open(req).read()#html会返回验证码成功或不成功
# print(html.decode('utf8'))
#3.文件上传完毕
data={ 'fileLength':文件大小,#文件大小 'fileName':文件名,#文件名称 'fileType':'video/mp4', 'kuaishou.web.cp.api_ph':kuaishou_web_cp_api_ph, 'token':上传token }
data=json.dumps(data).encode() header3 ={ 'Connection':'keep-alive', 'Content-Length':len(data), 'Content-Type':'application/json;charset=utf-8', 'Pragma':'no-cache', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' }
req=urllib.request.Request('https://cp.kuaishou.com/rest/cp/works/v2/video/pchttp://img.win1064.cn/upload/down_shipin2/finish',data=data,method='POST')
req.headers=header3#模拟浏览器
html=opener.open(req,data).read()#html会返回验证码成功或不成功
# print(html.decode('utf8'))
提取字符串=html.decode('utf-8') 元组= re.search('coverKey',提取字符串).span() list_str = list(提取字符串) for num in range(0,元组[0]+8+3): list_str.pop(0) 提取字符串 = ''.join(list_str)
元组= re.search('",',提取字符串).span() list_str = list(提取字符串) for num in range(元组[0],len(list_str)): list_str.pop(元组[0]) 提取字符串 = ''.join(list_str)
coverKey=提取字符串
#print(coverKey)
提取字符串=html.decode('utf-8') 元组= re.search('fileId',提取字符串).span() list_str = list(提取字符串) for num in range(0,元组[0]+6+2): list_str.pop(0) 提取字符串 = ''.join(list_str)
元组= re.search(',"',提取字符串).span() list_str = list(提取字符串) for num in range(元组[0],len(list_str)): list_str.pop(元组[0]) 提取字符串 = ''.join(list_str)
fileId=提取字符串
# print(fileId)
#发布视频
data={ 'caption':"", 'collectionId':"", 'coverCenterX':"", 'coverCenterY':"", 'coverCropped':'false', 'coverKey':coverKey, 'coverTimeStamp':-1, 'coverTitle':"", 'coverTitleStyle':"", 'coverType':1, 'domain':"", 'fileId':fileId, 'kuaishou.web.cp.api_ph':kuaishou_web_cp_api_ph, 'latitude':"", 'longitude':"", 'movieId':"", 'notifyResult':0, 'photoStatus':1, 'photoType':0, 'pkCoverKey':"", 'publishTime':0, 'secondDomain':"" }
data=json.dumps(data).encode() header_submit ={ 'Connection':'keep-alive', 'Content-Length':len(data), 'Content-Type':'application/json;charset=utf-8', 'Pragma':'no-cache', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0' }
req=urllib.request.Request('https://cp.kuaishou.com/rest/cp/works/v2/video/pc/submit',data=data,method='POST') req.headers=header_submit#模拟浏览器
html=opener.open(req,data).read()#html会返回验证码成功或不成功
print(html.decode('utf8'))
os.remove(列表[0])
列表.remove(列表[0])
login() 相对于大多数用户来说,视频软件的编辑功能是面向专业人员或有兴趣爱好的人员使用的功能。 |
蒲公英MP4格式转换器-mp4格式文件转换器-蒲公英MP4格式转换器下载 v9.3.7.0官方版
蒲公英mp4格式转换器是一款可以帮助用户朋友对任意视频播放格式的文件进行转换成mp4格式文件的强大
佳佳H264视频格式转换器-视频格式转换软件-佳佳H264视频格式转换器下载 v6.6.6.0官方版
佳佳H264视频格式转换器是一款功能强大操作便捷的H264视频格式转换软件,可以高质量的进行流行的
哔哩哔哩是一个专门为bilibili视频而研发的视频播放哔哩哔哩电脑版软件特色1、哔哩哔哩电脑客户
爱拍视频软件-视频软件-爱拍视频软件下载 v2.5.1官方版
爱拍-专业易用的屏幕录像、视频编辑、分享互动,明星养成平台爱拍视频软件软件特性 爱拍-专业易用的屏