自动上传视频到B站和西瓜视频

2024-04-17 22:58
文章标签 视频 自动 上传 西瓜

本文主要是介绍自动上传视频到B站和西瓜视频,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码效果演示
Gitee源码

# -*- coding: utf-8 -*-
# Version: Python 3.9.7
# Author: TRIX
# Date: 2021-09-14 21:34:14
# Use:自动生成视频封面 并自动上传视频到B站 和 西瓜视频 由于该程序部分代码只适配于作者的硬件和软件 部分快捷键为作者自定义 在对代码修改前 请勿随意运行该程序 视频配置要求文件 VideoConfig.txt#使用之前 先配置 VideoConfig.txt 且保证网络正常 如果程序出错 鼠标移动到屏幕左上角停止程序运行from pyautogui import *
from PIL import Image,ImageDraw,ImageFont
from time import sleep,time
import pyperclip
import os,fnmatch
import shutil
from send2trash import send2trashdef coverGener(title,fontPath,coverSavePath):'''标题文本 最多九个汉字 字体 封面生成目录'''pic=Image.new('RGBA',(1146,717),'#1D1D1F')#以MODE模式 新建一个(weight,height)纯色图片 如果不指定颜色 默认为透明黑色 0 0 0 0 默认分辨率72 图片打印分辨率要求300drawer=ImageDraw.Draw(pic)#绘制器fontCode=ImageFont.truetype(font=fontPath,size=100)#ImageFont对象 ttf字体格式drawer.text((650,64),'源码',fill='#F25228',align='center',font=fontCode)#(x,y)处 写入str fill颜色 align对齐fontBrief=ImageFont.truetype(font=fontPath,size=74)#ImageFont对象 ttf字体格式drawer.text((850,85),'在简介',fill='#F25228',align='center',font=fontBrief)#(x,y)处 写入str fill颜色 align对齐fontTitle=ImageFont.truetype(font=fontPath,size=120)#ImageFont对象 ttf字体格式titleW,titleH=drawer.textsize(title,font=fontTitle)#返回str的(weight,height)drawer.text((int((1146-titleW)/2),215),title,fill='#00A3ED',align='center',font=fontTitle)#(x,y)处 写入str fill颜色 align对齐fontSub=ImageFont.truetype(font=fontPath,size=88)#ImageFont对象 ttf字体格式drawer.text((128,400),'Python程序  效果演示',fill='#F5F5F7',align='center',font=fontSub)#(x,y)处 写入D:\[vidstr fill颜色 align对齐pic.save(coverSavePath, quality=100,dpi=(300,300))#无色差保存 网络图片不会出现色差问题 只有 拍摄照片 或 PS等软件 处理后的图片会有色差问题 常用模式 RGB RGBA CMYK L黑白模式 高质量 300分辨率 默认分辨率72 图片打印分辨率要求300def uploadToXigua(delay,videoSavePath,title,titleSuffix,coverSavePath,videoBriefTitle,videoBrief,codeSiteTitle,codeSite,mode):click(1440,140)#点击个人网站click(1732,244,button='right')#选择西瓜上传视频页面click(1463,245)#在新页面打开hotkey('ctrl','pgdn')#切换到上传页面sleep(2.5+delay)click(1210,578)#点击上传视频sleep(1+delay)hotkey('shift','alt','s')#选择文件快捷键typewrite(videoSavePath)#选择视频储存文件夹sleep(0.5+delay)press('enter')hotkey('winleft','left')#分屏窗口快捷键click(570,191)#选择视频click(760,990)#确认视频sleep(0.5+delay)#编辑标题click(767,651)#进入标题编辑区域pyperclip.copy(title)#复制标题到剪贴板hotkey('ctrl','v')#粘贴标题pyperclip.copy(titleSuffix)#复制标题后缀到剪贴板hotkey('ctrl','v')#粘贴标题后缀#选择封面click(690,884)#选择视频封面sleep(0.5+delay)click(464,230)#选择本地上传click(950,615)#选择上传本地图片sleep(1+delay)hotkey('winleft','left')#分屏窗口快捷键hotkey('shift','alt','s')#选择文件快捷键typewrite(coverSavePath)#选择视频封面sleep(0.5+delay)press('enter')sleep(1+delay)click(1215,567)#切换到封面编辑界面dragTo(1215,258,duration=0.5)#编辑视频封面sleep(1+delay)click(1195,982)#退出编辑区域sleep(1+delay)click(1545,834)#完成剪裁sleep(1+delay)click(1593,992)#点击确定sleep(0.5+delay)click(1060,682)#点击最终确定sleep(2+delay)click(1120,855)#退出封面编辑界面#编辑视频为原创hotkey('ctrl','home')#转到视频上传页面开头typewrite(['down' for n in range(4)])#向下滚动4格click(535,778)#点击原创#编辑简介click(450,939)#点击更多选项typewrite(['down' for n in range(2)])#向下滚动2格click(623,868)#进入简介编辑区域pyperclip.copy(videoBriefTitle)hotkey('ctrl','v')#粘贴简介标题pyperclip.copy(videoBrief)hotkey('ctrl','v')#粘贴简介press('enter')#分段pyperclip.copy(codeSiteTitle)hotkey('ctrl','v')#粘贴源码链接标题pyperclip.copy(codeSite)hotkey('ctrl','v')#粘贴源码链接click(1244,574)#退出标签编辑区域#投稿hotkey('ctrl','end')#移动到视频编辑页面尾部if mode=='upload':click(447,933)#点击发布elif mode=='test':click(586,934)#点击存草稿def uploadToBilibil(delay,videoSavePath,coverSavePath,title,labelList,videoBrief,codeSite,mode):click(1440,140)#点击个人网站click(1730,350,button='right')#选择B站上传视频页面click(1440,250)#在新页面打开hotkey('ctrl','pgdn')#切换到上传页面sleep(2.5+delay)click(1120,800)#点击上传视频sleep(1+delay)hotkey('shift','alt','s')#选择文件快捷键typewrite(videoSavePath)#选择视频储存文件夹sleep(0.5+delay)press('enter')hotkey('winleft','left')#分屏窗口快捷键click(570,191)#选择视频click(760,990)#确认视频sleep(0.5+delay)#选择视频模板click(1600,810)#选择模板界面click(1430,930)#点击Python模板#选择封面press('tab')#切换到封面按钮click(580,955)#点击选择封面sleep(1+delay)hotkey('winleft','left')#分屏窗口快捷键hotkey('shift','alt','s')#选择文件快捷键typewrite(coverSavePath)#选择视频封面sleep(0.5+delay)press('enter')sleep(1+delay)click(1280,740)#切换到封面编辑界面press('down')#向下滚动一格click(1210,930)#确认封面sleep(1+delay)#编辑标题typewrite(['down','down','down','down',])#向下滚动页面4格click(785,895)#进入标题编辑区域press('home')#光标移动到标题开头pyperclip.copy(title)#复制标题到剪贴板hotkey('ctrl','v')#粘贴标题click(1100,780)#退出标题编辑区域#编辑标签typewrite(['down','down','down','down',])#向下滚动页面4格click(1300,875)#进入标签编辑区域for label in labelList:#粘贴标签pyperclip.copy(label)hotkey('ctrl','v')press('enter')sleep(0.5)click(1275,730)#退出标签编辑区域#编辑粉丝动态hotkey('ctrl','end')#移动到视频编辑界面结尾click(900,490)#进入粉丝动态编辑区域pyperclip.copy(videoBrief)hotkey('ctrl','v')#粘贴简介click(1170,760)#退出粉丝动态编辑区域#编辑简介typewrite(['up' for n in range(18)])#向上滚动页面18格click(650,459)#进入视频简介编辑hotkey('ctrl','v')#粘贴简介hotkey('ctrl','end')#移动到简介编辑区结尾pyperclip.copy(codeSite)hotkey('ctrl','v')#粘贴源码链接click(1234,815)#退出视频简介编辑#投稿hotkey('ctrl','end')#移动到视频上传页面尾部if mode=='upload':click(595,780)#投稿视频elif mode=='test':click(795,780)#保存模板def uploadVideo(mode='upload',delay=0):#上传视频所有步骤 mode 上传模式startTimeStamp=time()-90#程序开始运行的时间#打开 VideoConfig.txt 详细介绍和条件要求 在 VideoConfig.txtwith open('VideoConfig.txt','r',encoding='utf-8')as f:#读取视频所有配置config = f.readlines()[1:13]title=config[0].split('=')[1].strip()videoLabels = config[1].split('=')[1].strip()labelList=videoLabels.split()if len(labelList)>4:raise ValueError('标签最多4个 请重新编辑')videoBriefTitle = config[2].split('=')[1].strip()videoBrief = config[3].split('=')[1].strip()codeSiteTitle=config[4].split('=')[1].strip()codeSite=config[5].split('://')[1].strip()if len(codeSite)>131:raise ValueError('源码链接最多131个字符 请重新编辑')coverSavePath=config[6].split('=')[1].strip()fontPath=config[7].split('=')[1].strip()videoSavePath=config[8].split('=')[1].strip()titleSuffix=config[9].split('=')[1].strip()videoUploadedPath=config[10].split('=')[1].strip()videoFormat=config[11].split('=')[1].strip()#生成视频封面coverGener(title,fontPath,coverSavePath)#上传视频 缩放比例为90% 分辨率1920x1080 固定坐标 执行操作有延迟 相应点击坐标不能大幅度改变#打开Edge浏览器click(160,1060)sleep(2+delay)#切换输入法click(1802,1056)#点击输入法click(1720,885)#切换到美式键盘#上传视频到B站uploadToBilibil(delay,videoSavePath,coverSavePath,title,labelList,videoBrief,codeSite,mode)#上传视频到西瓜视频uploadToXigua(delay,videoSavePath,title,titleSuffix,coverSavePath,videoBriefTitle,videoBrief,codeSiteTitle,codeSite,mode)#移动本次上传视频到 videoUploadedPath 文件夹for file in fnmatch.filter(os.listdir(videoSavePath), '*.'+videoFormat):#在第一级目录匹配唯一的mp4文件if startTimeStamp>os.path.getctime(videoSavePath+'\\'+file):#所要上传的视频创建的时间戳<程序开始运行时间戳-90s<正在录制的这个视频创建的时间戳shutil.move(videoSavePath+'\\'+file,videoUploadedPath)#移动本次上传视频到 videoUploadedPath 文件夹#检测 videoUploadedPath 文件夹内video个数 把文件夹内 创建时间最早的文件 移动到回收站leastTimeStamp=time()#返回现在 unix时间戳for i,file in enumerate(fnmatch.filter(os.listdir(videoUploadedPath), '*.'+videoFormat)):#对里面的每个mp4文件fileTimeStamp=os.path.getctime(videoUploadedPath+'\\'+file)#输出文件创建时间 unix时间戳if fileTimeStamp<=leastTimeStamp:#如果文件创建时间戳比当前最小时间戳还小leastTimeStamp=fileTimeStampfor i,file in enumerate(os.listdir(videoUploadedPath)):#对里面的每个mp4文件if leastTimeStamp==os.path.getctime(videoUploadedPath+'\\'+file):#如果最小时间戳=文件创建时间戳send2trash(videoUploadedPath+'\\'+file)#把该文件移动到回收站FAILSAFE=True# 如果程序出错 鼠标移动到屏幕左上角 抛出 pyautogui.FailSafeException 异常 并停止程序
#使用之前 先配置 VideoConfig.txt 且确保网络正常 确保浏览器打开的页面不超过1
uploadVideo(mode='upload',delay=0)
#mode:test 测试是否正常执行上传步骤 或 upload 上传视频 默认为upload
#delay:float 程序关键步骤执行延迟秒数 默认延迟0秒

这篇关于自动上传视频到B站和西瓜视频的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913096

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Spring MVC 图片上传

引入需要的包 <dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

树莓派5_opencv笔记27:Opencv录制视频(无声音)

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)  本人所用树莓派5 装载的系统与版本如下:  版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录... 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 阶段一:录制一段

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

PC与android平板通过浏览器监控Verybot的视频

下面这个视频是PC与android平板通过浏览器监控Verybot的视频:           http://v.youku.com/v_show/id_XNjYzNzYyMTIw.html