/ytfzf

A posix script to find and watch youtube videos from the terminal. (Without API)

Primary LanguageShellGNU General Public License v3.0GPL-3.0



Discord

A POSIX script that helps you find Youtube videos (without API) and opens/downloads them using mpv/youtube-dl


This is a little showcase

Fast installation

This one-line installation does not support every OS, detail information for different OS can be found in the here

sudo curl -L "https://raw.githubusercontent.com/pystardust/ytfzf/master/ytfzf" -o /usr/bin/ytfzf && sudo chmod +x /usr/bin/ytfzf

Table of Contents

Features

  • Subscriptions
  • Thumbnails
  • History
  • Download
  • Format selection
  • Queue multiple videos

Update-Log

  • We have now added Subscriptions which allows you to search between videos of subscribed channels easily
  • Now ytfzf can queue videos using fzf multiselect option. Press tab to select a video. All the videos will be lined up in mpv. Use > and < to traverse them.
  • Make continuous queries with -s
  • You can preview video thumbnails now! Using Ueberzug. Inspired by fontpreview-ueberzug.
  • Stdin can be taken by using ytfzf -, for both fzf and external menu.
  • Added MacOS support

Examples

  • Search with Thumbnails

    Find and watch videos with thumbnail previews

    ytfzf -t <query>
    

    Show all subscriptions with thumbnails (latest 10)

    ytfzf -St
    
  • You can use multiple options together, here are some examples

    • Stream audio (music), and prompt as the music finishes

      ytfzf -ml <query>
      
    • Download a video from your history

      ytfzf -dH
      
    • Open using external menu in a certain format

      ytfzf -fD
      
  • If you started watching a video and you wish to change format then first hit Q to save position and quit mpv, then choose your format using

    ytfzf -faH
    

Todo

  • Playlists
  • More sites
  • Subscriptions
  • Thumbnails

Bugs

  • dwm with swallow patch: Images don't render when looped (ie, option -l)
  • If thumbnails are not working .Xauthority might be causing it. Try deleting .Xauthority and relogging.