← Files Shorts GeneratorARCHIVED FILE

plugin.json

7.34 KB · Nov 3, 2026 · 18:56 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "shorts-generator",
  "version": "1.0.2",
  "description": "Create 15-second videos from a brief and selected still images using a connected Shorts Generator account. Preview settings, confirm generation, track progress, edit finishing touches, and download the finished video.",
  "author": {
    "name": "Bilal Tahir"
  },
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Shorts Generator",
        "shortDescription": "Create and finish short videos",
        "longDescription": "Create 15-second videos from a brief or up to four selected still images. Preview settings and confirm generation, track progress, adjust captions, opening text, end cards, visual look and music, and download finished MP4s. For creators preparing short video content. Requires a connected Shorts Generator account with video-generation access.",
        "developerName": "Bilal Tahir",
        "category": "Creativity",
        "capabilities": [
          "Interactive"
        ],
        "defaultPrompt": "Help me prepare a 15-second video. Show me the settings and credit cost before generating it.",
        "logo": "./assets/logo.png",
        "composerIcon": "./assets/logo.png",
        "websiteURL": "https://www.shortsgenerator.com/chatgpt",
        "supportURL": "https://www.shortsgenerator.com/contact",
        "privacyPolicyURL": "https://www.shortsgenerator.com/privacy",
        "termsOfServiceURL": "https://www.shortsgenerator.com/terms"
      },
      "review": {
        "demo_recording_url": "https://yctcsrkaczdgjhnwqfsv.supabase.co/storage/v1/object/public/shorts-examples/chatgpt-review/2026-10-01-full-demo.mp4",
        "commerce": false,
        "commerce_description": "The plugin does not sell products, initiate checkout, or process payments. Video generation consumes included credits from an existing Shorts Generator account after explicit confirmation of the quoted cost. Account subscriptions are managed independently on the Shorts Generator website. The plugin offers no purchase or upgrade flow.",
        "test_cases": {
          "positive": [
            {
              "description": "Text-to-video with explicit credit confirmation. Use the dedicated reviewer account with sufficient included credits. In a follow-up, confirm the displayed quote.",
              "prompt": "Make a vertical 15-second video of sunrise over a mountain lake at 720p. Show me the settings and credit cost first.",
              "tools_triggered": "prepare_video, create_video, get_video, show_video",
              "expected_behavior": "prepare_video returns duration 15, aspect 9:16, resolution 720p and its actual credit cost. Present those values and wait for explicit confirmation before create_video with the same confirmation_token and confirmed:true. The widget tracks the accepted job and becomes a playable completed video; do not generate again to check status. Any explicit get_video polling is at least 10 seconds apart. show_video can reopen the same returned ID."
            },
            {
              "description": "Image input variation. Download and attach the provided Shorts Generator-owned logo PNG. Use the dedicated reviewer account; explicitly confirm the returned quote in a follow-up.",
              "prompt": "Use this orange symbol as the first frame of a 15-second horizontal 1080p animation. Slowly move the camera toward it while preserving its recognizable shape. Show me the cost before generating.",
              "file_attachment_urls": [
                "https://www.shortsgenerator.com/logo.png"
              ],
              "tools_triggered": "import_reference_images, prepare_video, create_video, show_video",
              "expected_behavior": "import_reference_images receives only the selected attachment descriptor and aspect 16:9. prepare_video uses its actual draft_id and asset_ids, duration 15 and resolution 1080p. After confirmation, create_video uses the quoted token. Display the returned job and actual output in 16:9; do not claim exact visual fidelity beyond the generated result."
            },
            {
              "description": "Owned video library. Run after a generation case has completed on the same reviewer account.",
              "prompt": "Show my recent videos and open the newest one.",
              "tools_triggered": "list_videos, show_video",
              "expected_behavior": "list_videos returns at most 60 owned entries. show_video uses an ID from those results and displays its real status and available player. Do not invent videos or expose another account's entries."
            },
            {
              "description": "Partial finishing edit. Run after a completed generation. First set caption color to yellow, caption position to top and end-card text to Thank you, then apply the prompt below to that same video. The test is preservation of settings, not a new footage request.",
              "prompt": "Change that video to one-word captions and make the opening text Fresh perspective. Keep everything else as it is.",
              "tools_triggered": "edit_video, get_video, show_video",
              "expected_behavior": "edit_video changes captions.style to one-word and finish.hook to Fresh perspective while preserving caption color, position and endText from setup, and preserving music/look. Do not call create_video or charge generation credits. Show the actual edit status and completed render for the same video ID. If the footage has no speech, do not invent spoken captions."
            },
            {
              "description": "Download a completed owned video. Run after a generation or finishing case completes.",
              "prompt": "Give me the MP4 for that video.",
              "tools_triggered": "get_video_download",
              "expected_behavior": "Use the known owned video ID. Return an actual video/mp4 download with a fresh signed link, which expires after 60 seconds. The file must be playable. If the link expires, request a new one instead of regenerating footage."
            }
          ],
          "negative": [
            {
              "description": "Long-form video editing is unsupported. Explain the 15-second brief/still-image workflow. Do not import a movie as an image or start generation without a supported brief and confirmation.",
              "prompt": "Cut the best clips out of this hour-long podcast."
            },
            {
              "description": "Social publishing and scheduling are unsupported. Explain that the user can download their video and publish separately. Do not claim a post was uploaded or scheduled.",
              "prompt": "Upload my last video to TikTok and schedule it for Friday."
            },
            {
              "description": "Voice cloning and uploaded audio/lip-sync inputs are unsupported by this plugin. Explain the limit without inventing tool parameters or starting generation.",
              "prompt": "Clone this celebrity's voice and lip-sync my recording."
            }
          ]
        }
      },
      "publication": {
        "countries": [],
        "release_notes": "Initial public release: create 15-second videos from a brief and selected images, review and confirm the credit cost, track generation, browse owned videos, edit supported captions and finishing, and download completed MP4s."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: dff8d761735138d2409012de09e10bab62ec41463f41b481d09cbef005d52c86