Skip to content
/ sYT Public

Terminal YouTube client to search, watch, and download videos without using the official YouTube API.

License

Notifications You must be signed in to change notification settings

glowfi/sYT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 sYT

Search • Watch • Download YouTube videos directly from the terminal

No official YouTube API required.

Shell Python mpv yt--dlp


✨ Overview

sYT is a lightweight terminal-based YouTube client that lets you:

  • 🔎 Search videos
  • ▶️ Watch instantly
  • ⬇️ Download content
  • 🎛 Select quality interactively

All from your terminal — without using the official YouTube API.

Designed for keyboard-driven workflows and minimal environments.


🚀 Features

  • API-free YouTube searching
  • Terminal-native UI (fzf / dmenu / bemenu)
  • Instant playback via mpv
  • Multi-video downloads
  • Quality selection
  • Thumbnail preview support
  • Multiple scraping algorithms

🧩 Dependencies

Tool Purpose
Python ≥ 3.5 scraping logic
ueberzugpp image preview
fzf / dmenu / bemenu interactive menu
jq JSON formatting
mpv video playback
yt-dlp stream extraction
aria2c downloading

📦 Installation

1️⃣ Add local bin to PATH

POSIX shells (bash / zsh / dash)

echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc

Fish shell

echo 'set PATH ~/.local/bin $PATH' >> ~/.config/fish/config.fish

Restart shell afterwards.


2️⃣ Install ueberzugpp

Install build dependencies:

libxres openslide cmake chafa libvips libsixel python-opencv

Build:

pip uninstall -y cmake
git clone https://github.com/jstkdng/ueberzugpp.git
cd ueberzugpp
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
mv ./ueberzug ./ueberzugpp

3️⃣ Install sYT

git clone https://github.com/glowfi/sYT
cd sYT

mkdir -p ~/.local/bin
cp sYT.py ~/.local/bin/
cp sYT.sh ~/.local/bin/

chmod +x ~/.local/bin/sYT.py
chmod +x ~/.local/bin/sYT.sh

cd ..
rm -rf sYT

🧠 Algorithms

Algorithm Description
v1 Pure web scraping (no dependencies, slower)
v2 Invidious API backend (fast, default)

▶️ Usage

Watch Videos

sYT.sh -p fzf
sYT.sh -p dmenu
sYT.sh -p bemenu

Select Algorithm

sYT.sh -a v1
sYT.sh -a v2

Download via Search

sYT.sh -d true -p fzf
sYT.sh -d true -p fzf -ml true

Options:

Flag Description
-p menu provider
-d download instead of play
-ml multi-download

Download via Direct Links

Single link:

sYT.sh -fl "https://youtube.com/abcdef" -p fzf

Multiple links:

sYT.sh -flm "url1 url2" -p fzf

dmenu / bemenu prompt mode:

sYT.sh -p dmenu -dl true

Merge audio + video:

sYT.sh -d true -mav true

Help

sYT.sh -h

⚠️ Notes

  • Depends on YouTube frontend changes
  • Uses scraping + Invidious instances
  • Respect YouTube terms of service

🤝 Contributing

Improvements and fixes are welcome.

Small focused PRs preferred.


📄 License

GPL-3.0

About

Terminal YouTube client to search, watch, and download videos without using the official YouTube API.

Topics

Resources

License

Stars

Watchers

Forks