mirror of
https://github.com/asciinema/asciinema.git
synced 2025-12-16 11:48:13 +01:00
Example of asciicast v2
This commit is contained in:
43
doc/asciicast-v2.md
Normal file
43
doc/asciicast-v2.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# asciicast file format (version 2)
|
||||
|
||||
asciicast file is JSON file containing meta-data like duration or title of the
|
||||
recording, and the actual content printed to terminal's stdout during
|
||||
recording.
|
||||
|
||||
## Attributes
|
||||
|
||||
Every asciicast includes the following set of attributes:
|
||||
|
||||
* `version` - set to 1,
|
||||
* `width` - terminal width (number of columns),
|
||||
* `height` - terminal height (number of rows),
|
||||
* `duration` - total duration of asciicast as floating point number,
|
||||
* `command` - command that was recorded, as given via `-c` option to `rec`,
|
||||
* `title` - title of the asciicast, as given via `-t` option to `rec`,
|
||||
* `env` - map of environment variables useful for debugging playback problems,
|
||||
* `stdout` - array of "frames", see below.
|
||||
|
||||
### Frame
|
||||
|
||||
Frame represents an event of printing new data to terminal's stdout. It is a 2
|
||||
element array containing **delay** and **data**.
|
||||
|
||||
**Delay** is the number of seconds that elapsed since the previous frame (or
|
||||
since the beginning of the recording in case of the 1st frame) represented as
|
||||
a floating point number, with microsecond precision.
|
||||
|
||||
**Data** is a string containing the data that was printed to a terminal in a
|
||||
given frame. It has to be valid, UTF-8 encoded JSON string as described in
|
||||
[JSON RFC section 2.5](http://www.ietf.org/rfc/rfc4627.txt), with all
|
||||
non-printable Unicode codepoints encoded as `\uXXXX`.
|
||||
|
||||
For example, frame `[5.4321, "foo\rbar\u0007..."]` means there was 5 seconds of
|
||||
inactivity between previous printing and printing of `foo\rbar\u0007...`.
|
||||
|
||||
## Example asciicast v2
|
||||
|
||||
A very short asciicast may look like this:
|
||||
|
||||
{ "version": 1, "width": 80, "height": 24, "duration": 1.515658, "command": "/bin/zsh", "title": null, "env": { "TERM": "xterm-256color", "SHELL": "/bin/zsh" } }
|
||||
[ 0.248848, "o", "\u001b[1;31mHello \u001b[32mWorld!\u001b[0m\n" ]
|
||||
[ 1.001376, "o", "I am \rThis is on the next line." ]
|
||||
Reference in New Issue
Block a user