延边网站建设公司seo排名培训学校
自媒体短视频平台之中,时常可见有人发布动画片的相关视频。某些账号坐拥几十万粉丝,其视频数量亦达数千条之多。一年仅存 365 日,即便每日发布一条,一年也仅能发布 365 条。故而,他们定然有着自身独有的发布视频之方法。
一,构思
我能不能也做一个短视频账号,通过使用Python代码批量发布视频呢,说干就干。我申请了一个短视频账号,将名字命名为动漫,然后开始寻找素材关于动画的视频。
二,下载视频素材
下载视频素材,这样有很多种方法,但是现在各种平台都限制了发网址这些,所以也无法分享了,我找了一个网站,截个图吧。将类似这样的视频都下载到硬盘上做备用。所谓巧妇难为无米之炊嘛,没有这些素材,怎么能自动发布呢!
类似这样的网站有很多,如果有需要的话,可以留言666,或者s我分享地址。
三,编写代码处理视频文件
为什么需要处理视频文件呢?
- 视频有片头和片尾,浪费时长,所以需要裁掉。
- 视频封面需要统一,例如需要加入标题文字,这样更能吸粉。
- 最好加入到合集,更方便用户观看。
下面看是编写代码:
# 截取视频片段,指定开始时间和结束时间,将片头和片尾掐掉
def clip_video(input_video_path, output_video_path, start_time, end_time):"""使用 ffmpeg 剪辑指定时间范围的视频:param input_video_path: 输入视频路径:param output_video_path: 输出视频路径:param start_time: 开始时间(HH:MM:SS/MM:SS/秒数):param end_time: 结束时间(格式同上)"""# 统一转换时间格式start_sec = parse_time_to_seconds(start_time)end_sec = parse_time_to_seconds(end_time)# 获取视频真实总时长total_duration = get_video_duration(input_video_path)if start_sec >= total_duration:raise ValueError(f"开始时间超出视频总时长(总时长:{total_duration}秒)")if end_sec > total_duration:end_sec = total_duration raise ValueError(f"结束时间超出视频总时长 {total_duration}秒")if start_sec >= end_sec:raise ValueError("开始时间必须早于结束时间")print('开始时间',start_sec,'结束时间',end_sec - start_sec)# 构建 ffmpeg command = ['ffmpeg','-ss', str(start_sec),'-i', input_video_path,'-to', str(end_sec - start_sec), # 转换为持续时间'-c:v', 'libx264','-preset', 'fast','-crf', '23','-c:a', 'aac','-avoid_negative_ts', '1',output_video_path]print("执行命令:", ' '.join(command))subprocess.run(command, check=True, encoding='utf-8')
在第一帧加入标题,这样为了使封面更加统一
def add_text_as_first_frame_fast(input_video_path, text, output_video_path):"""在视频的第一帧加入标题,这样就会自动变成封面"""subprocess.run(["ffmpeg", "-y","-i", input_video_path, # 输入视频"-vf",f"drawtext=fontfile='{font_path}':text={text}:fontcolor=yellow:fontsize=h/8:x=(w-text_w)/2:y=(h-text_h)/2:enable='eq(n\\,0)'",# 文本居中,第一帧显示"-c:v", "libx264", # 编码为H.264"-crf", "23", # 控制质量"-preset", "fast", # 编码速度"-c:a", "copy", # 保留音频output_video_path], check=True,encoding='utf-8')
如上,黄色文字就是在代码里面加上到第一帧。
然后开始进行发布。
四,发布视频
发布视频需要添加标签和标题。
准备好的标签,可以准备几十个,每天不重复
tags=["#跟我学英语","#快乐学英语","#寒假学英语","#英语小达人","#趣味学英语","#每天一句英语","#玩着学英语","#英语启蒙小课堂","#英语开口说","#英语单词魔法书","#亲子学英语","#少儿英语我最棒","#轻松早教学英语","#宝宝爱英语","#英语儿歌欢乐颂",]
准备好的标题,可以准备几十个,每天不重复
titles = ["快乐英语,轻松学习!","坚持学习,成就未来!","英语学习,乐趣无穷!","和我一起,快乐学英语!","小小英语家,梦想启航!","每天进步,英语不怕!","英语学习,快乐每一天!","一起玩英语,轻松乐学!","探索英语世界,发现新乐趣!","坚持就是胜利,英语更精彩!",]publish= {"num": 1, "title": "第一集:启蒙"},# {"num": 2, "title": "第二集:玩具"},# {"num": 3, "title": "第三集:家人"},# {"num": 4, "title": "第四集:动物"},# {"num": 5, "title": "第五集:朋友"},
最后,我们使用Python的selenium.webdriver自动打开浏览器,就可以一次将5集视频发布了。
还可以同时发布到多个平台。起号非常迅速,接下来给大家看看我发布的内容。
因平台所限,代码并未全部放出,如需起号,还需要进行相关操作,例如确认视频的时间,视频的标题等内容。每个人的创作风格也不一样,有博主发演唱会,有的发歌曲mv,有些发连续剧。代码都是一样,只是资源要求不一样。
关注我,了解更多Python相关知识。