Slice

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
95%
Calidad de los nombres
91%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~5,468Tokens (definiciones de herramientas)
~4.2 KBTamaño de respuesta típico
Impacto significativo en la atención (4.27% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Puntos de conexión remotos

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

Qué puede hacer

Inventario de herramientas

Herramientas (11)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🔴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.

Esquema de entrada

{
  "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."
    }
  }
}

Esquema de salida

{
  "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.

Esquema de entrada

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

Esquema de salida

{
  "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).

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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."
    }
  }
}

Esquema de salida

{
  "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).

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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).

Esquema de entrada

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

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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).

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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."
    }
  }
}

Esquema de salida

{
  "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.

Esquema de entrada

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

Esquema de salida

{
  "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.

Esquema de entrada

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

Esquema de salida

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

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada11 herramientas