Slice

Turn long podcast episodes, video or audio, into captioned vertical clips and transcripts.

使うべきか

品質と安全性

A
説明の品質
100%
スキーマの完全性
95%
命名の品質
91%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~5,468トークン数(ツール定義)
~4.2 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 4.27%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "slice": {
      "url": "https://mcp.tryslicemedia.com/mcp"
    }
  }
}

リモートエンドポイント

https://mcp.tryslicemedia.com/mcpstreamable-http

できること

ツール一覧

ツール(11)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🔴start_episode(file, name, content_type, target_seconds)

Use this when the user wants a podcast, interview, stream or other video turned into short clips. An audio-only episode (MP3, M4A, WAV, OGG or FLAC) works too: its clips come out as captioned vertical videos drawn with an audio template. With a video or audio file attached in the chat, pass it as file: it is copied into Slice, transcribed, and searched for the moments worth posting, with no further steps. With no file, it returns an upload_url for the user to open and drop the file in (up to three hours and 4.5GB). Follow with get_episode. Do not use when the user only wants the words as text (use transcribe_audio), and do not use for links to YouTube or other web pages; those are not supported.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "object",
      "description": "A video or audio file the user attached in the conversation.",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "additionalProperties": false
    },
    "name": {
      "type": "string",
      "description": "What to call the episode. Defaults to the file name."
    },
    "content_type": {
      "type": "string",
      "enum": [
        "podcast",
        "stream",
        "other"
      ],
      "description": "What kind of video it is, which decides how clips are found: podcast (a podcast or interview), stream (a livestream or gaming video) or other (a vlog, challenge, talk or story). Pass it when the user's video is clearly one of these. Otherwise leave it out and Slice will guess."
    },
    "target_seconds": {
      "type": "integer",
      "minimum": 15,
      "maximum": 180,
      "description": "Optional. How long each clip should be, in seconds (15 to 180), when the user asks for a length, e.g. \"30 second clips\". Every clip found then plays for at most this long and at most 10% less (at least 3 seconds less), cut at clean sentence or pause boundaries; fewer clips come back if few moments fit. Leave it out for clips of any length (30 to 150 seconds). Works with or without a focus."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "waiting_for_upload",
        "uploading",
        "transcribing",
        "finding_clips",
        "ready",
        "failed"
      ]
    },
    "upload_url": {
      "type": "string",
      "description": "Open this to upload the video or audio file. Works for two hours."
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "episode_id",
    "status",
    "message"
  ]
}
🟢get_episode(episode_id)

Use this when the user asks how an episode is going, whether it is ready, or what clips were found. Returns one status for the whole pipeline (waiting_for_upload, uploading, transcribing, finding_clips, ready or failed) and, once ready, the found clips with number, ref, title, opening line, length and whether each has been cut and captioned. With no episode_id it lists recent episodes. Read the live answer from here rather than guessing how long things take. Do not use for transcripts made with transcribe_audio.

入力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string",
      "description": "From start_episode, or from this tool with no id."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "enum": [
        "waiting_for_upload",
        "uploading",
        "transcribing",
        "finding_clips",
        "ready",
        "failed"
      ]
    },
    "progress_percent": {
      "type": "number"
    },
    "duration": {
      "type": "string",
      "description": "Episode length, mm:ss."
    },
    "upload_url": {
      "type": "string"
    },
    "clips": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "Position in this list. Pass to make_clips."
          },
          "ref": {
            "type": "string",
            "description": "Stable reference for this found clip, e.g. a3f9. Pass to make_clips."
          },
          "title": {
            "type": "string"
          },
          "hook": {
            "type": "string",
            "description": "The opening line, as said."
          },
          "start": {
            "type": "string",
            "description": "Where it starts in the episode, mm:ss."
          },
          "end": {
            "type": "string",
            "description": "Where it ends in the episode, mm:ss."
          },
          "length": {
            "type": "string",
            "description": "Length of the finished clip, mm:ss."
          },
          "pieces": {
            "type": "integer",
            "description": "How many passages are joined to make it."
          },
          "cut_status": {
            "type": "string",
            "enum": [
              "not_cut",
              "cutting",
              "cut",
              "failed"
            ]
          },
          "clip_id": {
            "type": "string",
            "description": "The cut clip. Pass to get_job or restyle_clip."
          },
          "poster_url": {
            "type": "string",
            "description": "A still from the cut clip."
          },
          "export_status": {
            "type": "string",
            "enum": [
              "none",
              "rendering",
              "completed",
              "failed"
            ]
          },
          "job_id": {
            "type": "string",
            "description": "The latest cut or render job for this clip. Pass to get_job."
          },
          "download_url": {
            "type": "string",
            "description": "The latest captioned file, when there is one."
          },
          "about": {
            "type": "string",
            "description": "For a clip found by find_clips_about: the focus it was found for."
          },
          "reason": {
            "type": "string",
            "description": "For a clip found by find_clips_about: how it fits the focus."
          }
        },
        "required": [
          "number",
          "ref",
          "title",
          "length",
          "cut_status"
        ]
      }
    },
    "episodes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "episode_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "waiting_for_upload",
              "uploading",
              "transcribing",
              "finding_clips",
              "ready",
              "failed"
            ]
          },
          "clips_found": {
            "type": "integer"
          },
          "created": {
            "type": "string"
          }
        },
        "required": [
          "episode_id",
          "name",
          "status"
        ]
      }
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "message"
  ]
}
🟡make_clips(episode_id, clips, style, caption_size, position, ...)

