YTFZF(5) File Formats Manual YTFZF(5)

ytfzf - فایل پیکربندی برای ytfzf.

~/.config/ytfzf/conf.sh

فایل پیکربندی یک فایل .sh است و می‌تواند به همین صورت استفاده شود. این فایل می‌تواند کاملاً خالی باشد و ytfzf همچنان با تنظیمات پیش‌فرض کار خواهد کرد. گزینه‌ها باید به عنوان متغیرهای محیطی و توابع تنظیم شوند.

فایل‌های پیکربندی در مسیر زیر ذخیره می‌شوند: $XDG_CONFIG_HOME/ytfzf (یا $HOME/.config/ytfzf).

یک اسکریپت شل که هنگام اجرای ytfzf فراخوانی و بارگذاری (source) می‌شود.

فایلی شامل فهرستی از پیوندهای صفحه ویدیوهای کانال‌های یوتیوب، مانند:

https://www.youtube.com/channel/UCtMVHI3AJD4Qk4hcbZnI9ZQ

هر پیوند باید در یک خط جداگانه قرار گیرد.

اگر کانالی شبیه به "https://www.youtube.com/c/SomeOrdinaryGamers" باشد، قبل از افزودن آن به فایل اشتراک‌های خود، دستور زیر را اجرا کنید:
ytfzf --channel-link="https://www.youtube.com/c/SomeOrdinaryGamers"

می‌توان با قرار دادن 'comment#' در یک خط مستقل یا بعد از یک پیوند، یادداشت یا کامنت ایجاد کرد. به عنوان مثال:

link-to-channel
#comment
link-to-channel #best channel

پوشه‌ای شامل فایل‌های اجرایی که وب‌سایت‌ها را استخراج (scrape) می‌کنند. برای اطلاعات بیشتر بخش اسکرپرهای سفارشی (CUSTOM SCRAPERS) را ببینید.

فایل conf.sh عمدتاً برای تنظیم متغیرها برای ytfzf استفاده می‌شود. اگر متغیری مقدار پیش‌فرض نداشته باشد، به این معنی است که روی یک رشته خالی تنظیم شده است.
برای تنظیم یک متغیر در conf.sh حتماً از ساختار زیر استفاده کنید:
variable_name="value"
علامت $ را در ابتدای نام متغیر درج نکنید.

فایل‌ها و دایرکتوری‌ها

$cache_dir
دایرکتوری ذخیره‌سازی فایل‌های حافظه موقت (کش).
اکیداً توصیه می‌شود این متغیر را فقط زمانی تغییر دهید که $__is_submenu برابر 0 باشد، در غیر این صورت ممکن است رفتارهای غیرمنتظره‌ای رخ دهد.
پیش‌فرض: $XDG_CACHE_HOME/ytfzf (یا $HOME/.cache/ytfzf)
$hist_file
فایلی که تاریخچه تماشا در آن نوشته می‌شود اگر $enable_hist برابر 1 باشد.
اکیداً توصیه می‌شود این مقدار را فقط زمانی تغییر دهید که $__is_submenu برابر 0 باشد، در غیر این صورت ممکن است رفتارهای غیرمنتظره رخ دهد.
پیش‌فرض: $cache_dir/watch_hist
$search_hist_file
فایلی که تاریخچه جستجو در آن نوشته می‌شود اگر $enable_search_hist برابر 1 باشد.
پیش‌فرض: $cache_dir/search_hist

نحوه پخش ویدیوهای انتخاب‌شده.

$is_detach
تعیین می‌کند که آیا پخش‌کننده ویدیو از ترمینال جدا (detach) شود یا خیر.
پیش‌فرض: 0
$is_audio_only
تعیین می‌کند که آیا فقط صدا پخش شود یا خیر.
پیش‌فرض: 0
$url_handler
توابع یا برنامه‌هایی برای رسیدگی به ویدیوهای انتخاب‌شده.
توصیه می‌شود این متغیر را مستقیماً تنظیم نکنید، بلکه از دستور load_url_handler استفاده کنید.
برای مشاهده فهرست گرداننده‌های توکار نشانی، بخش URL handlers را ببینید. پیش‌فرض: multimedia_player
$yt_video_link_domain
دامنه‌ای که ویدیوهای یوتیوب از آن پخش می‌شوند (برای odysee و peertube یا لیست‌های پخش یوتیوب اعمال نمی‌شود).
اگر خالی رها شود، مقدار آن هر نمونه invidious خواهد بود که ytfzf انتخاب کرده است.
پیش‌فرض: https://www.youtube.com
$info_to_print
اطلاعاتی که باید به‌جای پخش ویدیو چاپ شوند. گزینه‌های موجود برای این متغیر عبارتند از:
چاپ URL ویدیوهای انتخاب‌شده.
چاپ ساختار json ویدیوهای انتخاب‌شده.
چاپ ساختار json تمام ویدیوها در نتایج جستجو.
چاپ فرمت ویدیویی در حال استفاده.
چاپ داده‌های ویدیوهای انتخاب‌شده، همان‌طور که در منو ظاهر می‌شود.
$info_wait_action
عملیاتی که هنگام برابر بودن $info_wait با 1 انجام می‌شود.
عملیات معتبر:
خروج (در صورتی که $is_loop برابر 1 باشد، به منو بازمی‌گردد).
خروج، صرف‌نظر از اینکه حالت حلقه فعال باشد یا خیر.
بازگشت به منو.
پیش‌فرض: q
$info_wait
تعیین می‌کند که آیا پس از چاپ اطلاعات، منتظر ورودی بماند یا خیر.
پیش‌فرض: 0
$video_pref
اولیت تصویری مورد استفاده برای youtube-dl در mpv.
پیش‌فرض: bestvideo
$audio_pref
اولویت صوتی مورد استفاده برای youtube-dl در mpv.
پیش‌فرض: bestaudio
$ytdl_pref
اولویت مورد استفاده برای youtube-dl در mpv.
پیش‌فرض: $video_pref+$audio_pref/best/$video_pref/$audio_pref
$url_handler_opts
گزینه‌هایی که به گرداننده آدرس اینترنتی پاس داده می‌شوند؛ به‌طور پیش‌فرض این گزینه‌های اضافی به mpv منتقل می‌شوند. این مقدار را می‌توان در فایل پیکربندی نیز با url_handler_opts تنظیم کرد.

گزینه‌های منو

