Mit Asciinema filmen Sie das Geschehen auf der Kommandozeile ab und veröffentlichen das daraus resultierende Terminal-Video im Web.
Screencasts, also das Filmen des Geschehens auf dem Bildschirm, hilft Entwicklern, ihre Programme den Nutzern zu demonstrieren oder unterstützt Hilfesuchende dabei, ihre Probleme einem Support-Spezialisten zu erläutern. Für Linux-Anwender gibt es zahlreiche verschiedene Lösungen dafür, wie etwa RecordMyDesktop, OBS Studio oder – wie bei Gnome – in die Desktop-Umgebung integrierte entsprechende Funktionen. Wer allerdings nur Shell-Kommandos und deren Ausgaben aufzeichnen möchte, der schießt mit Kanonen auf Spatzen. Für diese Fälle empfiehlt sich Asciinema [1] als schlanke Alternative.
Asciinema besteht aus drei Komponenten. Die erste bildet das eigentliche Aufnahmewerkzeug für die Kommandozeile. Als zweite dient eine webbasierte Hosting-Plattform für die Asciinema-Videos. Sie ähnelt Youtube oder Bild-Hostern wie Imgur.com oder Gfycat.com. Den dritten Bestandteil bildet ein Javascript-Player, der die Asciinema-Videos abspielt [2]. Der Anwender benötigt lediglich den Rekorder. Nur wer seine Asciinema-Videos selbst im Web hosten möchte, muss dazu die Server-Komponenten auf einem Webserver einrichten.
Klappe auf
Die meisten aktuellen Distributionen führen den Screencast-Rekorder für Asciinema in ihren Paketquellen. Aktuell steht der Versionszähler der Anwendung bei 2.0.2. Ab Ubuntu 18.04, Debian 10 “Buster” (sudo apt install asciinema) sowie Fedora 28 (mit sudo dnf install asciinema) erhalten Sie mindestens Asciinema 2.0.0. Weitere Informationen zur Installation, etwa für den Python-Paketmanager Pip, liefert die Dokumentation der Anwendung [3]. Eine aktuelle Version ist wichtig, da sich mit dem Release von Asciinema 2.0 das Dateiformat der Aufzeichnungen geändert hat und zahlreiche neue Funktionen implementiert wurden [4].
Nach der Installation starten Sie die Aufnahme am einfachsten mit dem Kommando asciinema rec. Der Befehl startet eine neue Shell, in der Asciinema alles aufzeichnet, was Sie eingeben und das System auf dem Bildschirm wieder ausgibt. Die Aufnahme läuft so lange, bis Sie die Aufzeichnung mit exit oder [Strg]+[D] wieder beenden. Anschließend laden Sie das Video entweder mit einem Druck auf die Eingabetaste auf Asciinema.org hoch oder speichern es mittels [Strg]+[C] lokal im /tmp/-Verzeichnis ab (Abbildung 1). Der Dateiname lautet dabei immer tmpZufallscode-ascii.cast. Alternativ übergeben Sie Asciinema beim Start direkt einen Dateinamen mitsamt Pfad:
$ asciinema rec Beispiel.cast

Abbildung 1: Asciinema nimmt das Geschehen auf dem Desktop auf. Das Ergebnis liegt als spezielle Cast-Datei vor, die sich über das Terminal oder einen webbasierten Player wieder abspielen lässt.
Zum Abspielen der lokal gespeicherten Aufnahme rufen Sie wieder Asciinema auf, diesmal mit der Option play und der Videodatei als Parameter. Ein typischer Aufruf lautet etwa so:
$ asciinema play /Pfad/zu/Beispiel.cast
Asciinema spielt den Screencast direkt in der Shell ab, ohne jedoch die aufgenommenen Kommandos lokal auszuführen – es handelt sich in der Tat um ein Video, nicht um ein Skript. Bei Bedarf unterbrechen Sie die Wiedergabe mit der Leertaste oder springen mit [.] Frame für Frame durch das Video. Mit [Strg]+[C] brechen Sie die Wiedergabe des Terminal-Films komplett ab.
Ohne Pausen
Asciinema nimmt das Geschehen auf der Kommandozeile unverändert auf. Es speichert also nicht nur die Kommandos und deren Ausgaben ab: Korrigieren Sie etwa Eingaben auf der Kommandozeile, passiert das auch im Asciinema-Video. Ebenso pausiert das Geschehen im Video, wenn Sie während der Aufzeichnung nichts tun, etwa, weil Sie Details zu einem Kommando nachschlagen müssen.
Um solche oft unfreiwilligen und für den Betrachter langweiligen Pausen zu vermeiden, ergänzen Sie den Aufruf zur Aufnahme des Asciinema-Videos um die Option --idle-time-limit=Sekunden oder in der Kurzform -iSekunden. So limitieren Sie die Auszeit auf die in der Option angegebene Anzahl an Sekunden. Mit asciinema rec -i1 beschränken sich die Auszeiten also auf maximal eine Sekunde.
Shell-Videos verwalten
Alternativ laden Sie sich das Terminal-Video ohne Umwege direkt zu Asciinema.org ins Netz hoch. Dafür müssen Sie sich nicht zwingend beim Dienst registrieren; der Upload des Videos erfolgt automatisch, wenn Sie ihn nach dem Ende der Aufnahme nicht mit [Strg]+[C] abbrechen.
Der Terminal-Rekorder von Asciinema blendet daraufhin eine URL im Stil von https://asciinema.org/a/jl0[...]2wN ein, unter der Sie (oder andere) das Video mit einem Webbrowser abspielen können (Abbildung 2). Der Link bleibt sieben Tage aktiv; danach archiviert das System die Aufzeichnung automatisch, der Zugang zum Video geht dabei verloren.

