随机获取视频和音乐,利用python实现自动剪辑视频(粗糙版)

import os
import timeimport redis
from moviepy.editor import *
import requests
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def getMusic():name = ''while True:url = "https://www.kugou.com/song/#fm_id=897&fm_name=90后"driver = webdriver.Chrome()driver.get(url)# time.sleep(10)element = EC.url_changes(url)  # 判断是否重定向try:WebDriverWait(driver, 5).until(element)flag1 = element(driver)except:flag1 = element(driver)assert flag1 == Trueaudio = driver.find_element(By.XPATH, "/html/body/div[1]/audio").get_attribute("src")# print(audio)title = driver.find_element(By.XPATH, "/html/body/div[1]/div[3]/div[1]/div[2]/div[1]/span").get_attribute("title")print(title)# os.path.exists 函数判断文件夹是否存在path = "/Users/zhao/Desktop/auto_video/" + titlefolder = os.path.exists(path)# 判断是否存在文件夹如果不存在则创建为文件夹if not folder:# os.makedirs 传入一个path路径,生成一个递归的文件夹;如果文件夹存在,就会报错,因此创建文件夹之前,需要使用os.path.exists(path)函数判断文件夹是否存在;os.makedirs(path)  # makedirs 创建文件时如果路径不存在会创建这个路径print('文件夹创建成功:', path)else:print('文件夹已经存在:', path)continuefile_path = os.path.join(path, title + ".mp3")print('开始写入音频文件:', file_path)res = requests.get(audio, stream=True)# 打开本地文件夹路径file_path,以二进制流方式写入,保存到本地with open(file_path, 'wb') as fd:for chunk in res.iter_content():fd.write(chunk)print(' 音频成功下载!')name = title + ".mp3"breakreturn {'path':path,'mp3': path+'/'+name,'name': title}
def getVideo(path):pool = redis.ConnectionPool(host='',password='')  # 填入redis账号密码,实现一个连接池r = redis.Redis(connection_pool=pool)#利用redis记录视频在网站的位置,避免重复使用视频videoIndex = r.get('videoIndex').decode()page = 0index = 0if videoIndex is None:r.set('videoIndex', '0-0') #page-indexelse:page = videoIndex.split('-')[0]index = int(videoIndex.split('-')[1])res = requests.get('https://coverr.co/api/videos?lang=en&camel_case=true&filters=is_vertical:false&page='+page+'&page_size=12&query=&sort_by=popularity&urls=true&extends=undefined&userId=guest')hits = res.json().get('hits')title = hits[index].get('title')mp4 = hits[index].get('urls').get('mp4')file_path = os.path.join(path, title + ".mp4")print('开始写入视频文件:', file_path)res = requests.get(mp4, stream=True)# 打开本地文件夹路径file_path,以二进制流方式写入,保存到本地with open(file_path, 'wb') as fd:for chunk in res.iter_content():fd.write(chunk)print(' 视频成功下载!')if index == 11:page = int(page) + 1index = 0videoIndex = str(page)+'-'+str(index)else:index = index + 1videoIndex = str(page)+'-'+str(index)r.set('videoIndex', videoIndex)return {'path': path,'mp4': path + '/' + title + ".mp4",'name': title}
if __name__ == '__main__':start_time = time.time()mp3Map = getMusic()audioclip = AudioFileClip(mp3Map.get('mp3'))mp3Duration = audioclip.durationmp4Duration = 0mp4List = []while True:mp4Map = getVideo(mp3Map.get('path'))videoclip = VideoFileClip(mp4Map.get('mp4'))mp4Duration += videoclip.durationmp4List.append(videoclip)print('mp3Duration:'+str(mp3Duration))print('mp4Duration'+str(mp4Duration))if mp3Duration <= mp4Duration:breaktext = TextClip(mp3Map.get('name'), fontsize=75, color="white").set_position('center').set_duration(10)mp4List.append(text)print(mp4List)finalclip = concatenate_videoclips(mp4List).subclip(0,mp3Duration)videoclip2 = finalclip.set_audio(audioclip)videoclip2.write_videofile(mp3Map.get('name')+'.mp4',audio_codec='aac',codec='libx264')end_time = time.time()run_time = end_time - start_timeprint('运行时间:'+str(run_time)+'秒')