$interface
رابط کاربری یا منوی مورد استفاده.
توصیه می‌شود از این متغیر مستقیماً استفاده نکنید، بلکه از دستور زیر استفاده نمایید: load_interface interface-name
گزینه‌های معتبر:
مشابه -D
هنگامی اعمال می‌شود که از -a، -r یا -A استفاده شود
''
پیش‌فرض
$external_menu_len
تعداد ستون‌ها در interface_ext، (-D)
پیش‌فرض: 210
$fzf_preview_side
جهت نمایش پیش‌نمایش در fzf.
گزینه‌های معتبر:
پیش‌فرض: left
$preview_window_width
میزان فضای مورد استفاده برای پیش‌نمایش fzf
پیش‌فرض: 50%
$thumbnail_viewer
برنامه مورد استفاده برای نمایش تصاویر بندانگشتی پیش‌نمایش
توصیه می‌شود مستقیماً از این متغیر استفاده نکنید، بلکه از دستور زیر استفاده کنید: load_thumbnail_viewer viewer
گزینه‌های معتبر:
استفاده از chafa با ۱۶ رنگ
استفاده از chafa با ۴ رنگ
استفاده از catimg با ۲۵۶ رنگ
استفاده از پخش‌کننده mpv برای نمایش تصاویر
به خوبی با مدیر پنجره‌های کاشی‌کاری (tiling) کار می‌کند.
مشابه mpv، اما یک نمایش‌دهنده اختصاصی تصویر است
فقط روی کامپوزیتور sway در ویلند کار می‌کند
فقط روی کامپوزیتور hyprland کار می‌کند. از swayimg برای رندر تصاویر استفاده می‌کند.
پیش‌فرض: ueberzug
$show_formats
تعیین می‌کند که آیا منوی انتخاب فرمت نمایش داده شود یا خیر.
پیش‌فرض: 0
$format_selection_screen
صفحه انتخاب فرمتی که استفاده خواهد شد. انواع:
simple normal
پیش‌فرض: simple
$format_selection_sort
مقدار --format-sort مورد استفاده در ytdl.
پیش‌فرض: height
$enable_submenus
تعیین می‌کند که آیا زیرمنوها فعال شوند یا خیر.
زیرمنو منویی است که پس از انتخاب یک لیست پخش یا کانال نمایش داده می‌شود. (در حال حاضر فقط با اسکرپر youtube/invidious پشتیبانی می‌شود) پیش‌فرض: 1
$enable_actions
تعیین می‌کند که آیا عملیات‌هایی مانند زیرمنوها و دکمه بازگشت فعال شوند یا خیر.
پیش‌فرض: 1
$keep_vars
تعیین می‌کند که آیا گزینه‌های ارسال‌شده به ytfzf به زیرمنوها نیز منتقل شوند یا خیر.
$enable_back_button
تعیین می‌کند که آیا دکمه بازگشت در زیرمنوها فعال باشد یا خیر. پیش‌فرض: 1
$submenu_opts
گزینه‌های مورد استفاده در زیرمنوها. پیش‌فرض:
$submenu_scraping_opts
منسوخ‌شده (به‌جای آن از submenu_opts استفاده کنید) عملیاتی مشابه $submenu_opts انجام می‌دهد. پیش‌فرض:
$is_sort
تعیین می‌کند که آیا ویدیوهای استخراج‌شده در منو بر اساس تاریخ مرتب شوند یا خیر. پیش‌فرض: 0
$fancy_subs
تعیین می‌کند که آیا بین هر اشتراک جداکننده‌ای قرار گیرد یا خیر. پیش‌فرض: 0
$fancy_subs_left
متنی که هنگام برابر بودن fancy_subs با 1، در سمت چپ نام کانال نمایش داده می‌شود. پیش‌فرض: -------------
$fancy_subs_right
متنی که هنگام برابر بودن fancy_subs با 1، در سمت راست نام کانال نمایش داده می‌شود. پیش‌فرض: $fancy_subs_left
$show_thumbnails
تعیین می‌کند که آیا تصاویر بندانگشتی در fzf نمایش داده شوند یا خیر.
پیش‌فرض: 0

$async_thumbnails تعیین می‌کند که آیا تصاویر بندانگشتی به صورت ناهمگام (آسنکرون) بارگیری شوند یا خیر.
بارگیری ناهمگام باعث می‌شود منو قبل از بارگیری کامل تمام تصاویر بندانگشتی باز شود. پیش‌فرض: 0

$skip_thumb_download
تعیین می‌کند که آیا از دانلود تصاویر بندانگشتی صرف‌نظر شود یا خیر.
پیش‌فرض: 0
$thumbnail_quality
انتخاب کیفیت تصاویر بندانگشتی. در حال حاضر فقط از یوتیوب پشتیبانی می‌کند (از API سرویس invidious استفاده می‌کند).
این گزینه برای اسکرپر '-cS' کار نمی‌کند زیرا مستقیماً یوتیوب را اسکرپ می‌کند نه invidious (به‌جای آن از 'SI' استفاده کنید).
برای سرعت‌های پایین‌تر اینترنت، توصیه می‌شود از پیش‌فرض استفاده شود.
گزینه‌های موجود:
فریم اول ویدیو (کیفیت پایین)
فریم میانی ویدیو (کیفیت پایین)
فریم پایانی ویدیو (کیفیت پایین)
$notify_playing
تعیین می‌کند که آیا هنگام نزدیک شدن به زمان پخش ویدیو اعلانی ارسال شود یا خیر.
پیش‌فرض: 0
$is_loop
تعیین می‌کند که آیا پس از پایان پخش ویدیوهای انتخاب‌شده، منو نمایش داده شود یا خیر.
پیش‌فرض: 0
$search_again
تعیین می‌کند که آیا پس از بستن fzf جستجوی دیگری انجام شود یا خیر.
پیش‌فرض: 0
$selection_meta_key
کلید متا برای میانبرهایی که یک ویدیو را انتخاب می‌کنند.
پیش‌فرض: alt
$download_shortcut
کلید میانبر برای دانلود ویدیوهای انتخاب‌شده.
پیش‌فرض: $selection_meta_key-d
$video_shortcut
کلید میانبر برای تماشای ویدیوهای انتخاب‌شده.
پیش‌فرض: $selection_meta_key-v
$audio_shortcut
کلید میانبر برای شنیدن ویدیوهای انتخاب‌شده.
پیش‌فرض: $selection_meta_key-m
$detach_shortcut
کلید میانبر برای استفاده از پخش‌کننده مجزا (detach).
پیش‌فرض: $selection_meta_key-e
$print_link_shortcut
کلید میانبر مورد استفاده برای چاپ پیوند.
پیش‌فرض: $selection_meta_key-l
$show_formats_shortcut
کلید میانبر برای نمایش فرمت‌ها پیش از پخش ویدیو.
پیش‌فرض: $selection_meta_key-f
$info_shortcut
کلید میانبر برای دریافت تمام اطلاعات درباره ویدیوی انتخاب‌شده.
پیش‌فرض: $selection_meta_key-i
$search_again_shortcut
کلید میانبر برای انجام یک جستجوی دیگر.
پیش‌فرض: $selection_meta_key-s
$action_meta_key
کلید متا برای میانبرهایی که عملیاتی انجام می‌دهند.
پیش‌فرض: ctrl
next_page_action_shortcut
کلید میانبر برای استخراج صفحه بعدی.
پیش‌فرض: $action_meta_key-p
$shortcut_binds
کلیدهایی که در fzf دریافت و شنود می‌شوند.
پیش‌فرض: Enter,double-click,$download_shortcut, $video_shortcut,$detach_shortcut,$print_link_shortcut,$show_formats_shortcut, $info_shortcut,$search_again_shortcut,$custom_shortcut_binds"
$custom_shortcut_binds
کلیدهای میانبر سفارشی. به‌طور خودکار به انتهای $shortcut_binds افزوده می‌شوند.
اگر $shortcut_binds به صورت دستی تنظیم شود، این متغیر نیز باید دستی اضافه شود.

انتخاب خودکار

