{
  "schema": "leumas.docs.page/1",
  "id": "skill:leumas-studio#domains/yt-studio",
  "slug": "skills/leumas-studio/domains/yt-studio",
  "kind": "tools",
  "bucket": "skill",
  "title": "YouTube Generator — what you can do",
  "name": "YouTube Generator",
  "eyebrow": "what you can do",
  "chip": null,
  "summary": "<!-- GENERATED by ops/tools/skill-sync — do not edit by hand. Run pnpm skills:sync. -->",
  "keywords": [
    "leumas-studio",
    "skill-sync",
    "pnpm",
    "skills",
    "edit",
    "hand",
    "generated",
    "tools agent call"
  ],
  "audience": "both",
  "funnel": {
    "product": null,
    "cta": null
  },
  "body": "<!-- GENERATED by ops/tools/skill-sync — do not edit by hand. Run `pnpm skills:sync`. -->\n\n# YouTube Generator — what you can do\n\n`/admin/d/yt-studio` · pillar `apps`\n\nAdapter-based AI YouTube video generation — pick a generator (fall-asleep + more), describe an idea, and get a publish-ready video with voice, visuals, captions, thumbnail & SEO. Renders run as durable jobs you can leave and come back to.\n\n## Tabs\n\nEvery one is a real URL. A tab with its own section below carries a real job.\n\n| Tab | Path | Group | What it is for |\n|---|---|---|---|\n| `generators` | `/admin/yt-studio` | - | - |\n| `jobs` | `/admin/yt-studio/jobs` | - | - |\n| `channels` | `/admin/yt-studio/channels` | - | - |\n| `planner` | `/admin/yt-studio/planner` | - | - |\n\n## Tools an agent can call here\n\nThese are **live page capabilities**: they exist only while that surface is open, and they\ncall the page's own mutators, so a change made through one is a change the operator can see. A tool\nmissing from this list is not callable — reach for the API or an adapter instead.\n\n### `yt-studio:generator:…` — YouTube Generator — …\n\nSource: `yt-studio/model/useGeneratorCapabilities.js`\n\nWhat the page tells an agent about itself:\n\n> The user is on the \"${generator?.label || type}\" YouTube video generator (${generator?.aspect || '16:9'}).\n>\n> To make a video, call generate_video with a topic (and optional minutes/voice). It queues a durable render the user can watch or leave; use get_current_job to report the stage/progress and, when done, the preview URL + publish-ready SEO.\n>\n> You can set_field (e.g. topic, minutes) or set_voice first. Report exactly what you did.\n\n| Tool | Args | Does |\n|---|---|---|\n| `describe_generator` | — | Read the current YouTube generator: its type, label, aspect ratio, the input fields, and the current form values + selected voice. Call this first. |\n| `get_current_job` | — | Report the current render job on this page: its status, stage and progress, and — when done — the preview video URL, thumbnail and publish-ready SEO (title/description/tags). |\n| `set_field` | `name` `value` | Set an input field on the generator form (e.g. name \"topic\" or \"minutes\") before generating. |\n| `set_voice` | `provider` | Choose the voice: \"auto\" (best available), \"openai\", \"elevenlabs\", or \"say\" (offline system voice). |\n| `generate_video` | `topic` `minutes` `voice` | Generate a video NOW with the given topic (and optional minutes / voice). Starts a durable render job on the server — you can leave the page and it keeps going. Then call get_current_job to report progress and, when done, the video URL + SEO. |\n\n## API\n\nMounted prefixes that serve this domain: `/api/yt-studio`\n\nThe full route table is `leumas-capabilities/reference/api-routes.md`.\n\n",
  "source": {
    "path": ".claude/skills/leumas-studio/reference/domains/yt-studio.md",
    "blobSha": "",
    "commit": "",
    "committedAt": "",
    "provenance": "no-git",
    "bytes": 2793,
    "hash": "948be7c68e76290397c19703b6d0e8dd7ed02926"
  },
  "urls": {
    "html": "/p/skills/leumas-studio/domains/yt-studio",
    "json": "/docs/skills/leumas-studio/domains/yt-studio.json",
    "md": "/docs/skills/leumas-studio/domains/yt-studio.md"
  },
  "links": {
    "composes": [],
    "usedBy": [],
    "product": [],
    "howTo": [],
    "skills": []
  }
}
