python+manim调用openai兼容api实现科普知识类视频生成代码

代码语言:python

所属分类:其他

代码描述:python+manim调用openai兼容api实现科普知识类视频生成代码,注意,由于使用了LaTeX ,所以去这个网站下载安装LaTeX ,并且打开MiKTeX Console进行更新,最后生成一个视频讲解知识类的mp4视频,通过ai来生成json场景数据,最后使用manim渲染成动画视频。

代码标签: python manim 调用 openai 兼容 api 科普 知识 视频 生成 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import openai
import json
import os
from dotenv import load_dotenv
from manim import *

# --- Part 1: AI Script Generation ---

def generate_video_script_from_topic(topic):
    load_dotenv()
    try:
        client = openai.OpenAI(api_key="", base_url="https://generativelanguage.googleapis.com/v1beta/openai/")
    except Exception as e:
        print(f"Error initializing OpenAI client: {e}")
        return None

    prompt = f"""
    你是一位顶尖的、富有创造力的科普视频编剧和 Manim 动画导演。
    请为主题 "{topic}" 构思一个视觉上引人入胜的科普视频脚本。
    你的输出必须是一个严格的JSON对象,包含一个 "scenes" 列表。

    每个场景对象应包含以下键:
    - "narration": 该场景的解说词。
    - "animation_type": 你可以使用的动画工具。
    - "animation_details": 动画所需的参数。

    你拥有以下强大的动画工具箱:

    1. "TitleCard":
       - "details": {{"title": "主标题", "subtitle": "副标题"}}
       - 作用:创建一个引人注目的标题卡。

    2. "DrawAndLabelShape":
       - "details": {{
           "id": "unique_id_for_this_shape", 
           "shape": "circle" | "square", 
           "params": {{"radius": 2}} | {{"side_length": 3}},
           "labels": [
             {{"text": "r", "target": "radius", "direction": "UP"}},
             {{"text": "d", "target": "diameter", "direction": "RIGHT"}}
           ]
         }}
       - 作用:绘制一个图形,并用指示线和文字为其关键部分添加标签。'id' 是必须的,用于后续引用。direction 可选 UP, DOWN, LEFT, RIGHT。

    3. "HighlightProperty":
       - "details": {{
           "id_ref": "id_of_the_shape_to_use",
           "property": "unroll_circumference" 
         }}
       - 作用:用一种生动的动画来展示一个几何属性。例如,"unroll_circumference" 会将指定 'id' 的圆的周长“展开”成一条直线。

    4. "AnimateFormula":
 .........完整代码请登录后点击上方下载按钮下载查看

网友评论0