Abbildung 2: In der Standardkonfiguration lädt Asciinema die aufgezeichneten Filme automatisch zur hauseigenen “Youtube-Alternative” für Terminal-Videos hoch.
Möchten Sie die Videos für eine längere Zeitspanne zugänglich halten, müssen Sie sich auf jedem Rechner, auf dem Sie Aufnahmen erstellen und hochladen möchten, gegenüber Asciinema.org authentifizieren. Dazu geben Sie das Kommando asciinema auth ein und öffnen anschließend den im Terminal angezeigten Link in einem Browser. Dabei haben Sie die Möglichkeit, ein Konto auf der Webseite von Asciinema anzulegen oder sich mit einem bestehenden Account anzumelden. Asciinema ordnet dann automatisch die zuvor von diesem Rechner hochgeladenen Terminal-Videos Ihrem Account zu.
Das Webportal (Abbildung 3) erlaubt Ihnen, die Aufnahmen zu verwalten. So haben Sie etwa die Möglichkeit, Metadaten wie den Titel zu ändern oder eine Beschreibung einzufügen. Zudem lassen sich das Terminal-Theme und das Vorschaubild anpassen. Über Settings | Make public veröffentlichen Sie Ihr Video auf einer für alle Nutzer zugänglichen Liste [5]. In der Standardeinstellung bleiben Ihre Uploads allerdings privat. Aus der Übersicht heraus lassen sich misslungene oder nicht mehr gebrauchte Videos auch wieder löschen.

Abbildung 3: Auf dem Webportal Asciinema.org organisieren Sie die mit Ihrem Account verbundenen Terminal-Videos. Das Aussehen der Vorschaubilder sowie das des Webplayers lässt sich anpassen.
Asciinema einbetten
Über den Schalter Share erhalten Sie Informationen, wie Sie das ausgewählte Terminal-Video in eine beliebige Webseite integrieren, etwa in Ihr eigenes WordPress-Blog oder die Github-Seite eines Ihrer Projekte. Die Seite generiert automatisch HTML- oder Markdown-Tags, die ein zum Video auf Asciinema.org verlinktes Bild in der Webseite darstellen. Zudem finden Sie darunter ein kurzes Skript-Schnipsel, mit dem sich das Video auch direkt in eine Webseite einbetten lässt (falls das Content-Management der Seite das zulässt).
Listing 1 demonstriert eine solche mit Asciinema angereicherte Webseite: Der erste Abschnitt nutzt das Skript, der zweite greift auf das universell nutzbare Bild zurück. Abbildung 4 zeigt die daraus resultierende und noch sehr rudimentäre Webseite im Browser. Das im Webbrowser abgespielte Asciinema-Video erlaubt dabei an beliebiger Stelle Copy & Paste-Aktionen, sodass die Betrachter zum Beispiel Kommandos aus dem Video direkt in das Terminal übernehmen können.
Listing 1
<!DOCTYPE html>
<html>
<head>
<title>Hallo Welt</title>
</head>
<body>
<h1>Als Skript eingebunden</h1>
<script id="asciicast-jl0NXr88Lm7c7DGOIf8Jh92wN" src="https://asciinema.org/a/jl0NXr88Lm7c7DGOIf8Jh92wN.js" async></script>
<h1>Als Bild eingebunden</h1>
<a href="https://asciinema.org/a/jl0NXr88Lm7c7DGOIf8Jh92wN" target="_blank"><img src="https://asciinema.org/a/jl0NXr88Lm7c7DGOIf8Jh92wN.svg" /></a>
</body>
</html>

Abbildung 4: Die bei Asciinema gehosteten Terminal-Videos lassen sich ohne großen Aufwand in eigene Webseiten integrieren, wie etwa ein Blog oder eine Github-Seite.
Beide Varianten haben allerdings den Nachteil, dass sie externe Ressourcen in die eigene Webseite einbinden (das Skript und die von Asciinema geladenen Daten oder das eingebettete Bild). Um externe Datenverbindungen zu vermeiden, sollten Sie daher bei Bedarf das Bild des Terminal-Videos herunterladen, es lokal zur Ihrer Webseite hochladen und dann nur noch zum Asciinema-Video verlinken.
Alternativen
Als Alternativen zu Asciinema stehen Ihnen Asciicast2gif [6] und Gifcast [7] zur Verfügung. Beide ermöglichen es, Asciinema-Clips in animierte GIF-Bilder umzuwandeln. In dieser Form lässt sich das Video dann auch auf Webseiten integrieren, die das Einbetten fremder Skripte und somit das des Asciinema-Videos untersagen. Während Sie Asciicast2gif lokal installieren müssen, gibt es Gifcast auch als Web-Applikation, die Ihre Videos ohne auf dem Rechner installierte Programme konvertiert.
Fazit
Asciinema empfiehlt sich in erster Linie für Entwickler, die Skripte oder terminalbasierte Anwendungen demonstrieren möchten. Greift man auf die Dienste von Asciinema.org zurück, lässt sich das Video schneller veröffentlichen, als man es aufnehmen kann. Aber auch andere Nutzergruppen profitieren von den sehr einfach erstellbaren Videos: So lässt sich das Geschehen auf der Kommandozeile schnell und ohne viele Worte zum Beispiel an andere Mitglieder eines Linux-Forums kommunizieren.
Infos
-
Asciinema: https://asciinema.org
-
Github des Asciinema-Projekts: https://github.com/asciinema
-
Installationshinweise: https://asciinema.org/docs/installation
-
Asciinema-Blog: https://blog.asciinema.org/post/two-point-o/
-
Öffentliche Liste aller Asciicasts: https://asciinema.org/explore/public
-
Asciicast2gif: https://github.com/asciinema/asciicast2gif
-
Gifcast: https://dstein64.github.io/gifcast





