You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python脚本中借助youtube-upload上传MoviePy生成的视频?

在Windows上用Python 3结合MoviePy和youtube-upload上传视频到YouTube的实现方法

我来帮你梳理一下完整的实现流程,亲测在Windows环境下可行:

一、先搞定环境依赖

首先得把需要的库和工具都装齐:

  • 打开命令提示符(CMD)或者PowerShell,安装Python库:
    pip install moviepy youtube-upload
    
  • 别忘了ffmpeg:MoviePy和youtube-upload都依赖它处理视频。你可以下载Windows版本的ffmpeg,解压后把ffmpeg.exe所在的文件夹路径添加到系统的PATH环境变量里,这样Python才能找到它。

二、配置YouTube API授权(关键步骤!)

youtube-upload需要通过YouTube Data API上传视频,所以得先搞定OAuth2认证:

  1. 登录Google Cloud Console,创建一个新项目,然后在项目里启用YouTube Data API v3
  2. 进入「API和服务」→「凭据」,创建一个「OAuth客户端ID」,应用类型选「桌面应用」。
  3. 下载生成的credentials.json文件,把它放到你的Python脚本所在的文件夹里。
  4. 第一次运行上传脚本时,会自动弹出浏览器让你登录你的YouTube账号,授权这个应用访问你的上传权限,授权后会生成一个token.json文件,之后再运行就不用重复授权了。

三、整合MoviePy生成视频和上传的代码

这里给你一个完整的示例,先生成视频再上传:

from moviepy.editor import TextClip, CompositeVideoClip
from youtube_upload import upload_video

# 用MoviePy生成视频的函数(你可以替换成自己的生成逻辑)
def create_test_video():
    # 生成一个简单的文本视频,时长5秒,720P分辨率
    text_clip = TextClip("自动生成的YouTube视频", fontsize=60, color="#ffffff", font="Arial")
    final_video = CompositeVideoClip(
        [text_clip.set_duration(5)],
        size=(1280, 720),
        bg_color="#000000"
    )
    # 保存视频到本地
    output_path = "my_generated_video.mp4"
    final_video.write_videofile(output_path, fps=24, codec="libx264")
    return output_path

if __name__ == "__main__":
    # 第一步:生成视频
    video_file = create_test_video()
    print(f"视频已生成:{video_file}")

    # 第二步:上传到YouTube
    try:
        # 这里可以自定义视频的各种属性
        video_id = upload_video(
            video_file,
            title="我的Python自动生成视频",
            description="这是用MoviePy生成,通过youtube-upload上传到YouTube的测试视频",
            tags=["Python", "MoviePy", "YouTube自动化"],
            privacy_status="unlisted"  # 可选值:public(公开)、private(私有)、unlisted(不公开可分享)
        )
        print(f"上传成功!视频ID:{video_id}")
    except Exception as error:
        print(f"上传出错了:{str(error)}")

四、一些需要注意的小细节

  • 如果你自己的MoviePy生成逻辑比较复杂,比如涉及到音频、多个剪辑拼接,只需要把生成后的视频路径传给upload_video函数就行,不用改上传部分的代码。
  • 如果遇到API配额不足的问题,去Google Cloud Console的「API和服务」→「配额」里查看YouTube Data API的使用情况,一般免费额度足够日常测试用。
  • 要是上传时出现网络超时,检查你的网络连接,或者尝试给upload_video函数添加timeout参数(比如timeout=300,单位秒)。

内容的提问来源于stack exchange,提问作者user2975192

火山引擎 最新活动