$is_auto_select
تعیین می‌کند که آیا -n ویدیوی اول به طور خودکار انتخاب شوند یا خیر (فقط زمانی عمل می‌کند که $interface=scripting باشد).
پیش‌فرض: 0
$is_random_select
تعیین می‌کند که آیا -n ویدیو به صورت تصادفی انتخاب شوند یا خیر (فقط زمانی عمل می‌کند که $interface=scripting باشد).
پیش‌فرض: 0
$is_specific_select
تعیین می‌کند که آیا یک ویدیوی مشخص انتخاب شود یا خیر (از $scripting_video_count برای مشخص کردن آن استفاده کنید) (فقط زمانی عمل می‌کند که $interface=scripting باشد).
پیش‌فرض: 0
$scripting_video_count
تعداد ویدیوهایی که باید با -a یا -r دریافت شوند.
پیش‌فرض: 1

اسکرپرها (استخراج‌کننده‌ها)

$scrape
وب‌سایتی که باید به صورت پیش‌فرض استخراج شود. گزینه‌های پشتیبانی‌شده فعلی عبارتند از:
youtube-trending,
youtube-subscriptions,

جستجو به صورت مسیری به یک فایل json خواهد بود که مطابق با ساختار فرمت ویدیویی JSON سازمان‌دهی شده است.


پیش‌فرض: youtube
$multi_search
تعیین می‌کند که آیا جستجوی چندگانه فعال باشد یا خیر. پیش‌فرض: 0
$search_sort_by
ویژگی مورد نظر برای مرتب‌سازی هنگام جستجو.
$search_upload_date
جستجوی ویدیوها در بازه زمانی:
یک ساعت گذشته
امروز
هفته گذشته
ماه گذشته
سال گذشته
$search_video_duration
تعیین جستجو برای ویدیوهای کوتاه یا بلند. گزینه‌های ممکن:
$search_result_type
نوع نتایج دریافتی.
$nsfw
تعیین جستجو برای ویدیوهای دارای محتوای بزرگسالان (nsfw) در odysee/O.
پیش‌فرض: false
$search_result_features
ویژگی‌هایی که ویدیو باید داشته باشد (جداشده با کاما).
$search_region
منطقه جغرافیایی (کد کشور) برای جستجو. پیش‌فرض: US
$invidious_instance
نمونه invidious مورد استفاده.
پیش‌فرض: https://vid.puffyan.us
$pages_to_scrape
تعداد صفحات برای استخراج در یوتیوب/invidious.
پیش‌فرض: 1
$pages_start
صفحه آغازین برای استخراج.
پیش‌فرض: 1
$max_thread_count
تعداد رشته‌هایی (threads) که می‌توان هنگام استخراج جستجوی یوتیوب، لیست‌های پخش و کانال‌ها استفاده کرد. (این مورد برای اسکرپر اشتراک‌ها اعمال نمی‌شود)
پیش‌فرض: 20
$odysee_video_search_count
تعداد ویدیوها برای استخراج در odysee.
پیش‌فرض: 30
$sub_link_count
تعداد ویدیوها برای استخراج به ازای هر کانال هنگام دریافت اشتراک‌ها.
پیش‌فرض: 2

متفرقه

$gap_space
میزان فاصله پس از عنوان در منوی نمایش‌دهنده بندانگشتی. پیش‌فرض:' '
$scrape_search_exclude
اسکرپرهایی که نباید عبارت جستجو درخواست کنند.
دقت داشته باشید که در ابتدا و انتهای رشته یک فاصله قرار دهید.
پیش‌فرض: youtube-subscriptions S SI T youtube-trending H history
$custom_scrape_search_exclude
اسکرپرهای اضافی که نباید عبارت جستجو درخواست کنند.
این مقدار به‌طور خودکار به انتهای $scrape_search_exclude اضافه می‌شود.
علاوه بر این، نیازی به فاصله در ابتدا و انتهای آن نیست، فقط بین نام اسکرپرها فاصله بگذارید. پیش‌فرض:
$gap_space
تعدادی فاصله معادل نصف عرض ترمینال شما
پیش‌فرض: 115 spaces
$enable_hist
تعیین ذخیره و ردیابی تاریخچه تماشا
پیش‌فرض: 1
$enable_search_hist
تعیین ذخیره و ردیابی تاریخچه جستجو
پیش‌فرض: 1
$search_source
نحوه دریافت عبارت جستجو. مقادیر توکار برای این متغیر عبارتند از:
args
استفاده از آرگومان‌های خط فرمان به عنوان جستجو (پیش‌فرض)
prompt
درخواست جستجو از طریق یک اعلان (پرامپت)
hist
استفاده از تاریخچه جستجو.
next
استفاده داخلی برای بهره‌گیری از جستجوی بعدی در فهرست هنگامی که multi_search فعال است.
fn-args
استفاده داخلی برای بهره‌گیری از آرگومان‌های ارسالی به تابع به عنوان منبع.
$log_level
میزان ثبت اطلاعات اشکال‌زدایی (دیباگ).
2
ثبت همه‌چیز
1
ثبت تنها هشدارها و خطاها
0
ثبت تنها خطاها
پیش‌فرض: 2
$thumbnail_debug_log
فایل لاگ برای اطلاعات اشکال‌زدایی بندانگشتی‌ها. پیش‌فرض:/dev/null
$useragent
رشته useragent مورد استفاده هنگام استخراج وب‌سایت‌ها.
پیش‌فرض: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 Safari/537.36"
$ytdl_opts
گزینه‌های خط فرمان برای ارسال به youtube-dl هنگام بارگیری.
$ytdl_path
مسیر اجرای youtube-dl یا نسخه‌های فورک‌شده از آن برای دانلود.
اگر yt-dlp نصب باشد، به youtube-dl ترجیح داده می‌شود.
پیش‌فرض: youtube-dl

تجزیه گزینه‌ها (Option Parsing)

$long_opt_char
نویسه مورد استفاده برای گزینه‌های طولانی.
پیش‌فرض: -
$optstring
رشته گزینه‌های مورد استفاده برای تابع getopts.
اکیداً توصیه می‌شود این متغیر را تغییر ندهید، مگر اینکه دقیقاً بدانید چه کاری انجام می‌دهید.
پیش‌فرض: ac:de:fhi:lmn:qrstu:xADHI:LS:T:W:$long_opt_char:
$YTFZF_CHECK_VARS_EXISTS
تعیین بررسی وجود قبلی متغیرها در محیط هنگام تنظیم گزینه‌های پیش‌فرض.
این گزینه را نمی‌توان در فایل پیکربندی تنظیم کرد، بلکه باید در شل راه‌اندازی با دستور export، یا قبل از اجرای ytfzf مشخص شود، مانند: YTFZF_CHECK_VARS_EXISTS=0 ytfzf ...
پیش‌فرض:1

وضعیت (State)
مقادیر وضعیت برای تغییر توسط کاربر در نظر گرفته نشده‌اند.

$__is_submenu
تعیین می‌کند که آیا اسکریپت در یک زیرمنو قرار دارد یا خیر.
$__is_fzf_preview
تعیین می‌کند که آیا اسکریپت برای نمایش پیش‌نمایش fzf در حال اجرا است یا خیر.
__scrape_count
شمارش استخراج فعلی که از 1 شروع می‌شود.

گاهی اوقات یک متغیر کافی نیست و در عوض باید توابعی تعریف شوند. برای یافتن مقدار پیش‌فرض این توابع، کد منبع را با جستجوی عبارت زیر بررسی کنید: function_exists "<function_you_are_looking_for>".

توابع مربوط به منو