python实现自动剪辑视频相关推荐

  1. python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  2. Python算法自动剪辑视频,视频丝滑换装无须视频编辑器

    看到人家用PR什么编辑软件做这种丝滑一键换装的视频,自己也想尝试一下.不过PR这破玩意太难用了,还不如敲代码来的省事. 最开始想用 moviepy 的 moviepy.video.fx.all.mas ...

  3. python可以剪辑视频吗_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  4. python编程视频剪辑_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  5. python剪辑视频_你知道吗?Python也可以剪辑视频!

    就当前看来,Python无疑是最火的编程语言之一,由于其简单易学,无数人为其写第三方库和框架,Python也得以渗透进各种行业. 很多人都听说过Python的妙用,比如: 可以用来编写网站,这方面的框 ...

  6. python拼接、剪辑视频

    一.安装moviepy 打开cmd终端,输入 pip install moviepy 二.拼接视频 拼接程序joint.py # 主要是需要moviepy这个库 from moviepy.editor ...

  7. 制作视频剪辑,自动剪辑视频的软件如何剪辑

    我们公司主要做文案内容输出的,所以合作的短视频工作室和企业比较多,听他们说pc端的自动剪辑工具好像都效果不好,现在他们大多数都是用王者剪辑这样的工具,然后批量控制多个手机,基本每天自动剪辑的视频都是几 ...

  8. 自动剪辑视频的软件,视频自动剪辑生成软件如何剪辑视频和制作视频

    要一键成片的话,那就是智能自动剪辑工具了,我上一个公司是专门运营无真人视频的,但剪辑工作不是我负责的工作,记得我们的技术部童鞋使用的工具王者剪辑,批量制作并管控很多个手机进行自动剪辑,不过主要做的是文 ...

  9. 自动剪辑视频的软件王者剪辑剪辑的视频没有声音的问题

    看到很多朋友在问,王者剪辑制作的视频声音问题,我也在玩这个,顺便记录一下希望对大家有帮助,王者剪辑里面的"智能剪辑"主要批量自动剪辑出原创视频,这个功能制作出来的视频是没有声音的, ...

最新文章

  1. GAN(Generative Adversarial Network,GAN)模型之:EBGAN、PGGAN、CGAN、ACGAN模型
  2. 从封装函数到实现简易版自用jQuery (一)
  3. 【嵌入式】C语言高级编程-变参函数(08)
  4. Python下调用Linux的Shell命令
  5. 解决 error: Your local changes to the following files would be overwritten by merge:XXXX
  6. 企业实战_01_Redis下载/安装/运行/停止
  7. 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,幼儿园课件制作教案...
  8. 什么叫做java程序中的继承_【Java】基础16:什么叫继承?
  9. 【OpenCV】扫描图像、查找表、计时
  10. 关于c#中的string
  11. HTML当当图书馆作业介绍
  12. vue运行之神奇的npm install --legacy-peer-deps
  13. 用python爬取链家的租房信息
  14. 计算机视觉SIFT算法详解
  15. Tomcat和Http协议详细解析
  16. 高分5号( GF5)高光谱数据RSD处理初步
  17. [matlab]获取多项式的系数,表达式的系数
  18. 【源代码扫描工具】 -‪Checkmarx使用
  19. 安卓跳转应用市场评论
  20. 智慧化工厂:化工厂人员定位+化工厂定位系统实现全智能化化工厂自动管理考勤-新导智能

热门文章

  1. PS中将一块区域更改为想要的颜色
  2. Git 版本管理之git神器版本回退(版本回退-已经commi t尚未push到remote仓库)
  3. TexStudio/LaTex 进行字体设置
  4. 5G无线路由器在智慧水利监测中的应用
  5. 理解HTML标签语义化
  6. android优酷开放平台,优酷
  7. Adobe Photoshop CC 2018 下载
  8. java math四舍五入类,Java中Math类的几个四舍五入方法的区别
  9. SAP中几个与计划独立需求PIR相关的表
  10. 在Android中快速获取手机的高级权限