A simplish set of bash scripts to have a locally stored youtube playlist using fzf and sqlite3 with thumbnails
Go to file
iceyrazor 2356a1b130 readme change 2025-07-19 14:02:24 -05:00
.gitignore fixed preview.sh when first char in ytid is - such as -yK 2025-04-13 12:43:28 -05:00
LICENSE init 2025-01-31 19:51:56 -06:00
README.md readme change 2025-07-19 14:02:24 -05:00
channelname.sh init 2025-01-31 19:51:56 -06:00
example.png added image 2025-01-31 21:16:39 -06:00
fetch.sh added error checking to thumbnail so it wont make empty files 2025-05-26 07:55:55 -05:00
getyt removed last changed. it was allready doing the thing i wanted. renamed get_yt2.sh to getyt. added actual args 2025-06-09 19:07:42 -05:00
getytmd put thumbs on new line 2025-06-21 22:52:48 -05:00
preview.sh fixed preview.sh when first char in ytid is - such as -yK 2025-04-13 12:43:28 -05:00
watch.sh init 2025-01-31 19:51:56 -06:00
youtube_stuffs.db.def init 2025-01-31 19:51:56 -06:00

README.md

youtube playlist cli

[!NOTE] this does NOT download the videos. only thumbnails (optional)

A simplish set of bash scripts to have a locally stored youtube playlist using fzf and sqlite3 with thumbnails

Technically you can modify this to store anything other than just yt videos

noimg

download

Just download this repo and rename youtube_stuffs.db.def to youtube_stuffs.db

requirements

  • bash
  • fzf
  • sqlite3
  • sed
  • yt-dlp
  • wget

optional requirements

  • chafa # for image previews
  • a terminal that works with chafa. i use wezterm

Usage

  • have a playlist or video thats either unlisted or public.
  • run fetch.sh "youtube url/playlist url" "playlist name". that should pretty much do everything.
  • check download_err.txt for download errors. Videos that are marked as nsfw and require sign in will NOT be added to the list and require manual intervention
  • then getyt.
    • if you want thumbnails getyt -c.
    • if you want to de a specific "category" or playlist. do getyt playlistname
  • if you want too then delete download.txt and download_err.txt and thumberr.txt

getytmd

generates a md file of the whole db or a category. one with thumbnails and one without.

intended to be used with neovim markdown preview + 3rd image. but anything that can view a markdown file and load the thumbnails is fine. even a browser md viewer.

getytmd playlistname[optional]

config

  • In getyt there is the preview lines and columns. Idk if I can autodetect this because something something fzf doesn't do something something
  • If you want to change anything else you would have to change the script. Feel free to make your own config system

todo

  • auto detect detect last item in list when and before adding new item so thumbnails doesn't start at 1. Or async it or something idk