هنگامی که $interface برابر ext_menu باشد، این تابع به جای fzf فراخوانی می‌شود.
این تابع ۱ آرگومان می‌پذیرد که یک رشته اعلان (prompt) است.
این تابع برای دریافت مقداری که باید مرتب‌سازی بر اساس آن انجام شود، فراخوانی می‌شود هنگامی که $is_sort برابر 1 باشد.
این تابع خطی به شکل زیر دریافت می‌کند: "title |channel |duration |views |date |id".
این تابع داده‌هایی را که به آن پایپ می‌شوند مرتب می‌کند.
این تابع هیچ آرگومانی نمی‌پذیرد، تمام داده‌ها به آن پایپ می‌شوند.
این تابع زمانی فراخوانی می‌شود که یک مقدار ناشناخته برای $info_wait_action داده یا خوانده شود.
عبارت <text> باید با متن مورد نظر از $info_wait_action جایگزین شود، به عنوان مثال: custom_info_wait_e.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع متن منوی انتخاب را چاپ می‌کند.
باید به یک خط جدید ختم شود،
نشانی url باید آخرین موردی باشد که چاپ می‌شود.
این تابع هیچ آرگومانی نمی‌پذیرد، متغیرهای مرتبط در اینجا فهرست شده‌اند:
title
channel
duration
views
date
url
توصیه می‌شود اسکریپت را بررسی کنید تا ببینید هر مورد چگونه چاپ می‌شود.
این تابع متنی را در ناحیه پیش‌نمایش fzf هنگام فعال بودن تصاویر بندانگشتی چاپ می‌کند.
همه‌چیز را می‌توان به هر شکلی که مایلید چاپ کرد.
این تابع هیچ آرگومانی نمی‌پذیرد، متغیرهای مرتبط در اینجا فهرست شده‌اند:
title
channel
duration
views
date
url
این تابع همانند thumbnail_video_info_text() برای اسکرپر مشخص‌شده عمل می‌کند.
این تابع زمانی اجرا می‌شود که هیچ تصویر بندانگشتی یافت نشود
این تابع متغیرهای $width، $height، $x و $y را تنظیم می‌کند. $x و $y باید نشان‌دهنده ستون‌ها و خطوط باشند نه پیکسل‌ها.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر left باشد استفاده می‌شوند.
این تابع ۲ آرگومان می‌پذیرد:
max_width
max_height
این تابع متغیرهای $width، $height، $x و $y را تنظیم می‌کند.
$x و $y باید نشان‌دهنده ستون‌ها و خطوط باشند نه پیکسل‌ها.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر right باشد استفاده می‌شوند.
این تابع ۲ آرگومان می‌پذیرد:
max_width
max_height
این تابع متغیرهای $width، $height، $x و $y را تنظیم می‌کند.
$x و $y باید نشان‌دهنده ستون‌ها و خطوط باشند نه پیکسل‌ها.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر up باشد استفاده می‌شوند.
این تابع ۲ آرگومان می‌پذیرد:
max_width
max_height
این تابع متغیرهای $width، $height، $x و $y را تنظیم می‌کند.
$x و $y باید نشان‌دهنده ستون‌ها و خطوط باشند نه پیکسل‌ها.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر down باشد استفاده می‌شوند.
این تابع ۲ آرگومان می‌پذیرد:
max_width
max_height
این تابع متغیرهای $x، $y، $img_w و $img_h را تنظیم می‌کند.
$x و $y باید بر حسب پیکسل باشند.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر left باشد استفاده می‌شوند.
این تابع ۸ آرگومان می‌پذیرد:
img_w
img_h
max_width
max_height
max_height
term_x
term_y
col_px_width
line_px_height
این تابع متغیرهای $x، $y، $img_w و $img_h را تنظیم می‌کند.
$x و $y باید بر حسب پیکسل باشند.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر right باشد استفاده می‌شوند.
این تابع ۸ آرگومان می‌پذیرد:
img_w
img_h
max_width
max_height
max_height
term_x
term_y
col_px_width
line_px_height
این تابع متغیرهای $x، $y، $img_w و $img_h را تنظیم می‌کند.
$x و $y باید بر حسب پیکسل باشند.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر up باشد استفاده می‌شوند.
این تابع ۸ آرگومان می‌پذیرد:
img_w
img_h
max_width
max_height
max_height
term_x
term_y
col_px_width
line_px_height
این تابع متغیرهای $x، $y، $img_w و $img_h را تنظیم می‌کند.
$x و $y باید بر حسب پیکسل باشند.
این متغیرها برای تعیین موقعیت و اندازه تصویر در پیش‌نمایش fzf هنگامی که $fzf_preview_side برابر down باشد استفاده می‌شوند.
این تابع ۸ آرگومان می‌پذیرد:
img_w
img_h
max_width
max_height
max_height
term_x
term_y
col_px_width
line_px_height
این تابع از کاربر درخواست می‌کند تا یک عبارت جستجو وارد کند و متغیر $_search را روی آن عبارت تنظیم می‌کند.
این تابع زمانی فراخوانی می‌شود که ytfzf بدون جستجو اجرا شود (و از رابط پیش‌فرض استفاده کند).
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع از کاربر درخواست می‌کند تا یک عبارت جستجو وارد کند و متغیر $_search را روی آن عبارت تنظیم می‌کند.
این تابع زمانی فراخوانی می‌شود که ytfzf بدون جستجو اجرا شود (و از فلگ -D استفاده کند).
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع باید ورودی کاربر را دریافت کرده و آن را برگرداند (echo کند)
این تابع با -f و -q فراخوانی می‌شود، یا در هر زمان دیگری که به یک منوی عمومی نیاز باشد (و رابط پیش‌فرض استفاده شود).
این تابع ۱ آرگومان می‌گیرد و ورودی را از stdin دریافت می‌کند
1: اعلانی که باید استفاده شود.
stdin: مواردی که باید از بین آن‌ها انتخاب شود (جداشده با خطوط جدید)
این تابع باید همان کار quick_menu() را انجام دهد
این تابع در همان شرایط quick_menu() اما هنگامی که -D فعال باشد فراخوانی می‌شود.
این تابع ۱ آرگومان می‌گیرد و ورودی را از stdin دریافت می‌کند
1: اعلانی که باید استفاده شود.
stdin: مواردی که باید از بین آن‌ها انتخاب شود (جداشده با خطوط جدید)
اعلانی که هنگام فعال بودن info_wait استفاده می‌شود.
این تابع هیچ آرگومانی نمی‌پذیرد.
مشابه info_wait_prompt() هنگامی که از -D استفاده شود.
این تابع هیچ آرگومانی نمی‌پذیرد.
فراخوانی info_wait_prompt_<interface_name>
این تابع هیچ آرگومانی نمی‌پذیرد.
چاپ متن در خروجی استاندارد.
این تابع تعداد نامحدودی از آرگومان‌ها را برای چاپ می‌پذیرد.
چاپ متن در خروجی استاندارد.
این تابع تعداد نامحدودی از آرگومان‌ها را برای چاپ می‌پذیرد.
فراخوانی display_text_<interface_name>
این تابع تعداد نامحدودی از آرگومان‌ها را برای چاپ می‌پذیرد.

