asciinema-session(1) General Commands Manual asciinema-session(1)

asciinema-session - ضبط و پخش زنده هم‌زمان یک نشست پایانه

asciinema session [-o|--output-file] [-f|--output-format] [-l|--stream-local] [-r|--stream-remote] [-c|--command] [-I|--capture-input] [--capture-env] [-a|--append] [--overwrite] [-t|--title] [--description] [--visibility] [--audio-url] [-i|--idle-time-limit] [--headless] [--window-size] [--return] [--log-file] [--server-url] [-q|--quiet] [-h|--help] [ENV]

ضبط و پخش زنده هم‌زمان یک نشست پایانه.

قابلیت‌های دو دستور record و stream را ترکیب می‌کند و به شما امکان می‌دهد هم‌زمان با پخش زنده نشست برای بینندگان، آن را در یک پرونده نیز ذخیره کنید.

برای پایان دادن به نشست کلیدهای <ctrl+d> را بفشارید یا عبارت 'exit' را تایپ کنید. برای مکث/ادامه ضبط نشست کلیدهای <ctrl+\> را فشار دهید.

در طول نشست، متغیر محیطی ASCIINEMA_SESSION روی یک شناسه یکتای نشست (Session ID) تنظیم می‌شود.

ذخیره نشست در پرونده‌ای در مسیر مشخص‌شده. می‌تواند با پخش زنده محلی و از راه دور ترکیب شود.
مشخص کردن قالب پرونده خروجی هنگامی که ذخیره‌سازی با --output-file فعال است. مقدار پیش‌فرض asciicast-v3 است. اگر مسیر پرونده خروجی با .txt خاتمه یابد، قالب txt به‌طور خودکار انتخاب خواهد شد مگر اینکه این گزینه صراحتاً مشخص شده باشد.

مقادیر ممکن:

  • asciicast-v3: قالب نشست با امکانات کامل، به همراه زمان‌بندی و فراداده (نسل فعلی) - https://docs.asciinema.org/manual/asciicast/v3
  • asciicast-v2: قالب نشست با امکانات کامل، به همراه زمان‌بندی و فراداده (نسل قبلی) - https://docs.asciinema.org/manual/asciicast/v2
  • raw: خروجی خام پایانه، شامل توالی‌های کنترلی، بدون زمان‌بندی و فراداده
  • txt: متن ساده بدون رنگ‌ها یا توالی‌های کنترلی، قابل خواندن توسط انسان
