Manapság temérdek remek screencam alkalmazás áll a rendelkezésükre, hogy professzionális kivitelben rögzítsük videóra mindazt, ami a számítógép képernyőjén történik. Sőt, alapvetően maguk a modern rendszerek is eleve kínálnak erre a célra saját, beépített megoldásokat. Viszont akadnak helyzetek, amikor egy 10-20 perces számítógépen végzett feladat rögzítése több gigabájtos videófájlba menthető csak, hogy jó minőségben lássuk, mi történik. Márpedig ha a Terminalban dolgzunk és ennek folyamatát szeretnénk megosztani másokkal, teljesen feleslegesnek tűnik ez a cicomás videó megoldás, s pláne a hozzá szükséges fájlméret. Nem beszélve arról, hogy olykor homályosak is lehetnek a Terminal szövegei, pedig hát ott épp a szöveg a lényeg. Erre a kihívásra kínál megoldást az asciinema, amellyel egyszerűen megoldható a Terminál munkamenetek rögzítése animálva, de mindenféle erőforrás-igényes screencam megoldás nélkül. Ráadásul a felvétel rendkívül kis méretű lesz a videókkal összehasonlítva, s kényelmesen megosztható másokkal.
Asciinema: Terminál munkamenetek rögzítése animálva, videó helyett
Ha valaki egy Terminálban végzett műveletsort szeretne prezentálni, elsőre kézenfekvő megoldásnak tűnhet valamelyik hagyományos képernyőfelvevő használata. Az Asciinema azonban egészen más megközelítést alkalmaz: videó készítése egyszerűen a terminál munkamenetét rögzíti.
Ennek a megoldásnak köszönhetően köszönhetően a felvételek kis méretűek, s közvetlenül a Terminalban is visszajátszhatók. Ha megosztanánk őket másokkal, egy kisméretű fájlt kell csak elküldenünk és egy fél órás felvétel esetében is (ha még be is ZIP-eljük, abszolút minire zsugorítható), s azt az Asciinema telepítése után másik gépen is meg lehet tekinteni a Terminalban. De még ennél is kényelmesebb lehet, ha webböngészőben tesszük közzé az egészet, akár az Asciinema szerverén, akár saját szerveren, weboldalon. Mindkettőre van ugyanis lehetőség.
S ha még ez sem lenne elég, akkor a videókkal szemben egy másik nagy előnye ennek a megoldásnak, hogy lejátszás közben az éppen látott utasítások, szövegek egyszerűen kimásolhatók a Terminalból, hogy újrahasznosítsuk azokat.
Az Asciinema ingyenes és nyílt forráskódú megoldás, amely elsősorban fejlesztőknek, rendszergazdáknak lehet izgalmas, de tulajdonképpen bárkinek hasznos, aki bármely okból Terminálban végzett műveleteket szeretne dokumentálni vagy megosztani.
Asciinema használat: rendkívül egyszerű
A program használata alapvetően eltér a klasszikus képernyőrögzítő alkalmazásoktól. Nem készít MP4 vagy más videófájlt, hanem egyszerű szöveges kivonatot ment egy úgynevezett úgynevezett asciicast fájlba (ennek érdemes a .cast kiterjesztést adni), amiben az eseményeket időbélyegekkel együtt rögzíti. Ezek tulajdonképpen szimpla szövegfájlok, csak egyedi felépítéssel, tartalommal.
Ez több előnnyel is jár. A fájlok jóval kisebbek lehetnek egy hagyományos videónál, a terminál tartalma megőrzi szöveges jellegét, így a visszajátszás során kijelölhetjük, majd akár ki is másolhatjuk a megjelenő parancsokat vagy azok eredményét. Egy program telepítését vagy egy hosszabb terminálparancsot bemutató oktatóanyagnál ez kifejezetten praktikus lehet.
Az Asciinema parancssori alkalmazásként működik, s macOS alatt az egyik legegyszerűbb telepítési mód a Homebrew használata: brew install asciinema. Linux alatt szintén több csomagkezelőből közvetlenül telepíthető, többek között Debian, Ubuntu, Fedora és Arch Linux rendszereken.
A használata meglehetősen egyszerű. Egy új felvételhez elegendő kiadni például ezt a parancsot: asciinema rec felvetel.cast. Ettől kezdve az Asciinema rögzíti, ami az adott terminál-munkamenetben megjelenik, beleértve a kiadott utasításokat, beírt paramétereket, vagy a programok által kiírt szövegeket. Ha végeztünk, az exit parancs kiadásával vagy a Ctrl+D billentyűkombinációval állíthatjuk le a felvételt.
Az elkészült felvételt rögtön vissza is játszhatjuk a asciinema play felvetel.cast utasítással. A lejátszást a szóköz billentyűvel megállíthatjuk és folytathatjuk. A végeredmény első pillantásra szinte olyan, mintha egy videofelvételt néznénk a terminálablakról, valójában azonban továbbra is egy szöveges terminál-munkamenet kerül visszajátszásra.
Az elkészült .cast fájl természetesen megtartható helyben vagy átküldhető másnak, akinek szintén telepítve van a gépére a program, de az Asciinema saját webes szolgáltatásán keresztül meg is oszthatjuk. Ehhez az asciinema upload felvetel.cast utasítást kell kiadnunk. A feltöltés után kapunk egy hivatkozást, amelyet elküldhetünk bárkinek. Emitt egy példa, linkként és beágyazott HTML kódként is:
Az asciinema.org oldalán található lejátszó egyik legjobb tulajdonsága, hogy nem egyszerű videolejátszóról van szó. Ha megállítjuk a lejátszást, a Terminálban megjelenő szöveget kijelölhetjük és vágólapra másolhatjuk. Így például egy bemutatott parancssort nem kell kézzel bepötyögni egy videó alapján.
A szolgáltatás használata egyébként opcionális. A felvételek saját weboldalba is beágyazhatók az Asciinema Player segítségével, sőt az Asciinema szerverkomponense akár saját szerveren is üzemeltethető.
Ha pedig valaki élő adásra vágyik, az asciinema stream -r utasítás lehet a kedvence majd, amelynek segítségével az aktuális munkamenet közvetíthető az Asciinema szerverén keresztül. Ez jól jöhet például élő programozásnál, távoli oktatásnál vagy akár egy szerver állapotának bemutatásakor. Lehetőség van helyi hálózaton keresztüli streamingre is, így ehhez nem feltétlenül szükséges nyilvános szervert használni.
Végül egy extra lehetőség, hogy ha valahol nem megoldható az Asceenema Player beágyazása vagy közvetlenül a Terminalban történő lejátszás, akkor animált GIF-et is faraghatunk a felvételekből. Ehhez az AGG (Asciinema GIF Generator) használható, amely a .cast fájlokból készít hagyományos animált GIF-et.
Biztonsági szempontok
Mivel az asciinema gyakorlatilag azt rögzíti, ami a Terminálban megjelenik, megosztás előtt mindenképpen érdemes visszanézni az elkészült felvételt, hiszen API-kulcsoknak, jelszavaknak, hozzáférési tokeneknek, belső szervercímeknek vagy más érzékeny adatoknak nincs keresnivalójuk egy publikus felvételben. Az viszont könnyebbséget jelent ebből a szempontból, hogy az Asciinema alapértelmezés szerint nem rögzít minden billentyűleütést, csak a Terminál kimenetét menti. Viszont a billentyűzet bevitelének rögzítése külön engedélyezhető funkció, s ha ezt használjuk, fokozottan gondoljuk meg, mit teszünk publikussá.
Szerzői vélemény: kiknek hasznos az Asciinema?
Bárkinek, aki rendszeresen dolgozik Terminálban. Én viszonylag sokat dolgozom így, mert számtalan eset van, amikor célravezetőbb és gyorsabb parancssori alkalmazásokkal megoldani feladatokat. De a fejlesztők például gyorsan bemutathatják vele egy program telepítését vagy használatát. Rendszergazdák dokumentálhatnak vele folyamatokat, oktatók pedig könnyen készíthetnek interaktív parancssori bemutatókat.
Blogok és szoftverprojektek dokumentációjában szintén jól használható, hiszen egy rövid Asciinema felvétel gyakran sokkal többet mond egy hosszú parancslistánál. Szóval az Asciinema hatékony és praktikus alternatívája lehet a hagyományos képernyőfelvételeknek, feltéve persze, hogy kifejezetten Terminálban végzett műveleteket szeretnénk megörökíteni. Mert ha nem, akkor ez ugyebár füst. A grafikus felületen történő események rögzítésére alkalmatlan, hiszen a megoldás legnagyobb előnye éppen az, hogy nem videót készít. Azt meg egyenesen imádom benne, hogy a kész felvétel kis méretű, egyszerűen – és több módon – visszajátszható és megosztható, miközben a terminál szöveges tartalma továbbra is kijelölhető és másolható marad.