Use this when the user picks found clips to make. Cuts each one from the episode and renders it with captions burned in, in one step. Pass the numbers or refs get_episode listed (refs in brackets are fine). Optional style, caption_size, position, hook_title, fit and background apply to these clips. Returns a job per clip; follow with get_job for the files. Do not use before get_episode reports the episode ready, and do not use to change a clip that is already made (use restyle_clip).

入力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string",
      "description": "The episode the clips were found in."
    },
    "clips": {
      "type": "array",
      "items": {
        "type": [
          "integer",
          "string"
        ]
      },
      "description": "Numbers or refs from get_episode, e.g. [2, 5] or [\"a3f9\"]. Up to 10."
    },
    "style": {
      "type": "string",
      "description": "A caption style id or name from list_styles, e.g. bold-punch."
    },
    "caption_size": {
      "type": "string",
      "enum": [
        "smaller",
        "bigger",
        "small",
        "medium",
        "large",
        "extra_large"
      ],
      "description": "Caption size. \"bigger\" and \"smaller\" are relative to now."
    },
    "position": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "top",
        "middle",
        "lower",
        "bottom"
      ],
      "description": "Where the captions sit. \"up\" and \"down\" move them from where they are now."
    },
    "hook_title": {
      "type": [
        "boolean",
        "string"
      ],
      "description": "The title box at the top of the clip, on by default for new clips. false removes it, true puts the clip's title there, or give the words to show."
    },
    "fit": {
      "type": "string",
      "enum": [
        "fill",
        "whole"
      ],
      "description": "How the picture sits in the frame. \"fill\" (the default) crops it to fill the frame. \"whole\" shows the whole video, nothing cropped, with space around it; use when the user does not want a wide video cropped."
    },
    "background": {
      "type": "string",
      "enum": [
        "black",
        "blur"
      ],
      "description": "What fills the space around a whole video: \"black\", or \"blur\" for a blurred copy of the video. Only matters with fit \"whole\"."
    }
  },
  "required": [
    "episode_id",
    "clips"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string"
    },
    "clips": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer"
          },
          "ref": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "job_id": {
            "type": "string",
            "description": "Pass to get_job."
          },
          "status": {
            "type": "string",
            "enum": [
              "cutting",
              "rendering",
              "failed"
            ]
          },
          "clip_id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "status"
        ]
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "episode_id",
    "clips",
    "message"
  ]
}
🟢get_job(job_id, clip_id, wait)

Use this when the user wants to know whether a clip is cut or rendered, or wants the finished file. Pass the job_id from make_clips or restyle_clip, or a clip_id for that clip's latest render. Returns the status, progress, a still from the clip and, when finished, a short download link. Pass wait: true to hold on up to about 40 seconds for it to finish. Do not use for transcribe_audio jobs.

