← Back to Gene Catalog

text-to-video

Hybridmedia.video

Transform text into a multi-scene video using DeepSeek for scene decomposition and Seedance 2.0 for AI video generation. Each scene becomes a real 4-15s video clip with native audio. Only needs a DeepSeek key + Seedance key.

README

No documentation yet.

Gene authors can add a README when publishing.

Phenotype

Input

PropertyTypeReqDescription
textstringSource text to convert into video (10-5000 chars)
stylecinematic | cartoon | documentary | minimalist | vlog = cinematicVisual style for video prompts
titlestringVideo title
apiKeysobject
quality480p | 720p | 1080p = 720pVideo resolution
durationinteger = 8Duration per scene in seconds
aspectRatio16:9 | 9:16 | 1:1 | 4:3 | 21:9 = 16:9Video aspect ratio
generateAudioboolean = trueWhether Seedance generates synchronized audio (voice, SFX, BGM)

Output

PropertyTypeReqDescription
titlestring
scenesarray
sceneCountinteger
failedScenesinteger
ffmpegConcatstringFFmpeg command to concatenate all scene clips into final video
totalDurationnumberTotal duration in seconds
completedScenesinteger
Raw JSON Schema

inputSchema

{
  "type": "object",
  "required": [
    "text",
    "apiKeys"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 5000,
      "minLength": 10,
      "description": "Source text to convert into video (10-5000 chars)"
    },
    "style": {
      "enum": [
        "cinematic",
        "cartoon",
        "documentary",
        "minimalist",
        "vlog"
      ],
      "type": "string",
      "default": "cinematic",
      "description": "Visual style for video prompts"
    },
    "title": {
      "type": "string",
      "maxLength": 100,
      "description": "Video title"
    },
    "apiKeys": {
      "type": "object",
      "required": [
        "llm",
        "video"
      ],
      "properties": {
        "llm": {
          "type": "object",
          "required": [
            "apiKey"
          ],
          "properties": {
            "model": {
              "type": "string",
              "default": "deepseek-chat"
            },
            "apiKey": {
              "type": "string",
              "description": "LLM API key"
            },
            "baseUrl": {
              "type": "string",
              "description": "Custom base URL"
            },
            "provider": {
              "enum": [
                "deepseek",
                "openai",
                "anthropic"
              ],
              "type": "string",
              "default": "deepseek"
            }
          },
          "description": "LLM for scene decomposition (default: DeepSeek)"
        },
        "video": {
          "type": "object",
          "required": [
            "apiKey"
          ],
          "properties": {
            "model": {
              "type": "string",
              "default": "seedance-2.0"
            },
            "apiKey": {
              "type": "string",
              "description": "Seedance 2.0 API key"
            },
            "baseUrl": {
              "type": "string",
              "default": "https://api.evolink.ai/v1",
              "description": "API base URL (default: https://api.evolink.ai/v1)"
            }
          },
          "description": "Seedance 2.0 video generation"
        }
      }
    },
    "quality": {
      "enum": [
        "480p",
        "720p",
        "1080p"
      ],
      "type": "string",
      "default": "720p",
      "description": "Video resolution"
    },
    "duration": {
      "type": "integer",
      "default": 8,
      "maximum": 15,
      "minimum": 4,
      "description": "Duration per scene in seconds"
    },
    "aspectRatio": {
      "enum": [
        "16: 9",
        "9: 16",
        "1: 1",
        "4: 3",
        "21: 9"
      ],
      "type": "string",
      "default": "16: 9",
      "description": "Video aspect ratio"
    },
    "generateAudio": {
      "type": "boolean",
      "default": true,
      "description": "Whether Seedance generates synchronized audio (voice, SFX, BGM)"
    }
  }
}

outputSchema

{
  "type": "object",
  "required": [
    "scenes",
    "totalDuration",
    "sceneCount"
  ],
  "properties": {
    "title": {
      "type": "string"
    },
    "scenes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer"
          },
          "status": {
            "enum": [
              "completed",
              "failed"
            ],
            "type": "string"
          },
          "taskId": {
            "type": "string",
            "description": "Seedance task ID"
          },
          "duration": {
            "type": "number"
          },
          "videoUrl": {
            "type": "string",
            "description": "URL to the generated video clip"
          },
          "narration": {
            "type": "string"
          },
          "videoPrompt": {
            "type": "string"
          }
        }
      }
    },
    "sceneCount": {
      "type": "integer"
    },
    "failedScenes": {
      "type": "integer"
    },
    "ffmpegConcat": {
      "type": "string",
      "description": "FFmpeg command to concatenate all scene clips into final video"
    },
    "totalDuration": {
      "type": "number",
      "description": "Total duration in seconds"
    },
    "completedScenes": {
      "type": "integer"
    }
  }
}

Arena History

DateFitnessSafetyCalls
Mar 190.50001.001