文档使用transcript1命令行工具

使用transcript1命令行工具

在终端转录视频链接和本地文件,批量处理文件夹、保存字幕,也可输出JSON供脚本和AI智能体读取。

用transcript1直接转录视频链接或本地音视频文件。链接支持YouTube、X、TikTok、Instagram、Facebook和Bluesky,其他平台的版本要求见下文。完整的平台列表和限制见来源与选项。独立版CLI不需要Node.js。

转录社交平台链接,请使用CLI 1.2.0或更高版本。CLI 1.1.0及更早版本只支持YouTube,其他平台的链接会在本地校验时被拒绝。用transcript1 update更新。

上述版本要求针对最初的6个平台。Twitch、Dailymotion、Pinterest、LinkedIn和Snapchat需要更新到已加入对应平台支持的CLI版本,否则链接可能在本地校验时被拒绝。

请使用公开帖子。帖子里有多个视频时,只转录第1个。支持哪些短链接、有哪些限制,见来源与选项。

安装CLI

macOS或Linux支持x64和ARM64,运行:

curl -fsSL https://transcript1.com/install.sh | sh

可执行文件默认安装到~/.local/bin。如果需要调整PATH,安装程序会给出提示。要改安装目录,设置TRANSCRIPT1_INSTALL_DIR。

安装后也可以用短命令t1代替transcript1。使用zsh时,安装程序会在~/.zshrc中添加alias transcript1='noglob transcript1',避免不加引号的链接中的?被当作通配符。设置TRANSCRIPT1_NO_MODIFY_SHELL=1可跳过这项配置。

Windows x64请在PowerShell中运行:

irm https://transcript1.com/install.ps1 | iex

Windows版安装在%LOCALAPPDATA%\Programs\transcript1,同时提供短命令t1.cmd,并把安装目录加入用户PATH。安装后重新打开终端即可使用。

登录并保存密钥

先运行登录命令:

transcript1 login

CLI会打开浏览器,进入transcript1.com;通过SSH连接或没有图形界面时,则在终端显示链接。确认页面上的代码与终端一致,再点击“Approve”。批准后,CLI会保存名为transcript1 CLI (<computer name>)的密钥,可在“API keys”页面查看。

不想自动打开浏览器,可以用transcript1 login --no-browser,只在终端显示链接。

已有API密钥时,运行transcript1 login --with-key后粘贴即可。也支持通过标准输入读取,例如transcript1 login < key.txt。

CI和AI智能体请通过TRANSCRIPT1_API_KEY提供密钥;它会覆盖本地保存的密钥。没有交互终端或密钥的智能体,可以运行transcript1 login < /dev/null,再把登录链接发给用户批准。

运行transcript1 logout会撤销CLI生成的密钥,并删除本地保存的密钥。如果撤销失败,CLI仍会删除本地密钥,并提示到“API keys”页面手动撤销。登录时粘贴的已有密钥,也需要在该页面撤销。

transcript1 'https://youtu.be/dQw4w9WgXcQ'

命令会等待转录完成,然后把转录文本写到stdout,进度信息写到stderr。处理YouTube、X、TikTok、Bluesky、Dailymotion和LinkedIn时,优先使用与视频原语言一致的可用字幕;没有可用字幕时,改用AI转录。

在zsh中,建议始终给链接加引号。不加引号时,&会拆开命令;?会被当作通配符,除非使用了安装程序添加的别名。

上传并转录本地文件

transcript1 interview.mp3
transcript1 -f srt -o interview.srt interview.mp3

直接传入文件路径,CLI会上传并等待转录完成。文件上限为2GB(2,000,000,000字节),支持的扩展名为mp3、wav、m4a、flac、ogg、opus、mp4、mov、webm和mkv。

批量转录文件和链接

可以同时传入多个文件、链接,或直接指定文件夹:

transcript1 interview.mp3 lecture.mp4
transcript1 -o transcripts/ ./recordings
transcript1 --jobs 4 -o transcripts/ interview.mp3 'https://youtu.be/dQw4w9WgXcQ'