گرداننده‌های نشانی وب (URL handlers)
یک گرداننده URL تابعی است که به آدرس‌های ارائه‌شده رسیدگی می‌کند،
گرداننده‌های URL باید این مقادیر اصلاح‌کننده را لحاظ کنند:
$video_pref , 
$is_audio_only , 
و
$is_detach
متغیرهای اصلاح‌کننده به درون یک گرداننده URL پایپ می‌شوند تا امکان نوشتن گرداننده‌های URL با هر زبان برنامه‌نویسی فراهم شود.
آن‌ها به ترتیبی که در بالا نشان داده شد، جداشده با فاصله پایپ خواهند شد.
گرداننده‌ای که به طور پیش‌فرض فراخوانی می‌شود.
این تابع بسته به اینکه آیا
$is_audio_only (-m) فعال است یا خیر، video_player() یا audio_player() را باز می‌کند.
این تابع تعداد نامحدودی آرگومان می‌پذیرد که هر یک پیوندی به یک ویدیو است.
نشانی‌ها را با یک پخش‌کننده ویدیو پخش می‌کند
این تابع تعداد نامحدودی آرگومان می‌پذیرد که هر یک پیوندی به یک ویدیو است.
نشانی‌ها را با یک پخش‌کننده صوتی پخش می‌کند
این تابع تعداد نامحدودی آرگومان می‌پذیرد که هر یک پیوندی به یک ویدیو است.
نشانی‌ها را بارگیری (دانلود) می‌کند
این تابع تعداد نامحدودی آرگومان می‌پذیرد که هر یک پیوندی به یک ویدیو است.
صفحه سفارشی انتخاب فرمت
عبارت <name> باید مقدار مورد نظر از $format_selection_screen باشد
این تابع باید مقدار ytdl_pref را تنظیم کند
این تابع تمامی نشانی‌ها را به عنوان آرگومان‌های جداگانه دریافت می‌کند.
این تابع هنگام فراخوانی open_url_handler، اما قبل از اینکه گرداننده نشانی عملاً باز شود اجرا می‌گردد.
این تابع تعداد نامحدودی آرگومان می‌پذیرد که هر آرگومان نشانی اینترنتی باز شده است.
عبارت <name> باید نام گرداننده نشانی باشد در حالی که - با _ جایگزین شده است.
تابعی که پس از اتمام پخش توسط گرداننده نشانی اجرا می‌شود.
هدف این تابع پاکسازی هر تغییری است که گرداننده نشانی انجام داده است.
تابعی که پس از اتمام پخش توسط گرداننده نشانی و پس از اجرای
close_url_handler_<name>
اتفاق می‌افتد.
اگر
is_detach
برابر با
1
باشد، این تابع ممکن است بلافاصله پس از باز شدن
url_handler
فراخوانی گردد.
تاریخچه جستجو (Search History)
این تابع الحاق عبارت جستجو به فایل جستجوی داده‌شده را مدیریت می‌کند.
این تابع ۲ آرگومان می‌پذیرد:
1
جستجویی که باید نوشته شود
2
فایلی که باید به آن الحاق شود.
این تابع باید فایل تاریخچه جستجو را تجزیه کرده و هر عبارت جستجو را در یک خط جداگانه چاپ کند.
فایل تاریخچه جستجو از طریق stdin به آن ارسال خواهد شد.
اگر search_source روی <src> تنظیم شده باشد این تابع فراخوانی خواهد شد.
انتظار می‌رود این تابع متغیر _search را روی یک عبارت جستجو تنظیم کند.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع هر بار که یک وب‌سایت استخراج می‌شود فراخوانی می‌گردد.
این تابع ۲ آرگومان می‌پذیرد:
1
    عبارت جستجو
2
    استخراج فعلی
این تابع در صورت تطابق جستجوی فعلی با <search_query>، هر بار که یک وب‌سایت استخراج می‌شود فراخوانی می‌گردد.
این تابع ۱ آرگومان می‌پذیرد.
1
استخراج فعلی

متفرقه

اگر <name> در info_to_print وجود داشته باشد، این تابع اجرا خواهد شد.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع برای ویدیوهایی که در شرف پخش هستند یک اعلان ارسال می‌کند.
این تابع تعداد نامشخصی از نشانی‌ها را به عنوان آرگومان می‌پذیرد.
این تابع پس از اتمام کامل تمامی استخراج‌ها اجرا می‌شود
مشابه post_scrape() اما برای هر افزونه
این تابع پس از تجزیه یک گزینه فراخوانی می‌شود و متغیرها را بر اساس گزینه‌های ارسالی به آن تنظیم می‌کند. کد خروج غیر صفر، رفتار پیش‌فرض یک گزینه خاص را بازنویسی (override) خواهد کرد.
این تابع ۴ آرگومان می‌پذیرد:
1
    گزینه فعلی در حال تجزیه
2
    آرگومان گزینه فعلی در حال تجزیه
3
    گزینه دست‌نخورده در حال تجزیه.
    برای گزینه‌ای مانند -a، این مقدار برابر با $1 خواهد بود.
    با این حال، برای هر گزینه طولانی --long-option این مقدار برابر با "-" خواهد بود.
4
    آرگومان دست‌نخورده گزینه در حال تجزیه.
    برای گزینه‌ای مانند -c S، این مقدار برابر با $2 خواهد بود.
    اما برای هر --long-option=value، این مقدار برابر با -long-option=value خواهد بود.
این تابع قبل از تجزیه یک گزینه فراخوانی می‌شود. کد خروج غیر صفر، رفتار پیش‌فرض یک گزینه خاص را بازنویسی خواهد کرد.
این تابع ۳ آرگومان می‌پذیرد:
1
آرگومان گزینه (optarg)
2
گزینه خام
3
آرگومان خام گزینه
این تابع پس از تنظیم تمامی متغیرها و تجزیه همه گزینه‌ها فراخوانی می‌شود.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع زمانی فراخوانی می‌شود که اسکریپت در حال پاکسازی فایل‌های به جامانده از جستجو است، یا هنگامی که اسکریپت خارج می‌شود.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع print_help_<ext> را به ازای هر افزونه بارگذاری‌شده فراخوانی می‌کند.
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع درون تابع داخلی handle_keypress() فراخوانی می‌شود. این تابع باید مقدار 0 را برگرداند تا تابع پیش‌فرض handle_keypress() بازنویسی نشود.
این تابع ۱ آرگومان می‌پذیرد:
1
    کلید فشرده‌شده.
این تابع درون تابع داخلی handle_post_keypress() فراخوانی می‌شود، این تابع باید 0 را برگرداند تا تابع پیش‌فرض handle_post_keypress() بازنویسی نشود.
وظیفه این تابع برگرداندن تغییرات حاصل از آخرین کلید فشرده‌شده است.
این تابع هیچ آرگومانی نمی‌پذیرد، و باید کلید فشرده‌شده را از $keypress_file بخواند.
در نام این تابع باید "*" با نام کلید میانبر جایگزین شود، مثلاً: alt_d
علاوه بر این هر "-" را با "_" جایگزین کنید.
این تابع پس از handle_custom_keypresses() در صورتی که 0 برگردانده باشد و میانبر جزو میانبرهای توکار نباشد فراخوانی می‌گردد.
این تابع ۰ آرگومان می‌پذیرد.
در نام این تابع باید "*" با نام کلید میانبر جایگزین شود، مثلاً: alt_d
علاوه بر این هر "-" را با "_" جایگزین کنید.
این تابع پس از handle_custom_post_keypresses() در صورتی که 0 برگردانده باشد و میانبر جزو میانبرهای توکار نباشد فراخوانی می‌گردد.
این تابع ۰ آرگومان می‌پذیرد.
این تابع زمانی فراخوانی می‌شود که یک عملیات ناشناخته (مطابق با توضیحات بخش فرمت ویدیویی JSON) ارائه شود.
این تابع ۱ آرگومان می‌پذیرد:
عملیات.

