Skip to content

V2.5.0

Compare
Choose a tag to compare
@Euro20179 Euro20179 released this 13 Sep 17:42
· 392 commits to master since this release

Additions

  • Invidious instances are picked at random to avoid everyone using the same server (@BSGalvan #571)
  • scrape_next_page aka the (alt-p) shortcut has been implemented for scrape_invidious_search which is the main search function.
  • If --notify-playing is enabled, after downloading a video with -d, there will be a notification saying download complete
  • u scraper, similar to U scraper, but doesn't automatically play the video and exit.
  • get_search_from_<src>: if search_source or --search-source is set to <src> the function will be run. It is supposed to set the variable _search to a search query
  • display_text_<interface> and info_wait_prompt_<interface>
    • This way interfaces can decide how the user picks the option for info_wait, and how to display text in a copyable way.

Addons

Extensions

  • playlists: manage local playlists

    • requires that the rfp and atp url handlers are put in either $YTFZF_SYSTEM_ADDON_DIR/url-handlers or ~/.config/ytfzf/url-handlers
    • This addon is intended to always be loaded, ie: add load_extension playlists to your config file.
    • create a playlist with --create-playlist=name
    • play a playlist with --playlist=name
    • add to a playlist with --atp=name search query
    • remove something from a playlist with --rfp=name
    • delete a playlist with --del-playlist=name
    • list playlists with --list-playlists
    • list items in a playlist with --list-titles
  • bsm, integrates bash with ytfzf's search prompt (only works if /bin/sh points to bash), this allows for

    • bash's history expansion syntax in the search prompt, (eg: !! to mean last search)
    • pressing up/down to cycle through search history
    • ctrl-r to do history search

Url Handlers

  • rfp: required for the playlists extension, removes items from a playlist.
  • atp: required for the playlists extension, adds items to a playlist.

Interfaces

  • implemented display_text and info_wait_prompt to the gui interface
    • this way a gui interface shows for text to be coppied instead of it being printed, and you dont have to type q/Q/m/Enter to continue.

Options

  • -i same as --interface
  • -u same as --url-handler
  • -T same as --thumb-viewer
  • -e same as --ext
  • --search-source: sets the source for search query
    • A list of sources include:
    • args: commandline arguments
    • prompt: search prompt
    • hist: search history
    • next: used internally when multi_search is enabled
    • fn-args: used internally to mean the arguments passed to the function.
  • --version-all: get the version of ytfzf and required dependencies.

Changes

  • -IVJ now puts everything into 1 array.

Fixes

  • -IVJ and -IR should now be significantly faster
  • url handlers in $YTFZF_SYSTEM_ADDON_DIR/url-handlers are not loaded.
  • checking if a selected url has an associated action is too loose.
  • no error is printed if odysee_video_count > 50
  • hist_file and search_hist_file ignore cache_dir if it was set in the config file

Deprecated

  • use_search_hist=1, use search_source=hist instead
    • use_search_hist=0 does nothing

Technical

  • Large refactor to how ytfzf handles scrapers,
    • there are no longer any builtin special cases to reduce code complexity.
    • handle_scrape_error occures for every scrape instead of at the end
  • Large refactor to how searching works.
    • search query comes from a "source" now, by default that is the argumentspassed to the program, if no arguments are passed it uses the prompt source.
  • Refactor to how -I, -L, and --info-wait work.
  • Interfaces are no longer responsible for running handle_keypress, that now happens in the main loop after the interface is run.

Plans for Next Update

  • on_search_<ext> will be changed to <ext>_on_search to prevent clashes with on_search_<search_query>