入力スキーマ

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "From make_clips or restyle_clip."
    },
    "clip_id": {
      "type": "string",
      "description": "A cut clip, for its latest render."
    },
    "wait": {
      "type": "boolean",
      "description": "Wait briefly for it to finish instead of reporting now."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string"
    },
    "kind": {
      "type": "string",
      "enum": [
        "cut",
        "render"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "queued",
        "cutting",
        "rendering",
        "completed",
        "failed",
        "expired",
        "not_rendered"
      ]
    },
    "progress_percent": {
      "type": "number"
    },
    "clip_id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "poster_url": {
      "type": "string"
    },
    "download_url": {
      "type": "string",
      "description": "A short link that downloads the MP4. Good for 7 days."
    },
    "file_size_mb": {
      "type": "number"
    },
    "clips": {
      "type": "array",
      "description": "For a cut: the clips it made, and the render that follows each.",
      "items": {
        "type": "object",
        "properties": {
          "clip_id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "poster_url": {
            "type": "string"
          },
          "render_job_id": {
            "type": "string"
          },
          "render_status": {
            "type": "string"
          },
          "progress_percent": {
            "type": "number"
          },
          "download_url": {
            "type": "string"
          }
        },
        "required": [
          "clip_id",
          "title"
        ]
      }
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "job_id",
    "kind",
    "status",
    "message"
  ]
}
🟡restyle_clip(clip_id, episode_id, style, caption_size, position, ...)

Use this when the user wants a made clip changed and rendered again: a different caption style, bigger or smaller captions, captions moved up or down, the hook title turned on, off or reworded, or the whole video shown instead of cropped (fit, background). The change is saved on the clip and a new render starts; follow with get_job. When the user wants the look kept for future clips, pass save_as_default (new clips then start from it). Do not use for clips that have not been made yet (use make_clips).

入力スキーマ

{
  "type": "object",
  "properties": {
    "clip_id": {
      "type": "string",
      "description": "The clip_id from get_episode or get_job (or the job_id of its render). With episode_id, the clip's number or ref also works."
    },
    "episode_id": {
      "type": "string",
      "description": "Only needed when clip_id is a number or ref from get_episode."
    },
    "style": {
      "type": "string",
      "description": "A caption style id or name from list_styles, e.g. bold-punch."
    },
    "caption_size": {
      "type": "string",
      "enum": [
        "smaller",
        "bigger",
        "small",
        "medium",
        "large",
        "extra_large"
      ],
      "description": "Caption size. \"bigger\" and \"smaller\" are relative to now."
    },
    "position": {
      "type": "string",
      "enum": [
        "up",
        "down",
        "top",
        "middle",
        "lower",
        "bottom"
      ],
      "description": "Where the captions sit. \"up\" and \"down\" move them from where they are now."
    },
    "hook_title": {
      "type": [
        "boolean",
        "string"
      ],
      "description": "The title box at the top of the clip, on by default for new clips. false removes it, true puts the clip's title there, or give the words to show."
    },
    "fit": {
      "type": "string",
      "enum": [
        "fill",
        "whole"
      ],
      "description": "How the picture sits in the frame. \"fill\" (the default) crops it to fill the frame. \"whole\" shows the whole video, nothing cropped, with space around it; use when the user does not want a wide video cropped."
    },
    "background": {
      "type": "string",
      "enum": [
        "black",
        "blur"
      ],
      "description": "What fills the space around a whole video: \"black\", or \"blur\" for a blurred copy of the video. Only matters with fit \"whole\"."
    },
    "save_as_default": {
      "type": "boolean",
      "description": "True when the user wants this look kept for future clips (\"use this from now on\", \"save this style\"). Can be sent with no other change to keep the clip's current look."
    }
  },
  "required": [
    "clip_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "clip_id": {
      "type": "string"
    },
    "job_id": {
      "type": "string",
      "description": "Pass to get_job."
    },
    "status": {
      "type": "string",
      "enum": [
        "rendering",
        "saved"
      ]
    },
    "changes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "saved_as_default": {
      "type": "boolean"
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "clip_id",
    "job_id",
    "status",
    "changes",
    "message"
  ]
}
🟢list_styles(styles)

Use this when the user wants to know which caption looks they can choose from. Returns each style's id, name, a one-line description and a link to a preview picture. Pass styles to look up particular ones. Do not use to change a clip (use restyle_clip or make_clips).

入力スキーマ

{
  "type": "object",
  "properties": {
    "styles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Ids or names to look up. Default all."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "styles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "preview_url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "description"
        ]
      }
    },
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "styles"
  ]
}
🟢find_clips_about(episode_id, focus, target_seconds)

Use this when the user wants clips from an episode on a particular topic or for a particular audience, e.g. "clips about creativity for artists" or "moments for young entrepreneurs". Searches the episode again for moments that fit the focus, skipping clips already found, and adds what it finds to the episode's clips. It may find fewer than usual, or none, when little in the episode fits; say so plainly. Returns each new clip's number, ref, title and why it fits. Takes about a minute; if it is still searching, call it again with the same focus to wait for the result. Do not use before get_episode reports the episode ready.