راه‌اندازی کارساز محلی HTTP برای پخش زنده بی‌درنگ نشست. یک واسط وب قابل دسترسی از طریق مرورگر ایجاد می‌کند که بینندگان می‌توانند نشست پایانه را به‌صورت زنده تماشا کنند. به‌صورت اختیاری آدرس اتصال را به شکل IP:PORT مشخص کنید (مثلاً 0.0.0.0:8080 برای مجاز ساختن اتصالات خارجی). اگر هیچ آدرسی ارائه نشود، روی یک پورت موقت که به‌طور خودکار روی 127.0.0.1 تخصیص داده می‌شود گوش می‌دهد. می‌تواند با پخش زنده از راه دور و خروجی پرونده ترکیب شود.
پخش زنده نشست در یک کارساز از راه دور asciinema جهت مشاهده عمومی. این قابلیت امکان اشتراک‌گذاری نشست در وب را با هر کسی که نشانی اینترنتی استریم را دارد فراهم می‌کند. می‌توانید شناسه استریم مربوط به یک پیکربندی استریم موجود در حساب کارساز asciinema خود یا یک نشانی مستقیم وب‌سوکت (ws:// یا wss://) را برای کارسازهای سفارشی مشخص کنید. در صورت حذف مقدار برای این گزینه، کارساز asciinema به‌طور خودکار یک شناسه استریم جدید اختصاص می‌دهد. می‌تواند با پخش زنده محلی و خروجی پرونده ترکیب شود.
مشخص کردن دستوری که باید در نشست اجرا شود. در صورت عدم ارائه، asciinema از پوسته پیش‌فرض شما از متغیر محیطی $SHELL استفاده خواهد کرد. این دستور می‌تواند هر دستوری به همراه آرگومان‌ها باشد، برای مثال: --command "python script.py" یا --command "bash -l". همچنین می‌تواند از طریق گزینه session.command در پرونده پیکربندی تنظیم شود.
فعال‌سازی ضبط ورودی صفحه‌کلید علاوه بر خروجی پایانه. در صورت فعال بودن، هم آنچه تایپ می‌کنید و هم آنچه روی صفحه ظاهر می‌شود ثبت خواهد شد. توجه داشته باشید که ورودی‌های حساس مانند گذرواژه‌ها نیز در صورت فعال بودن این گزینه ضبط خواهند شد. اگر در سمت کارساز قابلیت ضبط استریم فعال باشد، ورودی صفحه‌کلید در پرونده ضبط‌شده ایجادشده در سمت کارساز نیز گنجانده خواهد شد. همچنین می‌تواند از طریق گزینه session.capture_input در پرونده پیکربندی تنظیم شود.
مشخص کردن اینکه کدام متغیرهای محیطی ضبط شده و در فراداده نشست گنجانده شوند. فهرستی از نام‌های متغیرها را که با کاما از هم جدا شده‌اند ارائه دهید، برای مثال: --rec-env "USER,SHELL,TERM". در صورت عدم تعیین، به‌طور پیش‌فرض تنها متغیر SHELL ضبط می‌شود. اگر در سمت کارساز قابلیت ضبط استریم فعال باشد، این متغیرهای محیطی در پرونده ضبط‌شده ایجادشده در سمت کارساز نیز گنجانده خواهند شد. همچنین می‌تواند از طریق گزینه session.capture_env در پرونده پیکربندی تنظیم شود.
الحاق نشست جدید به یک پرونده ضبط موجود به جای ایجاد یک پرونده جدید. این قابلیت به شما امکان می‌دهد نشست ضبط قبلی را ادامه دهید. زمان‌بندی به گونه‌ای تنظیم خواهد شد تا پیوستگی از جایی که ضبط قبلی پایان یافته بود حفظ شود. نمی‌تواند همراه با --overwrite استفاده شود. تنها زمانی اعمال می‌شود که --output-file مشخص شده باشد.
بازنویسی پرونده خروجی در صورتی که از قبل وجود داشته باشد. به‌طور پیش‌فرض، asciinema برای جلوگیری از دست رفتن تصادفی داده‌ها از بازنویسی پرونده‌های موجود خودداری می‌کند. نمی‌تواند همراه با --append استفاده شود. تنها زمانی اعمال می‌شود که --output-file مشخص شده باشد.
تنظیم یک عنوان برای نشست که در فراداده‌های ضبط ذخیره شده و به بینندگان استریم نمایش داده می‌شود (هنگام پخش زنده از راه دور با --remote). برای مثال: --title "Installing Podman on Ubuntu". اگر در سمت کارساز قابلیت ضبط استریم فعال باشد، این عنوان در پرونده ضبط ایجادشده در سمت کارساز نیز گنجانده خواهد شد.
تنظیم توضیحات برای نشست. این توضیحات در صفحه استریم نمایش داده می‌شود (فقط برای پخش زنده از راه دور با --stream-remote اعمال می‌شود) و می‌تواند شامل قالب‌بندی، پیوندها و بلوک‌های کد باشد. برای ارائه پیش‌زمینه، راهنما یا مستندات به بینندگان مفید است.
تنظیم سطح نمایانی برای استریم (فقط برای پخش زنده از راه دور با --stream-remote اعمال می‌شود). استریم‌های عمومی (public) در فهرست‌ها و در صفحه نمایه شما ظاهر می‌شوند. استریم‌های فهرست‌نشده (unlisted) از طریق یک نشانی اینترنتی مستقیم در دسترس هستند اما در فهرست‌ها نمایش داده نمی‌شوند. استریم‌های خصوصی (private) فقط برای مالک در دسترس هستند.

[مقادیر ممکن: public, unlisted, private]

مشخص کردن نشانی اینترنتی یک جریان صوتی زنده (مانند Icecast MP3/OGG) جهت همگام‌سازی با استریم پایانه (فقط برای پخش زنده از راه دور با --stream-remote اعمال می‌شود). در صورت تنظیم، بینندگان می‌توانند هم‌زمان با تماشای پایانه به توضیحات صوتی گوش دهند. نشانی صوتی در فراداده استریم ذخیره شده و توسط پخش‌کننده برای بازپخش همگام استفاده می‌شود. برای مثال: --audio-url https://icecast.example.com/live.mp3
محدود کردن حداکثر زمان بی‌کاری ضبط‌شده بین رویدادهای پایانه به تعداد ثانیه‌های مشخص‌شده. مکث‌های طولانی (مانند زمانی که از پایانه دور می‌شوید) در پرونده ضبط به این مدت زمان محدود می‌شوند که بازپخش را روان‌تر و قابل‌مشاهده‌تر می‌کند. برای مثال، --idle-time-limit 2.0 تضمین می‌کند که هیچ مکثی طولانی‌تر از ۲ ثانیه در ضبط ظاهر نشود. فقط زمانی اعمال می‌شود که --output-file مشخص شده باشد. توجه داشته باشید که این گزینه اطلاعات زمان‌بندی اصلی (ضبط‌شده) را تغییر نمی‌دهد و در عوض، مقدار محدودیت زمان بی‌کاری را در فراداده تعبیه می‌کند که توسط پخش‌کننده‌های نشست در زمان بازپخش تفسیر می‌شود. این ویژگی امکان تغییر محدودیت را پس از ضبط فراهم می‌سازد. همچنین می‌تواند از طریق گزینه session.idle_time_limit در پرونده پیکربندی تنظیم شود.
اجرای نشست در حالت بدون واسط پایانه (headless) بدون استفاده از پایانه برای ورودی/خروجی. این قابلیت برای نشست‌های خودکار یا اسکریپت‌شده مناسب است که در آن‌ها نمی‌خواهید asciinema با نشست پایانه فعلی تداخل داشته باشد. دستور نشست همچنان به‌طور عادی اجرا شده و ضبط/استریم می‌شود، اما در پایانه محلی شما نمایش داده نخواهد شد. حالت headless هنگام اجرا در محیطی که پایانه در دسترس نیست به‌طور خودکار فعال می‌شود.
جایگزینی اندازه پنجره پایانه مورد استفاده برای نشست. ابعاد را به صورت COLSxROWS مشخص کنید (مثلاً 80x24 برای ۸۰ ستون در ۲۴ سطر). می‌توانید فقط ستون‌ها (80x) یا فقط سطرها (x24) را مشخص کنید تا تنها یک بعد جایگزین شود. این قابلیت برای تضمین ابعاد یکپارچه و ثابت در ضبط بدون توجه به اندازه پایانه فعلی شما کاربردی است.
باعث می‌شود که دستور asciinema با همان کد وضعیت خروج دستور نشست پایان یابد. به‌طور پیش‌فرض، asciinema بدون در نظر گرفتن اتفاقات درون نشست با وضعیت ۰ خارج می‌شود. با این گزینه، اگر دستور نشست با وضعیتی غیر از صفر خارج شود، asciinema نیز با همان وضعیت پایان خواهد یافت.
فعال‌سازی ثبت وقایع داخلی (لاگ) در پرونده‌ای در مسیر مشخص‌شده. برای اشکال‌زدایی مشکلات ورودی/خروجی (خطاهای اتصال، قطع ارتباط، خطاهای نوشتن در پرونده و غیره) کاربرد دارد.
مشخص کردن نشانی اینترنتی سفارشی کارساز asciinema جهت پخش زنده در کارسازهای با میزبانی شخصی. از نشانی پایه کارساز استفاده کنید (مانند https://asciinema.example.com). همچنین می‌تواند از طریق متغیر محیطی ASCIINEMA_SERVER_URL یا گزینه server.url در پرونده پیکربندی تنظیم شود. اگر نشانی کارسازی از طریق این گزینه، متغیر محیطی یا پرونده پیکربندی تنظیم نشده باشد، از شما خواسته می‌شود یکی را انتخاب کنید (پیش‌فرض asciinema.org)، که به عنوان پیش‌فرض ذخیره خواهد شد.
فرونشاندن پیام‌های تشخیصی و نشانگرهای پیشرفت. تنها پیام‌های خطا نمایش داده خواهند شد.
چاپ راهنما (مشاهده خلاصه با '-h')

مثال‌ها:


asciinema session --output-file demo.cast --stream-local
ضبط یک نشست پوسته در یک پرونده و پخش زنده آن از طریق کارساز محلی HTTP که روی یک پورت موقت در 127.0.0.1 گوش می‌دهد


asciinema session -o demo.cast --stream-remote
ضبط در یک پرونده و پخش زنده از طریق یک کارساز asciinema جهت مشاهده عمومی


asciinema session --stream-local --stream-remote
پخش زنده هم‌زمان به‌صورت محلی و از راه دور، بدون ذخیره‌سازی در پرونده


asciinema session -o demo.cast -l -r -t "Live coding"
ضبط + پخش زنده محلی + پخش زنده از راه دور، همراه با تنظیم عنوان ضبط/استریم


asciinema session -o demo.cast --idle-time-limit 1.5
ضبط در یک پرونده با محدودیت زمان بی‌کاری به حداکثر ۱.۵ ثانیه


asciinema session -o demo.cast -l 0.0.0.0:9000 -r <ID>
ضبط + پخش زنده محلی روی پورت ۹۰۰۰ + پخش زنده از راه دور، با استفاده مجدد از شناسه استریم موجود

session