کدهای خروج:
1
بازگشت به منو
2
خروج

تصاویر بندانگشتی سفارشی در مسیر $YTFZF_CUSTOM_THUMBNAILS_DIR قرار دارند. نام تصویر باید به شکل زیر باشد: <video-id>.jpg

برای مشاهده یک مثال، جستجویی با ytfzf انجام دهید و پوشه thumbnails را در مسیر $cache_dir/search بیابید.

سیستم تلاش می‌کند تصاویر بندانگشتی سفارشی را قبل از بندانگشتی رسمی بارگذاری کند.
اگر هم بندانگشتی سفارشی و هم بندانگشتی رسمی وجود نداشته باشند، ytfzf تلاش خواهد کرد از تصویر زیر استفاده کند: $YTFZF_CUSTOM_THUMBNAILS_DIR/YTFZF:DEFAULT.jpg .

این قالبی است که برای لیست‌های پخش و اسکرپرهای سفارشی استفاده می‌شود.
ویدیوها باید شیءهایی (objects) درون یک لیست باشند.

کلیدهای الزامی شیء:

ID (string): یک شناسه یکتا برای ویدیو
url (string): نشانی اینترنتی ویدیو
title (string): عنوان ویدیو
scraper (string): اسکرپری که json را ایجاد کرده است (برای بندانگشتی‌ها استفاده می‌شود)
thumbs (string): یک نشانی به تصویر بندانگشتی
channel (string): نام کانال
duration (string): مدت زمان ویدیو (استاندارد: [HH:]MM:SS)
views (string): تعداد بازدیدهای ویدیو
date (string): تاریخ بارگذاری (استاندارد: تاریخ به صورت نسبی نسبت به روز جاری، مثلاً: 3 days ago)
action (string): یک عملیات در قالب "action [key=value key2=value2...]"

نمونه JSON:

[
    {
	"ID": "dQw4w9WgXcQ",
	"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
	"title": "definitely not never gonna give you up"
    }
]

یک لیست پخش یک فایل json در قالب فرمت ویدیویی JSON است، برای دریافت آسان json فرمت‌بندی‌شده یک ویدیو، دستور زیر را اجرا کنید: ytfzf -I VJ <search

نام مرتب‌سازی تابعی در فایل پیکربندی شما یا یک اسکریپت شل در مسیر $YTFZF_SORT_NAMES_DIR است که توابع زیر را تعریف می‌کند:
data_sort_fn()
get_sort_by()

اسکریپت‌های شل اسکرپرهای سفارشی در مسیر $YTFZF_CUSTOM_SCRAPERS_DIR قرار دارند.
یک اسکرپر مسئول استخراج ویدیوها از یک وب‌سایت و الحاق (APPEND) آن‌ها به "$ytfzf_video_json_file" است.
اسکریپت شل باید با همان پوسته /bin/sh شما اجرا شود.

توابع دیگری که این اسکریپت ممکن است تعریف کند:

on_startup_<name_of_scraper>

این تابع زمانی فراخوانی می‌شود که اسکرپر بارگذاری (source) شود (یعنی زمانی که کاربر آن را درخواست کند).

این تابع هیچ آرگومانی نمی‌پذیرد.

thumbnail_video_info_text_<name_of_scraper>

این تابع باید اطلاعات را برای رابط کاربری تصاویر بندانگشتی چاپ کند.

این تابع عملاً همانند thumbnail_video_info_text() عمل می‌کند.

scrape_next_page_<scraper>

این تابع باید ویدیوهای بیشتری را از <scraper> استخراج کند.
برای اینکه این تابع به درستی با alt-p یا ctrl-p فراخوانی شود، صفحه‌ای که در آن متوقف شده است باید در مسیر ${session_cache_dir}/<scraper>-current-page نوشته شود.
که در آن scraper نام اسکرپر با جایگزینی _ به جای - است.

عبارت <scraper> باید همان نامی باشد که در ویژگی "scraper" در فرمت ویدیویی JSON قرار داده شده است.

این تابع زمانی اجرا می‌شود که کاربر در fzf کلیدهای alt-p را فشار دهد.

این تابع هیچ آرگومانی نمی‌پذیرد.

handle_custom_action_<action_name>

این تابع به یک عملیات سفارشی رسیدگی می‌کند.

عبارت <action_name> باید نام عملیات باشد که در آن هر "-" با "_" جایگزین شده است.

این تابع ۱ آرگومان می‌پذیرد.

1
آرگومان‌های عملیات
کدهای خروج:
1
بازگشت به منو
2
خروج

رابط‌های کاربری سفارشی اسکریپت‌های شل هستند که در مسیر $YTFZF_CUSTOM_INTERFACES_DIR قرار دارند.
یک رابط کاربری مسئول این است که به کاربر اجازه دهد ویدیویی را از "$ytfzf_video_json_file" انتخاب کند، سپس نشانی(های) را در "$ytfzf_selected_urls" بنویسد.
اسکریپت شل باید با همان پوسته /bin/sh شما باشد.
علاوه بر این، اسکریپت باید تابع زیر را نیز تعریف کند: interface_<name_of_interface>
با جایگزینی _ به جای -.
این تابع می‌تواند خودش همه‌چیز را مدیریت کند، یا برنامه دیگری را که به هر زبانی نوشته شده است برای مدیریت آن فراخوانی کند.

تابع interface_<name_of_interface> مسیر فایل json حاوی تمام اطلاعات ویدیوها را به عنوان آرگومان اول دریافت می‌کند.
آرگومان دوم مسیری به فایلی خواهد بود که نشانی‌های انتخاب‌شده باید در آن ذخیره شوند (جداشده با خط جدید).

سایر توابعی که اسکرپر ممکن است تعریف کند:

این تابع باید همان کار search_prompt_menu() را انجام دهد. این تابع هیچ آرگومانی نمی‌پذیرد.
اگر این تابع تعریف نشده باشد، تابع search_prompt_menu_ext() به جای آن فراخوانی خواهد شد.
این تابع باید همان کار quick_menu() را انجام دهد. این تابع هیچ آرگومانی نمی‌پذیرد.
اگر این تابع تعریف نشده باشد، تابع quick_menu_ext() به جای آن فراخوانی خواهد شد.
این تابع باید متن را به گونه‌ای نمایش دهد که قابل کپی و چسباندن باشد. این تابع تعداد نامحدودی آرگومان می‌پذیرد.
...
متن برای نمایش
این تابع باید از کاربر بخواهد یکی از گزینه‌های info_wait_action را انتخاب کند. سپس باید متغیر info_wait_action را برابر با انتخاب کاربر قرار دهد. این تابع هیچ آرگومانی نمی‌پذیرد.

نمایش‌دهنده‌های سفارشی تصویر بندانگشتی برنامه‌هایی در $YTFZF_THUMBNAIL_VIEWERS_DIR هستند. آرگومان‌ها:

