چگونه از صفحه ترمینال فیلم بگیریم؟

شاید شما می‌خواستین که یه فیلم آموزشی از ترمینال بسازین یا اینکه از کاری که تو ترمینال انجام میدین فیلم بگیرین! یه راه سادش همون فیلم برداری از صفحس، ولی برای فرستادن واقعا باید حجم زیادی مصرف کنین و یسری چیزا غیرقابل تغییره (مثلا نمیتونین تم ترمینال رو تغییر بدین). تو این پست قراره یه پکیج معرفی شه که هم فیلم گرفتن از ترمینال، هم اشتراک گذاری اونو راحت می‌کنه و خیلی چیزا بازم قابل تغییر میمونه! و در ضمن متن-باز هم هست!

اسم این پکیج asciinema هست. از سه قسمت تشکیل شده:

  • Recorder
  • Player
  • Site

شما با Recorder فیلم میگیرین و میتونین تو فرمت json (بله! برای همین خیلی سبکه!) ذخیرش کنین. بعد این قابلیت رو دارین که تو سایتی که بهش میگین (میتونین سایتشو رو سرور خودتون بیلد کنین) آپلود کنین یا اینکه تو سایتتون پلیرش رو لود کنین.

برای شروع باید ٰابتدا رو سیستم خودتون (هر جایی که قراره از ترمینالش فیلم بگیرین) پکیج asciinema رو نصب کنین (تو مک با brew قابل نصبه) بعدش رو هر کامپیوتر یه api key داره که باید اونو برای اکانتتون تو سایت authorize کنین، برای اینکار asciinema auth رو وارد کنین، وارد لینک داده شده بشین، بعد اگه اکانت نداشته باشین همونجا میسازه و…

برای ضبط کردن از فرمان asciinema rec استفاده میکنیم که چند تا ورودی داره، یکیش فایلیه که می‌خواین توش ذخیره شه مثلا میخوایم تو فایل hex.json ذخیره شه، می‌زنیم asciinema rec hex.json، یه ورودی دیگه اون میتونه عنوان باشه یعنی با چه عنوانی تو سایت منتشر شه، که با سوییچ -t داده میشه:

asciinema -t 'this is a sample title' rec

بعد یه ترمینال جدید باز میشه (شاید حسش نکنین) حالا داره ضبط میشه! وقتی کارتون تموم شد، باید از اون ترمینال خارج شین ینی یا با دستور exit یا با کلید ترکیبی ctrl+d. بعد اگه فایل بهش ورودی نداده باشین، ازتون میپرسه که رو سایت آپلود کنه یا نه؟ پاسخ پیشفرض همون بله هست، اگه بگین که آپلود کنه، بعدش یه لینک به سایت میده که اون تو می‌تونین پلی کنین!

یه نمونه ریکورد داده شده رو میتونین این زیر ببینین: