360 Secure SkillHub
360 安全技能中心

tella-cli

这是Tella视频平台的CLI工具,核心功能涵盖视频/剪辑的增删改查、转录文本提取、自定义缩略图生成、多规格导出,以及剪辑精细编辑(去冗余词、添加模糊/高亮/缩放)、播放列表管理、webhook配置、协作权限设置等。典型场景包括内容审计导出视频列表、提取转录文本生成章节、4K带字幕导出视频等,通过CLI命令输入,输出支持JSON等格式,适配自动化流程。

melvynx
melvynx
热度 16.03
最近更新 2026-05-25 17:50:57
分类:自动化依赖:代码执行应用场景:视频编辑 / 自动化脚本 / API 集成 / 数据处理

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tella-cli
Metadata
name
tella
description
Manage Tella via CLI - videos, clips, playlists, webhooks. Use when user mentions 'tella', 'tella.tv', 'tella video', 'screen recording', 'video transcript', 'clip thumbnail', 'video export', 'remove filler words', 'add zoom to video', 'blur video', 'highlight video', 'playlist of videos', or wants to interact with the Tella video recording/editing API.
category
video

tella-cli

When To Use This Skill

Use the tella-cli skill when you need to:

  • List, fetch, update, or delete videos in a Tella workspace
  • Pull transcripts (cut or uncut) for a clip with word-level timestamps
  • Generate video or clip thumbnails (jpg/png/webp/gif/mp4) at custom sizes/timestamps
  • Trigger video exports at 1080p or 4k, 30/60fps, with optional burned-in subtitles
  • Duplicate a video or clip, optionally trimmed
  • Edit clips: cut time ranges, reorder, remove filler words, find silent ranges
  • Add or update visual edits: blurs, highlights, layouts, zooms (manual or tracking)
  • Manage playlists and add/remove videos from them
  • Add workspace collaborators (editor or viewer) to a video
  • Create webhook endpoints, fetch signing secrets, and inspect recent deliveries

Capabilities

  • Read every video and playlist in the workspace, including metadata, view counts, and share links
  • Push fine-grained edits to clips (cuts, reorders, blurs, highlights, layouts, zooms) without opening the Tella editor
  • Pull transcripts for downstream search, summarization, or accessibility workflows
  • Start exports and poll/list webhook deliveries to know when files are ready
  • Manage sharing: linkScope, password, allowed embed domains, search-engine indexing
  • Subscribe to events (video.created, export.ready, transcript.ready, etc.) and recover delivery messages

Common Use Cases

  • "List my last 20 Tella videos and dump them as JSON for a content audit"
  • "Get the uncut transcript for clip X so I can generate chapter timestamps"
  • "Export video Y at 4k 60fps with subtitles burned in"
  • "Add a blur over the credentials shown between 4.2s and 7.8s on this clip"
  • "Create a playlist 'Tutorials' and add these 5 videos to it"
  • "Wire up a webhook so I get notified when an export is ready"
  • "Remove filler words from this clip and then fetch the cleaned transcript"

Setup

If tella-cli is not found, install and build it:

bun --version || curl -fsSL https://bun.sh/install | bash
npx api2cli bundle tella
npx api2cli link tella

api2cli link adds ~/.local/bin to PATH automatically. The CLI is available in the next command.

Always use --json when calling commands programmatically.

Working Rules

  • Always use --json for agent-driven calls so downstream steps can parse the result
  • Run <resource> --help or <resource> <action> --help when unsure of flags rather than guessing
  • For destructive actions (delete, remove-*), read first with get/list to confirm the target
  • Most clip mutations require both <videoId> and <clipId> as positional args (in that order)
  • Coordinates for masks (blurs, highlights) and zoom focus points are normalized to 0-1 of the canvas
  • Times are in milliseconds (*-ms flags) unless the docs say otherwise

Authentication

tella-cli auth set "tella_pk_xxx..."   # API key from https://www.tella.tv/settings/api-keys
tella-cli auth test                     # Verify the key works
tella-cli auth show                     # Show masked token
tella-cli auth remove                   # Delete stored token

Token is stored at ~/.config/tokens/tella-cli.txt (chmod 600).

Resources

videos

Action Description Key Flags
list List videos in the workspace --cursor, --limit, --playlist-id, --fields
get <id> Get a single video's metadata -
update <id> Update title, description, sharing, playback --name, --description, --link-scope, --password, --allowed-embed-domains, --custom-thumbnail-url, --default-playback-rate, --captions-default-enabled, --comments-enabled, --comment-emails-enabled, --downloads-enabled, --raw-downloads-enabled, --publish-date-enabled, --search-engine-indexing-enabled, --transcripts-enabled, --view-count-enabled
delete <id> Delete a video -
duplicate <id> Duplicate, optionally trimmed --name, --trim-start-ms, --trim-end-ms
export <id> Start an export job --resolution (1080p/4k), --fps (30/60), --speed, --granularity (video/clips/raw), --subtitles
thumbnail <id> Get thumbnail/animated preview --format (jpg/png/webp/gif/mp4), --inpoint-ms, --duration-ms, --width, --height, --download, --response json
add-collaborator <id> Add a workspace member --email (required), --role editor|viewer (required)

