{
  "slug": "video-to-gif",
  "name": "gizza-ai/video-to-gif",
  "version": "0.1.0",
  "title": "Video to GIF Converter — gizza.ai",
  "description": "Turn any video into an animated GIF right in your browser. Pick a section, set fps and width — high-quality palette, runs locally, nothing is uploaded, free.",
  "tags": [
    "video",
    "gif",
    "animated-gif",
    "convert",
    "video-to-gif",
    "clip",
    "loop",
    "share"
  ],
  "category": "video",
  "urls": {
    "page": "https://gizza.ai/tools/video-to-gif/",
    "markdown": "https://gizza.ai/tools/video-to-gif/index.md",
    "descriptor": "https://gizza.ai/tools/video-to-gif/tool.json",
    "deep_link_example": "https://gizza.ai/tools/video-to-gif/?url=https://example.com/input&start=0&duration=5&fps=12&width=480"
  },
  "cli": "gizza tool video-to-gif 'url=https://example.com/input' 'start=0' 'duration=5' 'fps=12' 'width=480'",
  "tool": {
    "description": "Convert a section of a video into an optimized animated GIF. Provide either url (HTTP/HTTPS) or ref (id from a prior tool call). Optional start, duration, fps, and width. Output is a looping GIF made with a per-clip palette for high quality at a small size.",
    "parameters": {
      "additionalProperties": false,
      "oneOf": [
        {
          "required": [
            "url"
          ]
        },
        {
          "required": [
            "ref"
          ]
        }
      ],
      "properties": {
        "duration": {
          "description": "Clip length in seconds (default 0 = to the end of the video).",
          "minimum": 0,
          "type": "number"
        },
        "fps": {
          "description": "Frames per second of the GIF (default 12). Lower fps = smaller file.",
          "maximum": 60,
          "minimum": 0,
          "type": "number"
        },
        "ref": {
          "description": "Reference id from a prior tool call. Use either url or ref.",
          "type": "string"
        },
        "start": {
          "description": "Start time in seconds (default 0, from the beginning).",
          "minimum": 0,
          "type": "number"
        },
        "url": {
          "description": "Video URL (HTTP/HTTPS). Use either url or ref.",
          "type": "string"
        },
        "width": {
          "description": "Output width in pixels; height scales to keep aspect ratio (default 0 = keep source size).",
          "maximum": 4096,
          "minimum": 0,
          "type": "number"
        }
      },
      "type": "object"
    }
  }
}