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