入力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string",
      "description": "The episode to search."
    },
    "focus": {
      "type": "string",
      "maxLength": 200,
      "description": "What to look for, in the user's words: a topic or an audience. Optional when target_seconds is given."
    },
    "target_seconds": {
      "type": "integer",
      "minimum": 15,
      "maximum": 180,
      "description": "Optional. How long each clip should be, in seconds (15 to 180), when the user asks for a length, e.g. \"30 second clips\". Every clip found then plays for at most this long and at most 10% less (at least 3 seconds less), cut at clean sentence or pause boundaries; fewer clips come back if few moments fit. Leave it out for clips of any length (30 to 150 seconds). Works with or without a focus."
    }
  },
  "required": [
    "episode_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "episode_id": {
      "type": "string"
    },
    "focus": {
      "type": "string"
    },
    "target_seconds": {
      "type": [
        "integer",
        "null"
      ],
      "description": "The clip length searched for; null for any length."
    },
    "status": {
      "type": "string",
      "enum": [
        "done",
        "searching"
      ]
    },
    "found": {
      "type": "integer",
      "description": "How many new clips fit the focus."
    },
    "clips": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "number": {
            "type": "integer",
            "description": "Position in the list get_episode shows. Pass to make_clips."
          },
          "ref": {
            "type": "string",
            "description": "Pass to make_clips."
          },
          "title": {
            "type": "string"
          },
          "reason": {
            "type": "string",
            "description": "How this clip fits the focus."
          },
          "start": {
            "type": "string"
          },
          "end": {
            "type": "string"
          },
          "length": {
            "type": "string"
          }
        },
        "required": [
          "number",
          "ref",
          "title",
          "reason"
        ]
      }
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "episode_id",
    "status",
    "message"
  ]
}
🟢read_captions(clip_id, at_seconds, from_seconds, to_seconds, contains, ...)

Use this when the user asks what a clip says, what is on screen at a particular moment, which caption contains a word or a typo, or who said something. It is also the only way to get a caption's id, so read it first whenever a later step needs to name one caption. Narrow with at_seconds, a from/to range, or contains. Do not use for a transcript made with transcribe_audio, or to find clips (use get_episode).

入力スキーマ

{
  "type": "object",
  "properties": {
    "clip_id": {
      "type": "string",
      "description": "A made clip's clip_id, from get_episode or get_job."
    },
    "at_seconds": {
      "type": "number",
      "description": "Only the caption(s) on screen at this moment, in seconds."
    },
    "from_seconds": {
      "type": "number",
      "description": "Start of a time range, in seconds."
    },
    "to_seconds": {
      "type": "number",
      "description": "End of a time range, in seconds."
    },
    "contains": {
      "type": "string",
      "description": "Only captions containing this text. Case-insensitive."
    },
    "limit": {
      "type": "number",
      "description": "Up to 200. Default 40."
    },
    "include_removed": {
      "type": "boolean",
      "description": "Include captions the editor has removed. They are not in the video. Default false."
    }
  },
  "required": [
    "clip_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "clip_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "total": {
      "type": "integer",
      "description": "Captions matching, before the limit."
    },
    "captions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "start_seconds": {
            "type": "number"
          },
          "end_seconds": {
            "type": "number"
          },
          "speaker": {
            "type": "string"
          },
          "line": {
            "type": "integer"
          },
          "text": {
            "type": "string"
          },
          "removed": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "start_seconds",
          "end_seconds",
          "text"
        ]
      }
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "clip_id",
    "captions",
    "message"
  ]
}
⚪transcribe_audio(file, url, wait)

Use this when the user wants the words: speech in an audio or video file turned into text, from a podcast, interview, lecture, meeting or voice note. Accepts a file the user attached (file) or a direct https link to a media file such as .mp3, .m4a, .wav or .mp4 (url). Returns the transcript with speaker turns, plus a page with the full text and .txt, .srt and .vtt downloads. Short files finish in this call; longer ones return status "processing" and a transcription_id for transcription_status. Up to 90 minutes per file. The first transcript needs no account; after that it asks for a Slice sign-in, and a signed-in person gets 3 transcripts a month, shared with the Slice website. Do not use when the user wants short video clips made from a video (start_episode does that), for YouTube, Spotify, Apple Podcasts or other web pages (they are pages, not files), for text already in the conversation, or for live audio.

