A simplish set of bash scripts to have a locally stored youtube playlist using fzf and sqlite3 with thumbnails
Go to file
iceyrazor fedd9c2c81 - added ability to disable thumbnails on web 2025-09-15 17:23:54 -05:00
web - added ability to disable thumbnails on web 2025-09-15 17:23:54 -05:00
.gitignore WEB 2025-07-30 15:59:59 -05:00
LICENSE init 2025-01-31 19:51:56 -06:00
README.md url change 2025-09-10 06:29:18 -05:00
channelname.sh init 2025-01-31 19:51:56 -06:00
download.sh download 2025-08-01 00:39:22 -05:00
example.png added image 2025-01-31 21:16:39 -06:00
fetch.sh fixed printf on insert to db 2025-07-30 19:06:42 -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

there is also a web frontend in web

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