支持recordings/*.mp3这样的文件通配符,Windows也可以使用。指定文件夹时,只读取该目录下的媒体文件,不进入子目录,并按文件名排序。批量转录默认将每项转录保存为独立文件,放在./transcripts。用--jobs设置并发数,范围为1到20,默认2。

要从stdin读取输入,用-代替路径,每行放1个链接或文件路径。macOS或Linux的shell示例:

transcript1 -o transcripts/ - < inputs.txt

CLI会跳过空行和以#开头的行,内容完全相同的输入只处理1次。

只有1项输入时,-o通常指定输出文件;路径是已有文件夹或以/结尾时,则作为输出目录。多项输入的-o始终表示目录。目录不存在时会自动创建。

处理YouTube链接和本地文件时,如果对应的输出文件已存在,CLI会跳过该项。要重新处理,加上--overwrite:

transcript1 --overwrite -o transcripts/ ./recordings

选择格式和转录选项

选项用法
-f、--format选择text(默认)、srt、vtt或json。JSON格式返回API中的转录对象。
--speakers开启说话人分离,标记为Speaker 1、Speaker 2等。
--timestamps每行开头添加[hh:mm:ss],只适用于文本格式。
--language指定ISO 639-1语言代码,或用auto自动识别(默认)。
--source选择auto(默认)或stt。YouTube、X、TikTok、Bluesky、Dailymotion和LinkedIn有可用字幕轨道时,也支持captions。captions(仅字幕)不会下载音频,也不会改用语音转文字。
--fresh重新转录链接,不复用最近24小时内已有的转录。

同时开启说话人分离和时间戳:

transcript1 --speakers --timestamps --language en interview.mp3

--speakers与--source captions不能同时使用。选择auto并开启说话人分离时,会跳过字幕,直接处理音频。YouTube和X仍支持字幕,TikTok、Bluesky、Dailymotion和LinkedIn也可使用可用的字幕轨道。除YouTube外,平台字幕只提供分段时间戳(words: null),即使是自动生成的字幕也没有逐词时间戳。各平台的支持情况和语言规则见来源与选项。

在脚本和AI智能体中使用

能运行shell命令的AI智能体,安装CLI并设置TRANSCRIPT1_API_KEY后,就可以调用transcript1 <link>或transcript1 <file>。客户端通过MCP接入时,请按MCP服务器文档配置。

加上--json后,每项输入处理完就向stdout写入1行JSON,不显示进度、汇总或更新提示:

transcript1 --json 'https://youtu.be/dQw4w9WgXcQ'

任务完成时,JSON包含API的转录对象,并附上input和reused。如果转录文本已保存到文件,则返回file,不再包含transcript。还没生成id就报错时,返回input和error,其中error包含code与message。跳过某项输入时,返回input、skipped,以及适用时的file;skipped的值为exists或out_of_minutes,其中exists只用于YouTube链接和本地文件。

只有1项输入且未指定-o时,--json会直接返回含转录文本的对象,忽略-f。多项输入未指定-o时,转录文本保存到./transcripts,每行JSON用file表示路径,不包含transcript。只要保存文件,就由-f决定文件格式。仅需隐藏进度和汇总时,可用-q或--quiet,转录文本和错误仍会输出。

也可以提交后立即返回,稍后再取转录文本:

transcript1 --no-wait interview.mp3
transcript1 get <id>

把<id>换成上条命令返回的id。--no-wait默认输出id和状态,与--json合用则输出对象。get会等任务完成后再返回,支持-f、-o、--timestamps、--no-wait、--json和-q。

更新CLI

transcript1 update

stderr连接终端时,CLI每24小时最多检查1次更新,发现新版本会显示提示。设置TRANSCRIPT1_NO_UPDATE_CHECK=1可关闭检查;使用--json或-q时也不显示更新提示。

通过退出码判断执行情况

退出码说明
0全部处理成功,或因输出文件已存在而跳过;后者只适用于YouTube链接和本地文件。
1至少1项处理失败,或因分钟数不足而跳过。
2命令用法有误,或登录出现问题。
130执行被中断。

完整命令和选项可通过transcript1 --help查看,直接运行transcript1也会显示帮助。

最后更新 2026年10月18日