入力スキーマ

{
  "type": "object",
  "properties": {
    "file": {
      "type": "object",
      "description": "An audio or video file the user attached in the conversation.",
      "properties": {
        "download_url": {
          "type": "string"
        },
        "file_id": {
          "type": "string"
        },
        "mime_type": {
          "type": "string"
        },
        "file_name": {
          "type": "string"
        }
      },
      "required": [
        "download_url",
        "file_id"
      ],
      "additionalProperties": false
    },
    "url": {
      "type": "string",
      "description": "A direct https link to an audio or video file, e.g. https://example.com/episode.mp3. Not a web page."
    },
    "wait": {
      "type": "boolean",
      "description": "Default true: wait briefly so short files come back finished. False returns at once with a transcription_id."
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "processing",
        "completed",
        "failed"
      ]
    },
    "transcription_id": {
      "type": "string",
      "description": "Pass to transcription_status or email_transcript."
    },
    "results_url": {
      "type": "string",
      "description": "Page with the full transcript and downloads. No sign-in; share it only with people who should see the transcript."
    },
    "file_name": {
      "type": "string"
    },
    "duration_minutes": {
      "type": "number"
    },
    "word_count": {
      "type": "integer"
    },
    "language": {
      "type": "string",
      "description": "Detected language code, e.g. en."
    },
    "transcript": {
      "type": "string",
      "description": "The transcript in paragraphs, with speaker labels when there is more than one voice."
    },
    "transcript_truncated": {
      "type": "boolean",
      "description": "True when only the first part is included here; the results page has all of it."
    },
    "downloads": {
      "type": "object",
      "properties": {
        "txt": {
          "type": "string"
        },
        "srt": {
          "type": "string"
        },
        "vtt": {
          "type": "string"
        }
      },
      "required": [
        "txt",
        "srt",
        "vtt"
      ]
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "transcription_id",
    "results_url",
    "message"
  ]
}
🟢transcription_status(transcription_id)

Use this when transcribe_audio returned status "processing", to check whether the transcript is finished and get its text. Pass the transcription_id it returned. Call it again after a short wait while the status is still "processing". Only answers in the conversation (or Slice account) that started the transcription. Do not use to start a transcription; use transcribe_audio.

入力スキーマ

{
  "type": "object",
  "properties": {
    "transcription_id": {
      "type": "string",
      "description": "The transcription_id transcribe_audio returned."
    }
  },
  "required": [
    "transcription_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "processing",
        "completed",
        "failed"
      ]
    },
    "transcription_id": {
      "type": "string",
      "description": "Pass to transcription_status or email_transcript."
    },
    "results_url": {
      "type": "string",
      "description": "Page with the full transcript and downloads. No sign-in; share it only with people who should see the transcript."
    },
    "file_name": {
      "type": "string"
    },
    "duration_minutes": {
      "type": "number"
    },
    "word_count": {
      "type": "integer"
    },
    "language": {
      "type": "string",
      "description": "Detected language code, e.g. en."
    },
    "transcript": {
      "type": "string",
      "description": "The transcript in paragraphs, with speaker labels when there is more than one voice."
    },
    "transcript_truncated": {
      "type": "boolean",
      "description": "True when only the first part is included here; the results page has all of it."
    },
    "downloads": {
      "type": "object",
      "properties": {
        "txt": {
          "type": "string"
        },
        "srt": {
          "type": "string"
        },
        "vtt": {
          "type": "string"
        }
      },
      "required": [
        "txt",
        "srt",
        "vtt"
      ]
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "transcription_id",
    "results_url",
    "message"
  ]
}
🔴email_transcript(transcription_id)

Use this only when the user explicitly asks for a finished transcript to be emailed to them. Needs a Slice sign-in, asked for on first use, and sends the .txt, .srt and .vtt files only to the confirmed email address on that Slice account, never to another address. Each transcript can be emailed one time, and only from the conversation or account that made it. Do not use to send a transcript to somebody else; share the results page instead.

入力スキーマ

{
  "type": "object",
  "properties": {
    "transcription_id": {
      "type": "string",
      "description": "The transcription_id of a finished transcript."
    }
  },
  "required": [
    "transcription_id"
  ]
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "sent",
        "already_sent",
        "not_ready"
      ]
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "message"
  ]
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 11 件