{
  "schemaVersion": "1.0",
  "item": {
    "slug": "fliz-ai-video-generator",
    "name": "Fliz AI Video Generator",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jb-fliz/fliz-ai-video-generator",
    "canonicalUrl": "https://clawhub.ai/jb-fliz/fliz-ai-video-generator",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/fliz-ai-video-generator",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=fliz-ai-video-generator",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "LICENSE.txt",
      "assets/examples/python_client.py",
      "assets/examples/nodejs_client.js",
      "assets/examples/webhook_handler.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/fliz-ai-video-generator"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/fliz-ai-video-generator",
    "agentPageUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Fliz API Integration Skill",
        "body": "Transform text content into AI-generated videos programmatically."
      },
      {
        "title": "Quick Reference",
        "body": "ItemValueBase URLhttps://app.fliz.aiAuthBearer Token (JWT)Get Tokenhttps://app.fliz.ai/api-keysAPI Docshttps://app.fliz.ai/api-docsFormatJSON"
      },
      {
        "title": "Authentication",
        "body": "All requests require Bearer token authentication:\n\ncurl -X GET \"https://app.fliz.ai/api/rest/voices\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\"\n\nTest connection by calling GET /api/rest/voices - returns 200 if token is valid."
      },
      {
        "title": "1. Create Video",
        "body": "POST /api/rest/video\n\nMinimal request:\n\n{\n  \"fliz_video_create_input\": {\n    \"name\": \"Video Title\",\n    \"description\": \"Full content text to transform into video\",\n    \"format\": \"size_16_9\",\n    \"lang\": \"en\"\n  }\n}\n\nResponse:\n\n{\n  \"fliz_video_create\": {\n    \"video_id\": \"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\"\n  }\n}\n\nCRITICAL: The description field must contain the FULL TEXT content. Fliz does NOT extract content from URLs - upstream systems must fetch/process content first."
      },
      {
        "title": "2. Get Video Status",
        "body": "GET /api/rest/videos/{id}\n\nPoll this endpoint to track video generation progress. Check the step field:\n\nStepStatuspending → scrapping → script → image_* → speech → video_renderingProcessingcomplete✅ Ready - url field contains MP4failed / failed_unrecoverable❌ Error - check error fielduser_action⚠️ Requires manual intervention"
      },
      {
        "title": "3. List Videos",
        "body": "GET /api/rest/videos?limit=20&offset=0"
      },
      {
        "title": "4. Translate Video",
        "body": "POST /api/rest/videos/{from_video_id}/translate?new_lang=fr\n\nCreates a new video in the target language."
      },
      {
        "title": "5. Duplicate Video",
        "body": "POST /api/rest/videos/{from_video_id}/duplicate"
      },
      {
        "title": "6. List Voices / Musics",
        "body": "GET /api/rest/voices\nGET /api/rest/musics"
      },
      {
        "title": "Required Fields",
        "body": "name (string): Video title\ndescription (string): Full text content\nformat (enum): size_16_9 | size_9_16 | square\nlang (string): ISO 639-1 code (en, fr, es, de, pt, etc.)"
      },
      {
        "title": "Optional Customization",
        "body": "FieldDescriptionDefaultcategoryarticle | product | adarticlescript_styleNarrative styleautoimage_styleVisual stylehyperrealisticcaption_styleSubtitle styleanimated_backgroundcaption_positionbottom | centerbottomcaption_fontFont familypoppinscaption_colorHex color (#FFFFFF)whitecaption_uppercaseBooleanfalsevoice_idCustom voice IDautois_male_voiceBooleanautomusic_idMusic track IDautomusic_urlCustom music URLnullmusic_volume0-10015watermark_urlImage URLnullsite_urlCTA URLnullsite_nameCTA textnullwebhook_urlCallback URLnullis_automaticAuto-processtruevideo_animation_modefull_video | hook_onlyfull_videoimage_urlsArray of URLsnull\n\nNote: For product and ad categories, image_urls is required (3-10 images).\n\nFor complete enum values, see references/enums-values.md."
      },
      {
        "title": "Webhooks",
        "body": "Configure webhook_url to receive notifications when video is ready or fails:\n\n{\n  \"event\": \"video.complete\",\n  \"video_id\": \"a1b2c3d4-...\",\n  \"step\": \"complete\",\n  \"url\": \"https://cdn.fliz.ai/videos/xxx.mp4\"\n}"
      },
      {
        "title": "Error Handling",
        "body": "HTTP CodeMeaningAction200SuccessContinue400Bad RequestCheck params401UnauthorizedInvalid/expired token404Not FoundInvalid video ID429Rate LimitedRetry with backoff500Server ErrorRetry later"
      },
      {
        "title": "Polling Pattern (Recommended)",
        "body": "1. POST /api/rest/video → get video_id\n2. Loop: GET /api/rest/videos/{id}\n   - If step == \"complete\": done, get url\n   - If step contains \"failed\": error\n   - Else: wait 10-30s, retry"
      },
      {
        "title": "Webhook Pattern",
        "body": "1. POST /api/rest/video with webhook_url\n2. Process webhook callback when received"
      },
      {
        "title": "Code Examples",
        "body": "See assets/examples/ for ready-to-use implementations:\n\npython_client.py - Full Python wrapper\nnodejs_client.js - Node.js implementation\ncurl_examples.sh - cURL commands\nwebhook_handler.py - Flask webhook server"
      },
      {
        "title": "Scripts",
        "body": "ScriptUsagescripts/test_connection.pyValidate API keyscripts/create_video.pyCreate video from text filescripts/poll_status.pyMonitor video generationscripts/list_resources.pyFetch voices/musics\n\nRun with: python scripts/<script>.py --api-key YOUR_KEY"
      },
      {
        "title": "Common Issues",
        "body": "\"Invalid API response\": Verify JSON structure matches documentation exactly.\n\nVideo stuck in processing: Check step field - some steps like user_action require manual intervention in Fliz dashboard.\n\nNo URL extraction: The API requires direct text input. Build content extraction into your integration."
      },
      {
        "title": "References",
        "body": "API Reference - Complete endpoint documentation\nEnum Values - All valid parameter values\nIntegration Examples - Ready-to-use code"
      }
    ],
    "body": "Fliz API Integration Skill\n\nTransform text content into AI-generated videos programmatically.\n\nQuick Reference\nItem\tValue\nBase URL\thttps://app.fliz.ai\nAuth\tBearer Token (JWT)\nGet Token\thttps://app.fliz.ai/api-keys\nAPI Docs\thttps://app.fliz.ai/api-docs\nFormat\tJSON\nAuthentication\n\nAll requests require Bearer token authentication:\n\ncurl -X GET \"https://app.fliz.ai/api/rest/voices\" \\\n  -H \"Authorization: Bearer YOUR_API_KEY\" \\\n  -H \"Content-Type: application/json\"\n\n\nTest connection by calling GET /api/rest/voices - returns 200 if token is valid.\n\nCore Endpoints\n1. Create Video\nPOST /api/rest/video\n\n\nMinimal request:\n\n{\n  \"fliz_video_create_input\": {\n    \"name\": \"Video Title\",\n    \"description\": \"Full content text to transform into video\",\n    \"format\": \"size_16_9\",\n    \"lang\": \"en\"\n  }\n}\n\n\nResponse:\n\n{\n  \"fliz_video_create\": {\n    \"video_id\": \"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\"\n  }\n}\n\n\nCRITICAL: The description field must contain the FULL TEXT content. Fliz does NOT extract content from URLs - upstream systems must fetch/process content first.\n\n2. Get Video Status\nGET /api/rest/videos/{id}\n\n\nPoll this endpoint to track video generation progress. Check the step field:\n\nStep\tStatus\npending → scrapping → script → image_* → speech → video_rendering\tProcessing\ncomplete\t✅ Ready - url field contains MP4\nfailed / failed_unrecoverable\t❌ Error - check error field\nuser_action\t⚠️ Requires manual intervention\n3. List Videos\nGET /api/rest/videos?limit=20&offset=0\n\n4. Translate Video\nPOST /api/rest/videos/{from_video_id}/translate?new_lang=fr\n\n\nCreates a new video in the target language.\n\n5. Duplicate Video\nPOST /api/rest/videos/{from_video_id}/duplicate\n\n6. List Voices / Musics\nGET /api/rest/voices\nGET /api/rest/musics\n\nVideo Creation Parameters\nRequired Fields\nname (string): Video title\ndescription (string): Full text content\nformat (enum): size_16_9 | size_9_16 | square\nlang (string): ISO 639-1 code (en, fr, es, de, pt, etc.)\nOptional Customization\nField\tDescription\tDefault\ncategory\tarticle | product | ad\tarticle\nscript_style\tNarrative style\tauto\nimage_style\tVisual style\thyperrealistic\ncaption_style\tSubtitle style\tanimated_background\ncaption_position\tbottom | center\tbottom\ncaption_font\tFont family\tpoppins\ncaption_color\tHex color (#FFFFFF)\twhite\ncaption_uppercase\tBoolean\tfalse\nvoice_id\tCustom voice ID\tauto\nis_male_voice\tBoolean\tauto\nmusic_id\tMusic track ID\tauto\nmusic_url\tCustom music URL\tnull\nmusic_volume\t0-100\t15\nwatermark_url\tImage URL\tnull\nsite_url\tCTA URL\tnull\nsite_name\tCTA text\tnull\nwebhook_url\tCallback URL\tnull\nis_automatic\tAuto-process\ttrue\nvideo_animation_mode\tfull_video | hook_only\tfull_video\nimage_urls\tArray of URLs\tnull\n\nNote: For product and ad categories, image_urls is required (3-10 images).\n\nFor complete enum values, see references/enums-values.md.\n\nWebhooks\n\nConfigure webhook_url to receive notifications when video is ready or fails:\n\n{\n  \"event\": \"video.complete\",\n  \"video_id\": \"a1b2c3d4-...\",\n  \"step\": \"complete\",\n  \"url\": \"https://cdn.fliz.ai/videos/xxx.mp4\"\n}\n\nError Handling\nHTTP Code\tMeaning\tAction\n200\tSuccess\tContinue\n400\tBad Request\tCheck params\n401\tUnauthorized\tInvalid/expired token\n404\tNot Found\tInvalid video ID\n429\tRate Limited\tRetry with backoff\n500\tServer Error\tRetry later\nIntegration Patterns\nPolling Pattern (Recommended)\n1. POST /api/rest/video → get video_id\n2. Loop: GET /api/rest/videos/{id}\n   - If step == \"complete\": done, get url\n   - If step contains \"failed\": error\n   - Else: wait 10-30s, retry\n\nWebhook Pattern\n1. POST /api/rest/video with webhook_url\n2. Process webhook callback when received\n\nCode Examples\n\nSee assets/examples/ for ready-to-use implementations:\n\npython_client.py - Full Python wrapper\nnodejs_client.js - Node.js implementation\ncurl_examples.sh - cURL commands\nwebhook_handler.py - Flask webhook server\nScripts\nScript\tUsage\nscripts/test_connection.py\tValidate API key\nscripts/create_video.py\tCreate video from text file\nscripts/poll_status.py\tMonitor video generation\nscripts/list_resources.py\tFetch voices/musics\n\nRun with: python scripts/<script>.py --api-key YOUR_KEY\n\nCommon Issues\n\n\"Invalid API response\": Verify JSON structure matches documentation exactly.\n\nVideo stuck in processing: Check step field - some steps like user_action require manual intervention in Fliz dashboard.\n\nNo URL extraction: The API requires direct text input. Build content extraction into your integration.\n\nReferences\nAPI Reference - Complete endpoint documentation\nEnum Values - All valid parameter values\nIntegration Examples - Ready-to-use code"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jb-fliz/fliz-ai-video-generator",
    "publisherUrl": "https://clawhub.ai/jb-fliz/fliz-ai-video-generator",
    "owner": "jb-fliz",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator",
    "downloadUrl": "https://openagent3.xyz/downloads/fliz-ai-video-generator",
    "agentUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent",
    "manifestUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/fliz-ai-video-generator/agent.md"
  }
}