clips

Most clip commands take <videoId> <clipId> as positional args.

Action Description Key Flags
list <videoId> List clips for a video --fields
get <videoId> <clipId> Get a single clip -
update <videoId> <clipId> Rename or reorder --name, --order
delete <videoId> <clipId> Delete a clip -
duplicate <videoId> <clipId> Duplicate the clip --name, --order
cut <videoId> <clipId> Cut a time range out --from-ms (req), --to-ms (req)
reorder <videoId> <clipId> Move to new position --order (req)
remove-fillers <videoId> <clipId> Auto-remove filler words -
silences <videoId> <clipId> List silent ranges --min-duration-ms
transcript-cut <videoId> <clipId> Edited transcript (post-cuts) -
transcript-uncut <videoId> <clipId> Original transcript -
thumbnail <videoId> <clipId> Clip thumbnail/preview --format, --inpoint-ms, --duration-ms, --width, --height, --download, --response
list-sources <videoId> <clipId> List recording sources --fields
source-thumbnail <videoId> <clipId> <sourceId> Source thumbnail same as clip thumbnail
source-waveform <videoId> <clipId> <sourceId> Audio waveform JSON -
list-blurs <videoId> <clipId> List blur masks -
add-blur <videoId> <clipId> Add a blur mask --start-time-ms, --duration-ms, --point-x, --point-y, --dim-width, --dim-height (all required)
update-blur <videoId> <clipId> <maskId> Update a blur any of the mask flags above
remove-blur <videoId> <clipId> <maskId> Remove a blur -
list-highlights <videoId> <clipId> List highlight masks -
add-highlight <videoId> <clipId> Add a highlight same mask flags as add-blur
update-highlight <videoId> <clipId> <maskId> Update a highlight mask flags
remove-highlight <videoId> <clipId> <maskId> Remove a highlight -
list-layouts <videoId> <clipId> List layouts -
add-layout <videoId> <clipId> Add a layout (JSON shape) --layout (JSON, req), --start-time-ms, --duration-ms, --transition-style
update-layout <videoId> <clipId> <layoutId> Update a layout --layout, time flags, --transition-style
remove-layout <videoId> <clipId> <layoutId> Remove a layout -
list-zooms <videoId> <clipId> List zooms -
add-zoom <videoId> <clipId> Add a zoom --type manualZoom|trackingZoom (req), --start-time-ms (req), --duration-ms (req), --scale, --focus-x, --focus-y
update-zoom <videoId> <clipId> <zoomId> Update a zoom same as add-zoom
remove-zoom <videoId> <clipId> <zoomId> Remove a zoom -

Mask coordinates (--point-*, --dim-*, --focus-*) are normalized 0-1 of the canvas.

playlists

Action Description Key Flags
list List all playlists --visibility (personal/org), --cursor, --limit, --fields
get <id> Get playlist details -
create Create a new playlist --name (req), --description, --emoji, --link-scope, --password, --visibility, --search-engine-indexing-enabled
update <id> Update a playlist --name, --description, --link-scope, --password, --search-engine-indexing-enabled
delete <id> Delete a playlist -
add-video <id> Add a video to it --video-id (req)
remove-video <id> <videoId> Remove a video from it -

webhooks

Action Description Key Flags
create-endpoint Subscribe to events --url (req), --filter-types (req, comma-separated, e.g. video.created,export.ready)
delete-endpoint <id> Delete an endpoint -
get-secret <id> Get the signing secret -
list-messages Recent delivery messages --event-types, --limit, --fields
get-message <id> Get a specific message -

Available event types include: video.created, video.viewed, view.milestone, transcript.ready, export.ready, playlist.created, playlist.video_added.

Output Format

--json returns a standardized envelope:

{ "ok": true, "data": { ... }, "meta": { "total": 42 } }

On error: { "ok": false, "error": { "message": "...", "status": 401 } }

Quick Reference

tella-cli --help                       # List all resources and global flags
tella-cli videos --help                # List actions on videos
tella-cli videos list --help           # Show flags for videos list
tella-cli clips add-zoom --help        # Show flags for add-zoom

Global Flags

All commands support: --json, --format <text|json|csv|yaml>, --verbose, --no-color, --no-header

Exit codes: 0 = success, 1 = API error, 2 = usage error