1
یک عملیات، ۴ نوع عملیات وجود دارد: start، stop، view، no-img
2
مسیر فایل تصویر بندانگشتی.
3
موقعیت افقی x (بر حسب ستون‌ها) برای تصویر
4
موقعیت عمودی y (بر حسب خطوط) برای تصویر
5
عرض تصویر (بر حسب ستون‌ها)
6
ارتفاع تصویر (بر حسب خطوط)
7
حداکثر عرض تصویر (بر حسب ستون‌ها) (عرض در حال حاضر این را لحاظ کرده است)
8
حداکثر ارتفاع تصویر (بر حسب خطوط) (ارتفاع در حال حاضر این را لحاظ کرده است)
9
سمتی از ترمینال برای نمایش تصویر (x، y، عرض و ارتفاع از قبل این مورد را محاسبه کرده‌اند)
این مقدار یکی از حالت‌های up، down، left یا right خواهد بود

افزونه‌ها اساساً فایل‌های پیکربندی اضافه‌ای هستند که می‌توانید آن‌ها را در فایل پیکربندی خود بارگذاری کنید.

افزونه‌ها باید در $YTFZF_EXTENSIONS_DIR یا $YTFZF_SYSTEM_ADDON_DIR/extensions قرار گیرند.

یک افزونه می‌تواند هر کاری را که یک فایل پیکربندی انجام می‌دهد انجام دهد، این شامل اصلاح توابع کمکی پیش‌فرض در ytfzf نیز می‌شود (که می‌تواند اسکریپت را با مشکل مواجه کند).

به افزونه‌ها متغیری به نام $__loaded_path داده می‌شود که مسیر کامل افزونه بارگذاری‌شده است.
این ویژگی هنگام نیاز به تعیین مسیر اجرای فعلی افزونه بسیار کاربردی است.

برای بارگذاری یک افزونه عبارت زیر را به $YTFZF_CONFIG_FILE اضافه کنید: load_extension name-of-extension

دو افزونه به طور خودکار بارگذاری می‌شوند: __ytfzf__ و __ytfzf_multisearch__
افزونه __ytfzf_multisearch__ تنها زمانی بارگذاری می‌شود که $multi_search برابر 1 باشد.

توابع مربوط به افزونه‌ها، که در آن‌ها <ext> با نام افزونه جایگزین می‌شود، و همه - با _ جایگزین می‌گردند:

هنگام خروج اسکریپت اجرا می‌شود. این تابع هیچ آرگومانی نمی‌پذیرد.
زمانی که هیچ بندانگشتی یافت نشود اجرا می‌شود. این تابع هیچ آرگومانی نمی‌پذیرد.
پس از بسته شدن گرداننده نشانی اجرا می‌شود. این تابع هیچ آرگومانی نمی‌پذیرد.
نام ext_name را با نام یک افزونه جایگزین کنید (در حالی که - با _ جایگزین شده است). این تابع مشابه on_post_set_vars است
قبل از استخراج وب‌سایت، برای هر عبارت جستجو اجرا می‌شود. این تابع دو آرگومان می‌پذیرد:
1
جستجوی جاری
2
نوع استخراج جاری
پس از پایان استخراج اجرا می‌شود. این تابع هیچ آرگومانی نمی‌پذیرد.
زمانی که جستجو در حال مقداردهی اولیه است اجرا می‌شود. این تابع یک آرگومان می‌پذیرد:
1
عبارت جستجو

یک تابع کمکی، هر تابعی است که می‌تواند در موارد زیر استفاده شود: فایل‌های پیکربندی، افزونه‌ها، نمایش‌دهنده‌های تصویر بندانگشتی، رابط‌های کاربری، نام‌های مرتب‌سازی،

