用途:本技能是 asciinema v3 .cast 文件格式(asciicast v2 规范)的参考文档,适用于解析或检查 .cast 文件结构、理解 NDJSON 头部与事件格式、构建读写 .cast 的工具、调试录制问题,以及学习 asciicast v2 规范。仅文档,平台无关。
格式:采用 NDJSON,第 1 行为头部对象,第 2 行起为事件数组。头部字段中 version、width、height 必填;timestamp、duration、title、env、theme 可选。事件为三元数组 [timestamp, event_type, data],时间戳相对录制起点、以秒计、毫秒精度。
事件码:o 输出(stdout,字符串)、i 输入(stdin,字符串)、m 标记(字符串,用于导航)、r 调整终端尺寸("WIDTHxHEIGHT")、x 自定义扩展数据。
用法:可用 jq 解析。取头部:head -1 recording.cast | jq '.';取时长:head -1 recording.cast | jq -r '.duration // "unknown"';统计事件类型:tail -n +2 recording.cast | jq -r '.[1]' | sort | uniq -c;提取输出事件:tail -n +2 recording.cast | jq -r 'select(.[1] == "o") | .[2]';查找标记:tail -n +2 recording.cast | jq -r 'select(.[1] == "m") | "(.[0])s: (.[2])"'。
大文件:小于 100MB 可直接用 jq;100–500MB 建议 --stream 或 ripgrep;500MB 以上可先转为文本:asciinema convert -f txt recording.cast recording.txt。流式处理示例:jq --stream -n 'fromstream(1|truncate_stream(inputs))' recording.cast | head -1000。
限制:仅覆盖 v2 格式(asciinema v3+);录制进行中头部可能无 duration;标记为可选;损坏文件时间戳可能不递增;自定义 x 事件数据格式不定。本技能自动演进,仅针对真实可复现问题更新。