Tutorializer Video Tutorials
Write and update video tutorials, voiceovers and pronunciation rules across your projects.
使うべきか
品質と安全性
検出事項(1)
- LOWget_project_localization_summary 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"tutorializer": {
"url": "https://mcp.tutorializer.com/mcp"
}
}
}リモートエンドポイント
https://mcp.tutorializer.com/mcpstreamable-httpできること
ツール一覧
ツール(23)
🟢list_projects(limit, cursor)
List a bounded page of Tutorializer projects the authenticated user has access to. Returns a Markdown table of id, name, domain, and last edit time.
入力スキーマ
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque cursor from a previous call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"projects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"vanityId": {
"anyOf": [
{
"type": "string",
"maxLength": 63
},
{
"type": "null"
}
]
},
"domain": {
"anyOf": [
{
"type": "string",
"maxLength": 253
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"vanityId",
"domain",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"projects",
"offset",
"returned",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_project(projectId)
Fetch a single Tutorializer project by immutable id or stable public vanity id. Returns the project metadata, its locale and voice settings, and any pronunciation rules formatted as Markdown.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Project id or stable public vanity id"
}
},
"required": [
"projectId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"project": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"vanityId": {
"anyOf": [
{
"type": "string",
"maxLength": 63
},
{
"type": "null"
}
]
},
"domain": {
"anyOf": [
{
"type": "string",
"maxLength": 253
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"locales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"stability": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1
},
{
"type": "null"
}
]
},
"similarityBoost": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1
},
{
"type": "null"
}
]
},
"style": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1
},
{
"type": "null"
}
]
},
"speed": {
"anyOf": [
{
"type": "number",
"minimum": 0.1,
"maximum": 10
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"pronunciationRules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"word": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"phonemes": {
"anyOf": [
{
"type": "string",
"maxLength": 500
},
{
"type": "null"
}
]
},
"alphabet": {
"type": "string",
"enum": [
"ipa",
"cmu"
]
}
},
"required": [
"word",
"phonemes",
"alphabet"
],
"additionalProperties": false
},
"maxItems": 50
},
"pronunciationRuleCount": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"pronunciationRuleCountIsLowerBound": {
"type": "boolean"
},
"pronunciationRulesTruncated": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"vanityId",
"domain",
"defaultLocale",
"locales",
"defaultVoice",
"stability",
"similarityBoost",
"style",
"speed",
"creationTime",
"lastEditTime",
"pronunciationRules",
"pronunciationRuleCount",
"pronunciationRuleCountIsLowerBound",
"pronunciationRulesTruncated"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"project"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_project_localization_summary(projectId, expectedDevices)
Audit one Tutorializer project across configured locales, rendered-video locales/devices, and speech languages. Reads at most 100 rows per content type and marks truncated totals as lower bounds.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorializer project id or stable public vanity id"
},
"expectedDevices": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"minItems": 1,
"maxItems": 10,
"description": "Expected output device names; defaults to computer, tablet, and smartphone"
}
},
"required": [
"projectId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"summary": {
"anyOf": [
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"configuredLocales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"configuredLocalesTruncated": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"defaultLocale",
"configuredLocales",
"configuredLocalesTruncated"
],
"additionalProperties": false
},
"totals": {
"type": "object",
"properties": {
"tutorials": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"isLowerBound": {
"type": "boolean"
}
},
"required": [
"count",
"isLowerBound"
],
"additionalProperties": false
},
"videos": {
"$ref": "#/properties/summary/anyOf/0/properties/totals/properties/tutorials"
},
"speeches": {
"$ref": "#/properties/summary/anyOf/0/properties/totals/properties/tutorials"
}
},
"required": [
"tutorials",
"videos",
"speeches"
],
"additionalProperties": false
},
"localeCoverage": {
"type": "array",
"items": {
"type": "object",
"properties": {
"locale": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"configured": {
"type": "boolean"
},
"videos": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"speeches": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"locale",
"configured",
"videos",
"speeches"
],
"additionalProperties": false
},
"maxItems": 50
},
"localeCoverageTotal": {
"type": "integer",
"minimum": 0,
"maximum": 300
},
"localeCoverageTruncated": {
"type": "boolean"
},
"deviceCoverage": {
"type": "array",
"items": {
"type": "object",
"properties": {
"device": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"videos": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
},
"required": [
"device",
"videos"
],
"additionalProperties": false
},
"maxItems": 10
},
"missingVideoLocales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"missingSpeechLocales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"missingDevices": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40
},
"maxItems": 10
},
"coverageDerivedFromTruncatedData": {
"type": "boolean"
}
},
"required": [
"project",
"totals",
"localeCoverage",
"localeCoverageTotal",
"localeCoverageTruncated",
"deviceCoverage",
"missingVideoLocales",
"missingSpeechLocales",
"missingDevices",
"coverageDerivedFromTruncatedData"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"summary"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_tutorials(projectId, limit, cursor)
List Tutorializer tutorial definitions. Optionally filter by projectId. Returns a Markdown table of id, name, project, default voice, and last edit time; rendered locales and devices live on videos.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"maxLength": 200,
"description": "Filter tutorials by project id"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque cursor from a previous call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"projectIdFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorials": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"projectId",
"defaultVoice",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"projectIdFilter",
"tutorials",
"offset",
"returned",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_tutorial(tutorialId)
Fetch one Tutorializer tutorial definition and a bounded preview of its rendered locale/device outputs. A tutorial does not itself have a locale or status; those vary per video.
入力スキーマ
{
"type": "object",
"properties": {
"tutorialId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorial id (uuid)"
}
},
"required": [
"tutorialId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"tutorial": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"projectId",
"defaultVoice",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"videoCount": {
"type": "integer",
"minimum": 0,
"maximum": 8
},
"videoCountIsLowerBound": {
"type": "boolean"
},
"videos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"chaptersUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"subtitlesUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"thumbnailUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"locale",
"device",
"format",
"width",
"height",
"url",
"chaptersUrl",
"subtitlesUrl",
"thumbnailUrl"
],
"additionalProperties": false
},
"maxItems": 8
}
},
"required": [
"status",
"tutorial",
"videoCount",
"videoCountIsLowerBound",
"videos"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_videos(projectId, tutorialId, locale, device, limit, ...)
List rendered Tutorializer videos. Optionally filter by projectId, tutorialId, locale, and device. Returns a Markdown table of output dimensions, locale, device, format, and URL.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"maxLength": 200,
"description": "Filter videos by project id"
},
"tutorialId": {
"type": "string",
"maxLength": 200,
"description": "Filter videos by tutorial id"
},
"locale": {
"type": "string",
"maxLength": 32,
"description": "Filter by locale, e.g. en, es"
},
"device": {
"type": "string",
"maxLength": 100,
"description": "Filter by device, e.g. desktop, smartphone"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque cursor from a previous call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"projectIdFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorialIdFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"localeFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"deviceFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"videos": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorialId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"fileSize": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000000
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"tutorialId",
"projectId",
"url",
"locale",
"device",
"format",
"width",
"height",
"fileSize",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"projectIdFilter",
"tutorialIdFilter",
"localeFilter",
"deviceFilter",
"videos",
"offset",
"returned",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_video(videoId)
Fetch a single rendered Tutorializer video by id. Returns its tutorial, locale, device, dimensions, primary media URL, chapters, subtitles, and thumbnail metadata.
入力スキーマ
{
"type": "object",
"properties": {
"videoId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Video id (uuid)"
}
},
"required": [
"videoId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"video": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorialId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"theme": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"fileSize": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000000
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"chaptersUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"subtitlesUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"thumbnailUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"projectId",
"tutorialId",
"locale",
"device",
"theme",
"format",
"width",
"height",
"fileSize",
"url",
"chaptersUrl",
"subtitlesUrl",
"thumbnailUrl",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"video"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_speeches(projectId, language, limit, cursor)
List a bounded page of Tutorializer speeches (voiceover segments). Optionally filter by projectId and language. Returns a safe preview of id, text, language, project, and URL.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"maxLength": 200,
"description": "Filter speeches by project id"
},
"language": {
"type": "string",
"maxLength": 32,
"description": "Filter speeches by language code, e.g. en, es, de"
},
"limit": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
},
"cursor": {
"type": "string",
"maxLength": 4096,
"description": "Opaque cursor from a previous call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"empty"
]
},
"projectIdFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"languageFilter": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"speeches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"textPreview": {
"anyOf": [
{
"type": "string",
"maxLength": 120
},
{
"type": "null"
}
]
},
"textTruncated": {
"type": "boolean"
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"textPreview",
"textTruncated",
"language",
"projectId",
"url",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
"maxItems": 100
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"anyOf": [
{
"type": "string",
"maxLength": 4096
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"projectIdFilter",
"languageFilter",
"speeches",
"offset",
"returned",
"hasMore",
"nextCursor"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_speech(speechId)
Fetch a single Tutorializer speech (voiceover segment) by id. Returns the speech metadata plus its full source text and translation formatted as Markdown.
入力スキーマ
{
"type": "object",
"properties": {
"speechId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Speech id (uuid)"
}
},
"required": [
"speechId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"found",
"not-found"
]
},
"speech": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"voice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 86400
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"text": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
]
},
"textTruncated": {
"type": "boolean"
},
"translatedText": {
"anyOf": [
{
"type": "string",
"maxLength": 4000
},
{
"type": "null"
}
]
},
"translatedTextTruncated": {
"type": "boolean"
}
},
"required": [
"id",
"projectId",
"language",
"voice",
"duration",
"url",
"creationTime",
"lastEditTime",
"text",
"textTruncated",
"translatedText",
"translatedTextTruncated"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"speech"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴create_project(name, domain, defaultLocale)
Create a Tutorializer project. State-changing and non-idempotent: repeating the call creates another project, so list projects and confirm the intended name first.
入力スキーマ
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Project name"
},
"domain": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"description": "Optional product domain, for example example.com"
},
"defaultLocale": {
"type": "string",
"minLength": 2,
"maxLength": 16,
"description": "Default locale code, for example en or pt-BR"
}
},
"required": [
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "created"
},
"project": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"vanityId": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 63
},
{
"type": "null"
}
]
},
"domain": {
"anyOf": [
{
"type": "string",
"maxLength": 253
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 16
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"vanityId",
"domain",
"defaultLocale"
],
"additionalProperties": false
}
},
"required": [
"status",
"project"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_project(projectId, name, domain, defaultLocale, locales, ...)
Change a Tutorializer project’s name, domain, locales, default voice or narration speed. Reads the stored project first and rewrites the whole record, so unspecified fields keep their current values. The locales list is a complete replacement, and removing a locale stops it being expected by the localization audit. Submitting the values it already has is a no-op.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Project id or stable public vanity id"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "New name"
},
"domain": {
"type": "string",
"minLength": 1,
"maxLength": 253,
"description": "New product domain, for example example.com"
},
"defaultLocale": {
"type": "string",
"minLength": 2,
"maxLength": 16,
"description": "New default locale, for example en or pt-BR"
},
"locales": {
"type": "array",
"items": {
"type": "string",
"minLength": 2,
"maxLength": 32
},
"minItems": 1,
"maxItems": 100,
"description": "Complete replacement list of locales the project publishes. Locales absent from this list stop being expected."
},
"defaultVoice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "New default voice id for synthesized narration"
},
"speed": {
"type": "number",
"minimum": 0.1,
"maximum": 10,
"description": "New narration speed multiplier"
}
},
"required": [
"projectId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"updated",
"unchanged",
"not-found"
]
},
"project": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"vanityId": {
"anyOf": [
{
"type": "string",
"maxLength": 63
},
{
"type": "null"
}
]
},
"domain": {
"anyOf": [
{
"type": "string",
"maxLength": 253
},
{
"type": "null"
}
]
},
"defaultLocale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"locales": {
"type": "array",
"items": {
"type": "string",
"maxLength": 32
},
"maxItems": 100
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"speed": {
"anyOf": [
{
"type": "number",
"minimum": 0.1,
"maximum": 10
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"vanityId",
"domain",
"defaultLocale",
"locales",
"defaultVoice",
"speed",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"project"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴create_tutorial(projectId, name, defaultVoice)
Create a Tutorializer tutorial definition inside a project. State-changing and non-idempotent: repeating the call creates another tutorial, so list tutorials and confirm the intended name first. This records the tutorial; it does not record or render a video.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Project id that will own the tutorial"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorial name"
},
"defaultVoice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Optional voice id used when narration is synthesized for this tutorial"
}
},
"required": [
"projectId",
"name"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "created"
},
"tutorial": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"projectId",
"defaultVoice",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
}
},
"required": [
"status",
"tutorial"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_tutorial(tutorialId, name, defaultVoice)
Rename a Tutorializer tutorial or change the default voice used for its narration. Reads the stored tutorial first and rewrites the whole record, so unspecified fields keep their current values. Submitting the values it already has is a no-op.
入力スキーマ
{
"type": "object",
"properties": {
"tutorialId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorial id to edit"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "New tutorial name"
},
"defaultVoice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "New default voice id for synthesized narration"
}
},
"required": [
"tutorialId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"updated",
"unchanged",
"not-found"
]
},
"tutorial": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"projectId",
"defaultVoice",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"tutorial"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴create_video(projectId, tutorialId, url, locale, device, ...)
Register one already-uploaded rendered tutorial video with Tutorializer, recording its locale, device, dimensions and media URLs. State-changing and non-idempotent: repeating the call registers a second output. This does not record, render or upload a file; host the file first and pass its public https URL.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Project id that owns the tutorial"
},
"tutorialId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorial id this rendered output belongs to"
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public https URL of the already-uploaded video file"
},
"locale": {
"type": "string",
"minLength": 2,
"maxLength": 32,
"description": "Locale of this render, for example en or pt-BR"
},
"device": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Device profile, for example computer or smartphone"
},
"format": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Container or codec, for example mp4 or webm"
},
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"duration": {
"type": "number",
"minimum": 0,
"maximum": 86400,
"description": "Duration in seconds"
},
"fileSize": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000000,
"description": "File size in bytes"
},
"chaptersUrl": {
"$ref": "#/properties/url",
"description": "Public https URL of chapters"
},
"subtitlesUrl": {
"$ref": "#/properties/chaptersUrl",
"description": "Public https URL of a WebVTT subtitle track"
},
"thumbnailUrl": {
"$ref": "#/properties/chaptersUrl",
"description": "Public https URL of a poster"
}
},
"required": [
"projectId",
"tutorialId",
"url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "created"
},
"video": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorialId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 86400
},
{
"type": "null"
}
]
},
"fileSize": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000000
},
{
"type": "null"
}
]
},
"chaptersUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"subtitlesUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"thumbnailUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"projectId",
"tutorialId",
"url",
"locale",
"device",
"format",
"width",
"height",
"duration",
"fileSize",
"chaptersUrl",
"subtitlesUrl",
"thumbnailUrl",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
}
},
"required": [
"status",
"video"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_video(videoId, url, locale, device, format, ...)
Correct the metadata of one registered Tutorializer rendered video, such as its locale, device, dimensions or media URLs. Reads the stored record first and rewrites the whole document, so unspecified fields keep their current values. Submitting the values it already has is a no-op.
入力スキーマ
{
"type": "object",
"properties": {
"videoId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Rendered video id"
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "New public https URL of the video file"
},
"locale": {
"type": "string",
"minLength": 2,
"maxLength": 32
},
"device": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"format": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"width": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"height": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"duration": {
"type": "number",
"minimum": 0,
"maximum": 86400
},
"fileSize": {
"type": "number",
"minimum": 0,
"maximum": 1000000000000000
},
"chaptersUrl": {
"$ref": "#/properties/url"
},
"subtitlesUrl": {
"$ref": "#/properties/url"
},
"thumbnailUrl": {
"$ref": "#/properties/url"
}
},
"required": [
"videoId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"updated",
"unchanged",
"not-found"
]
},
"video": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"tutorialId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"locale": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"device": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"type": "string",
"maxLength": 100
},
{
"type": "null"
}
]
},
"width": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"height": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 100000
},
{
"type": "null"
}
]
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 86400
},
{
"type": "null"
}
]
},
"fileSize": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000000000
},
{
"type": "null"
}
]
},
"chaptersUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"subtitlesUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"thumbnailUrl": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"projectId",
"tutorialId",
"url",
"locale",
"device",
"format",
"width",
"height",
"duration",
"fileSize",
"chaptersUrl",
"subtitlesUrl",
"thumbnailUrl",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"video"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴create_speech(projectId, text, language, translatedText, voice, ...)
Create one Tutorializer voiceover segment for a project. Without a url it synthesizes narration audio from the text with the project's speech provider, which consumes the organization's synthesis credits and is billable. Pass url instead to register audio you already produced. State-changing and non-idempotent: repeating the call creates another segment and synthesizes again.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Project id that will own the voiceover segment"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Narration text to speak"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 32,
"description": "Language code of the narration, for example en or pt-BR"
},
"translatedText": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "Optional translation spoken instead of the source text"
},
"voice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Optional voice id; defaults to the project's default voice"
},
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public https URL of audio you already produced. Supplying it records the segment without synthesizing anything."
}
},
"required": [
"projectId",
"text",
"language"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"created",
"recorded"
]
},
"synthesized": {
"type": "boolean"
},
"speech": {
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"voice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 86400
},
{
"type": "null"
}
]
},
"textPreview": {
"anyOf": [
{
"type": "string",
"maxLength": 5000
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"projectId",
"language",
"voice",
"url",
"duration",
"textPreview",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
}
},
"required": [
"status",
"synthesized",
"speech"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴update_speech(speechId, text, translatedText, language, voice)
Change the text, translation, language or voice of one Tutorializer voiceover segment. Every one of those fields determines the audio, so a real change re-synthesizes the segment with the project's speech provider, consumes synthesis credits and replaces the previous audio. Submitting the values it already has is a no-op that synthesizes nothing.
入力スキーマ
{
"type": "object",
"properties": {
"speechId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Voiceover segment id to edit"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "New narration text"
},
"translatedText": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "New translation spoken instead of the source text"
},
"language": {
"type": "string",
"minLength": 2,
"maxLength": 32,
"description": "New language"
},
"voice": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "New voice id"
}
},
"required": [
"speechId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"updated",
"unchanged",
"not-found"
]
},
"resynthesized": {
"type": "boolean"
},
"speech": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"projectId": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"language": {
"anyOf": [
{
"type": "string",
"maxLength": 32
},
{
"type": "null"
}
]
},
"voice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"url": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
},
"duration": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 86400
},
{
"type": "null"
}
]
},
"textPreview": {
"anyOf": [
{
"type": "string",
"maxLength": 5000
},
{
"type": "null"
}
]
},
"creationTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"projectId",
"language",
"voice",
"url",
"duration",
"textPreview",
"creationTime",
"lastEditTime"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"resynthesized",
"speech"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴set_pronunciation_rule(projectId, word, phonemes, alphabet)
Add or replace one project pronunciation rule and synchronize its ElevenLabs pronunciation dictionary. Repeating an identical rule is a no-op.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorializer project id"
},
"word": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Word or phrase to match"
},
"phonemes": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "Phonetic pronunciation"
},
"alphabet": {
"type": "string",
"enum": [
"ipa",
"cmu"
],
"description": "Phonetic alphabet; defaults to ipa"
}
},
"required": [
"projectId",
"word",
"phonemes"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"added",
"replaced",
"unchanged",
"project-not-found"
]
},
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"rule": {
"type": "object",
"properties": {
"word": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"phonemes": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"alphabet": {
"type": "string",
"enum": [
"ipa",
"cmu"
]
}
},
"required": [
"word",
"phonemes",
"alphabet"
],
"additionalProperties": false
},
"ruleCount": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 500
},
{
"type": "null"
}
]
},
"ruleCountIsLowerBound": {
"type": "boolean"
}
},
"required": [
"status",
"projectId",
"rule",
"ruleCount",
"ruleCountIsLowerBound"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴remove_pronunciation_rule(projectId, word)
Remove one project pronunciation rule and synchronize its ElevenLabs dictionary. Destructive but idempotent: a missing rule is a no-op. Existing speech audio is not regenerated automatically.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorializer project id"
},
"word": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Exact word or phrase whose pronunciation rule should be removed"
}
},
"required": [
"projectId",
"word"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"removed",
"unchanged",
"project-not-found"
]
},
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"word": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"remainingRuleCount": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 500
},
{
"type": "null"
}
]
},
"remainingRuleCountIsLowerBound": {
"type": "boolean"
}
},
"required": [
"status",
"projectId",
"word",
"remainingRuleCount",
"remainingRuleCountIsLowerBound"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_tutorial(tutorialId)
Permanently delete one Tutorializer tutorial definition. Idempotent, but the definition must be authored again to restore it. Rendered videos and voiceover segments are not deleted with it; remove those separately.
入力スキーマ
{
"type": "object",
"properties": {
"tutorialId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorial id to delete"
}
},
"required": [
"tutorialId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "deleted"
},
"tutorialId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"status",
"tutorialId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_speech(speechId)
Permanently delete one Tutorializer speech record plus its S3 audio and alignment files. Idempotent, but deleted audio cannot be recovered without synthesizing it again and spending credits.
入力スキーマ
{
"type": "object",
"properties": {
"speechId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Speech id to delete"
}
},
"required": [
"speechId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "deleted"
},
"speechId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"status",
"speechId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_video(videoId)
Permanently delete one Tutorializer rendered-video record and its primary S3 object. Idempotent, but the render must be uploaded or generated again to restore it.
入力スキーマ
{
"type": "object",
"properties": {
"videoId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Rendered video id to delete"
}
},
"required": [
"videoId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "deleted"
},
"videoId": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"status",
"videoId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢show_project_overview(projectId)
Render a bounded tenant-scoped Tutorializer project snapshot with tutorial, video, and voiceover counts. Use this after listing projects or when the user provides an immutable project id or stable public vanity id.
入力スキーマ
{
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Tutorializer project id or stable public vanity id to render"
}
},
"required": [
"projectId"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}出力スキーマ
{
"type": "object",
"properties": {
"project": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"domain": {
"anyOf": [
{
"type": "string",
"maxLength": 253
},
{
"type": "null"
}
]
},
"logo": {
"anyOf": [
{
"type": "string",
"maxLength": 2048
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"domain",
"logo"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tutorialCount": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"tutorialCountIsLowerBound": {
"type": "boolean"
},
"videoCount": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"videoCountIsLowerBound": {
"type": "boolean"
},
"speechCount": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"speechCountIsLowerBound": {
"type": "boolean"
},
"tutorials": {
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"defaultVoice": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "null"
}
]
},
"lastEditTime": {
"anyOf": [
{
"type": "string",
"maxLength": 64
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"name",
"defaultVoice",
"lastEditTime"
],
"additionalProperties": false
}
}
},
"required": [
"project",
"tutorialCount",
"tutorialCountIsLowerBound",
"videoCount",
"videoCountIsLowerBound",
"speechCount",
"speechCountIsLowerBound",
"tutorials"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}コミュニティ
エビデンス