این تابع پاسخ دریافتی از "https://api.invidious.io/instances.json?sort_by=type,health,api" را در مسیر $cache_dir/instances.json می‌نویسد. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع نمونه‌های invidious دارای api را دریافت کرده و آن‌ها را به صورت خط‌به‌خط چاپ می‌کند. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع یک رشته مرتب‌شده jsonl از ویدیوهای استخراج‌شده را چاپ می‌کند که می‌تواند در یک رابط کاربری مورد استفاده قرار گیرد این تابع هیچ آرگومانی نمی‌پذیرد.
تابع interface_<interface_name> را اجرا کرده و متغیرهای $ytfzf_video_json_file و $ytfzf_selected_urls را به آن پاس می‌دهد این تابع هیچ آرگومانی نمی‌پذیرد.
اگر $skip_thumb_download برابر 0 باشد، این تابع تصاویر بندانگشتی را دانلود می‌کند. این تابع تعداد نامحدودی آرگومان با قالب‌بندی زیر دریافت می‌کند:
<url_name>;<id>
این تابع باید <url_name> را دانلود کرده و آن را با نام <id>.jpg در پوشه $thumb_dir ذخیره کند.
این تابع متغیر $OLD_IFS را برابر با $IFS قرار می‌دهد، سپس $IFS را روی آرگومان اول تنظیم می‌کند، و در پایان دستور set -f را اجرا می‌کند. این تابع یک آرگومان می‌پذیرد.
1
مقدار جدید IFS.
این تابع مقدار IFS را به OLD_IFS بازمی‌گرداند. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع مقدار IFS را روی آرگومان اول تنظیم می‌کند. این تابع یک آرگومان می‌پذیرد.
1
مقداری که باید برای IFS تنظیم شود.
این تابع متغیر $IFS را لغو (unset) می‌کند. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع تکرار رشته را انجام می‌دهد، سپس نتیجه را در stdout چاپ می‌کند. این تابع دو آرگومان می‌پذیرد.
1
رشته مورد نظر.
2
تعداد دفعات تکرار رشته.
این تابع دنباله‌های گریز ansi را از رشته‌ای که از طریق stdin ارسال شده حذف می‌کند. سپس این تابع رشته نهایی را در stdout چاپ می‌کند. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع در صورت وجود یک رویداد، آن را اجرا می‌کند، سپس event_<ext> را برای تمام افزونه‌های بارگذاری‌شده در $loaded_extensions (در صورت وجود) اجرا می‌کند. این تابع تعداد نامحدودی آرگومان می‌پذیرد.
1
نام رویداد.
...
آرگومان‌هایی که باید به رویداد پاس داده شوند
این تابع یک دستور را از ترمینال جدا (detach) می‌کند. این تابع تعداد نامحدودی آرگومان می‌پذیرد.
1
دستوری که باید اجرا شود
...
آرگومان‌هایی که به دستور ارسال می‌شوند.
این تابع تک‌تک اسکرپرهای موجود در $scrape را بررسی کرده و فایل مربوطه را سورس می‌کند. پس از سورس کردن فایل، در صورتی که $__is_fzf_preview برابر 0 باشد، تابع on_startup_<scrape> را اجرا می‌کند. این تابع مسیرهای زیر را برای فایل مورد نظر بررسی می‌کند:
$YTFZF_CUSTOM_SCRAPERS_DIR
$YTFZF_SYSTEM_ADDON_DIR/scrapers
$YTFZF_CUSTOM_SCRAPERS_DIR
$YTFZF_SYSTEM_ADDON_DIR/scrapers
این تابع به یک عدد کاما اضافه می‌کند (به شیوه استاندارد تفکیک ارقام). این تابع عدد را از stdin دریافت می‌کند و نتیجه را در stdout چاپ می‌کند. این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع بررسی می‌کند که آیا یک دستور وجود دارد یا خیر. این تابع در صورت وجود دستور با کد وضعیت 0 و در صورت عدم وجود با 1 خارج می‌شود. این تابع ۱ آرگومان می‌پذیرد.
1
دستوری که باید بررسی شود
این تابع مقدار یک کلید را در یک رشته کلید-مقدار (key_value) دریافت می‌کند.
رشته کلید-مقدار به صورت زیر قالب‌بندی شده است:
<sep>key=value<sep>...
که در آن <sep> آرگومان سوم است، و به صورت پیش‌فرض فاصله می‌باشد.
اگر فقط یک جفت کلید-مقدار وجود داشته باشد، همچنان باید <sep> در هر دو طرف آن قرار داشته باشد.
این تابع پس از چاپ مقدار در stdout، متغیر $KEY_VALUE را روی مقدار آن کلید تنظیم می‌کند.
این تابع در صورتی که مقدار خالی نباشد با کد وضعیت 0 و اگر خالی باشد با 1 خارج می‌شود.
این تابع سه آرگومان می‌پذیرد.
1
رشته کلید-مقدار.
2
کلیدی که باید مقدار آن پیدا شود.
3 (اختیاری)
جداکننده‌ای که هر جفت کلید-مقدار را تفکیک می‌کند. به طور پیش‌فرض این مقدار یک فاصله است.
این تابع حرف اول یک رشته را به حرف بزرگ تبدیل کرده و آن را در stdout چاپ می‌کند. این تابع یک آرگومان می‌پذیرد.
1
رشته مورد نظر.
این تابع تنها زمانی ایجاد می‌شود که برنامه shuf نصب نباشد. این تابع باید همانند عملکرد پایه shuf رفتار کند
این تابع در صورتی که $log_level بزرگتر یا مساوی 2 باشد، اطلاعات را در stderr چاپ می‌کند. این تابع یک آرگومان می‌پذیرد.
1
متن برای چاپ
این تابع در صورتی که $log_level بزرگتر یا مساوی 1 باشد، یک هشدار را در stderr چاپ می‌کند. این تابع یک آرگومان می‌پذیرد.
1
متن برای چاپ
این تابع در صورتی که $log_level بزرگتر یا مساوی 0 باشد، پیام خطا را در stderr چاپ می‌کند. این تابع یک آرگومان می‌پذیرد.
1
متن برای چاپ
این تابع تمام زیرفرآیندهای ytfzf(1) را خاتمه می‌دهد، و در صورتی که $session_cache_dir وجود داشته باشد و $keep_cache برابر 0 باشد، دایرکتوری $session_cache_dir را حذف می‌کند.
در پایان، رویداد on_clean_up را اجرا می‌کند. این تابع هیچ آرگومانی نمی‌پذیرد.
بررسی می‌کند که آیا یک رشته یک مسیر نسبی است یا خیر. این تابع در صورت نسبی بودن مسیر با کد وضعیت 0 و در غیر این صورت با 1 خارج می‌شود. این تابع یک آرگومان می‌پذیرد.
1
مسیری که باید بررسی شود
این تابع دستور print_error را با یک رشته اجرا کرده و سپس با یک کد وضعیت خارج می‌شود. این تابع دو آرگومان می‌پذیرد.
1
وضعیت خروج
2
متنی که باید با print_error چاپ شود.
این تابع خطوط را از stdin می‌خواند، و نشانی url را از آن‌ها در stdout چاپ می‌کند. خطوط باید به فرمت زیر قالب‌بندی شده باشند:
text....|url
این تابع هیچ آرگومانی نمی‌پذیرد.
این تابع بسته به منبع، مقدار _search را روی یک عبارت جستجو تنظیم می‌کند. این تابع تعداد نامحدودی آرگومان می‌پذیرد.
1
منبعی که جستجو باید از آن دریافت شود.
...
آرگومان‌هایی که در صورت برابر بودن $1 با fn-args به عنوان جستجو استفاده می‌شوند، یا اگر 1 مطابقت نداشته باشد، ... به get_search_from_<1> داده می‌شود.
این تابع یک افزونه را به متغیر $loaded_extensions اضافه کرده و افزونه را سورس می‌کند. این تابع مکان‌های زیر را برای یافتن افزونه بررسی می‌کند:
$YTFZF_EXTENSIONS_DIR
$YTFZF_SYSTEM_ADDON_DIR/extensions
$PATH
این تابع با همان کد خروجی که هنگام بارگذاری افزونه برگردانده شد خارج می‌شود. این تابع یک آرگومان می‌پذیرد.
1
افزونه‌ای که باید بارگذاری شود
این تابع بررسی می‌کند که آیا یک افزونه بارگذاری شده است یا خیر. این تابع یک آرگومان می‌پذیرد.
1
افزونه‌ای که باید بررسی شود
این تابع یک sort-name را بارگذاری می‌کند. این تابع مکان‌های زیر را برای یافتن sort-name بررسی می‌کند:
$YTFZF_SORT_NAMES_DIR
$YTFZF_SYSTEM_ADDON_DIR/sort-names
این تابع در صورتی که sort-name وجود نداشته باشد با کد وضعیت 1 خارج می‌شود، در غیر این صورت با همان کد وضعیتی که هنگام بارگذاری sort-name حاصل شد خارج خواهد شد. این تابع یک آرگومان می‌پذیرد.
1
نام sort-name برای بارگذاری
این تابع متغیر $url_handler را روی یک url-handler تنظیم می‌کند. این تابع مکان‌های زیر را برای یافتن url-handler بررسی می‌کند:
$PATH، و توابع موجود در فایل پیکربندی
$YTFZF_URL_HANDLERS_DIR
$YTFZF_SYSTEM_ADDON_DIR/url-handlers
اگر url-handler وجود نداشته باشد، این تابع die را اجرا می‌کند. این تابع یک آرگومان می‌پذیرد.
1
گرداننده url برای بارگذاری
این تابع متغیر $interface را روی یک رابط کاربری تنظیم می‌کند. اگر $1 برابر با ext، scripting یا "" باشد، $interface روی 1 تنظیم می‌شود. این تابع مکان‌های زیر را برای یافتن رابط کاربری بررسی می‌کند:
$1
$YTFZF_CUSTOM_INTERFACES_DIR
$YTFZF_SYSTEM_ADDON_DIR/interfaces
این تابع یک آرگومان می‌پذیرد.
1
رابط کاربری برای بارگذاری
این تابع متغیر $thumbnail_viewer را روی یک thumbnail-viewer تنظیم می‌کند. اگر $i برابر با یک نمایش‌دهنده بندانگشتی توکار باشد، $thumbnail_viewer روی آن تنظیم می‌شود. در غیر این صورت، مکان‌های زیر بررسی می‌شوند:
$1
$YTFZF_THUMBNAIL_VIEWERS_DIR
$YTFZF_SYSTEM_ADDON_DIR
این تابع یک آرگومان می‌پذیرد.
1
نمایش‌دهنده تصویر بندانگشتی برای بارگذاری
_get_request()
این تابع درخواستی به سرور ارسال کرده و پاسخ را چاپ می‌کند. این تابع تعداد نامحدودی آرگومان می‌پذیرد.
1
نشانی اینترنتی برای ارسال درخواست
...
آرگومان‌هایی برای ارسال به curl(1)
_get_real_channel_link()
این تابع پیوند یک کانال یوتیوب را که در قالب‌های زیر باشد تبدیل می‌کند:
@user
https://www.youtube.com/user/<channel-name>
https://www.youtube.com/c/<channel-name>
این تابع یک آرگومان می‌پذیرد.
1
پیوندی که باید تبدیل شود
2021 September ytfzf 2.0