iX 3/2016
S. 145
Praxis
Tools und Tipps
Aufmacherbild

Aufnahmen von Terminalsitzungen ins Internet stellen

Konsolenkino

Konsolensitzungen aufzunehmen, kann in vielen Situationen sinnvoll sein – bei erfolgreichen NetHack-Sitzungen oder zum Präsentieren von Administratorenkniffen. Aufnahmen zu erzeugen, ist seit den frühen Tagen von BSD Routine. Mehrere Tools helfen, diese auch online zur Verfügung zu stellen.

Mit ttyrec können Nutzer die Ausgabe ihres Terminals aufzeichnen. Der Befehl ttyrec session.ttyrec öffnet eine neue Sitzung. Ein- und Ausgabe darin speichert das Programm in der Datei session.ttyrec. ttyplay session.ttyrec führt das zuvor Gespeicherte schließlich wieder vor. Ganz ähnlich funktionieren die Alternativen script und termrec. Mit allen drei Programmen lassen sich Filme von Konsolensitzungen aufnehmen, die Nutzer untereinander tauschen können. Wer solch einen Film ansehen wollte, musste bisher an einem Linux- oder Unix-Rechner sitzen und darauf den passenden Player installiert haben.

Copy-and-Paste statt Abtippen

Einige Projekte gehen deshalb einen Schritt weiter und bringen die Konsolenmitschnitte in den Browser. Im Gegensatz zu Bildschirmvideos bleibt die Textinformation erhalten und lässt sich per Copy-and-Paste weiterverwenden. Die zwei JavaScript-Player ttyplayer und tty-player lassen sich in HTML-Code einbinden und zeigen ttyrec-Aufnahmen auf der eigenen Website. Sie erlauben Pausieren und Wiederaufnehmen sowie ein gezieltes Springen zu einer Zeitmarke. (Links zu Programmen und Diensten finden sich unter „Alle Links“ am Ende des Artikels.)

Playterm.org erlaubt den Upload von ttyrec-Aufnahmen über ein HTML-Formular, um sie direkt dort anzusehen oder als externes Objekt in die eigene Website einzubinden. Auf der Seite gibt es auch ein Suchformular, um die vorhandenen Clips zu durchforsten. Leider erlaubt der Player kein Spulen oder gezieltes Springen durch Klicken im Fortschrittsbalken, weshalb man die Videos immer von vorne bis hinten ansehen muss.

Mehr Komfort bieten asciinema, showterm und termrecord. Bei asciinema handelt es sich um ein eigenständiges Python-Programm. Die Macher haben für die Konsolenmitschnitte den Begriff Asciicast geprägt. Der Befehl asciinema rec session.json erzeugt eine JSON-Datei, die alle Bildschirmereignisse enthält und im Gegensatz zur ttyrec-Ausgabe einfach zu lesen ist. Ohne Dateinamen aufgerufen, fragt asciinema beim Beenden, ob der Asciicast auf den Server geladen werden soll. Die JSON-Dateien lassen sich mit asciinema play session.json wiedergeben und mit asciinema upload session.json nachträglich noch auf asciinema.org hochladen – oder auf einen eigenen asciinema-Server. Die Serversoftware steht unter Affero GPL frei zur Verfügung. Eine Suchfunktion fehlt leider, obwohl sie laut GitHub-Issue-Tracker seit Längerem geplant ist. Diese soll dann nicht wie bei playterm.org nur die Titel der Asciicasts durchsuchen, sondern den gesamten Inhalt der gespeicherten Sitzung.

showterm und TermRecord haben – anders als asciinema mit seinen JSON-Dateien – kein eigenes Format definiert, sondern verpacken einfach die Ausgabe von ttyrec für eine Veröffentlichung im Internet. TermRecord o ausgabe.html erzeugt eigenständigen HTML-Code, mit dem man die Asciicasts direkt in seine Website einbinden kann. Der Player wirkt zwar etwas altbacken, lässt jedoch eine Steuerung der Abspielgeschwindigkeit während der Wiedergabe zu – das ist mehr als bei den Alternativen. showterm unterscheidet sich in der Bedienung nur wenig von asciinema. Vor dem Upload des Videos fragt es nicht mehr nach, sondern gibt einfach die URL des Videos bekannt. Das ist wichtig, denn man braucht diese zum eventuellen Löschen per showterm –delete url, und auf der Website showterm.io gibt es weder eine Suchfunktion noch eine Übersicht der gespeicherten Videos.

Teilen, lernen, vorführen

Auf welches Programm man letztendlich setzt, hängt ab vom Anwendungsszenario. Keines der vorgestellten Tools ist frei von Mängeln, aber jedes hat individuelle Stärken. Eine weite Verbreitung kann man leicht mit asciinema erreichen. Asciinema.org präsentiert sich wie ein soziales Netzwerk und bietet mit oEmbed, Open Graph und Twitter Card Schnittstellen für schickes Teilen seiner Asciicasts auf Slack, Twitter, Facebook und Google+. Wer schnell mal was teilen will, ist bei asciinema nicht verkehrt. Da showterm.io keine Registrierung verlangt, geht das dort noch einen Tick flotter. Sucht man nach vorhandenen Tutorials, bietet sich playterm.org an. Die Stand-alone-Player eignen sich zum Einbinden in die eigene Domain, während man gleichzeitig den vollen Zugriff auf die Daten behält. Für Vorträge, die eine Demonstration auf der Kommandozeile beinhalten, bieten sie sich auch an – sie erzeugen ein klares, skalierbares Bild und schützen vor unerwünschten Vorführeffekten.

Abgesehen von ttyplayer lassen sich Beispiele für alle Player schnell im Internet finden und begutachten. Die inhaltliche Bandbreite reicht von Spielereien wie der Terminalvariante von „Star Wars – A New Hope“ über „Erste Schritt mit asciidoc“ zu Anleitungen für gpg oder dem Deployment von Docker-Containern mit AWS-Werkzeugen – zu finden unter „Alle Links“. (jab)