ytsift - Lightweight YouTube channel filter

Lightweight YouTube channel filter for titles, duration, views, age and watch state.

Terá de instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

Terá de instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Terá de instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Terá de instalar uma extensão como Tampermonkey para instalar este script.

Terá de instalar uma extensão de gestão de scripts de utilizador para instalar este script.

(Já tenho um gestor de scripts de utilizador, deixe-me instalá-lo!)

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão como Stylus para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

Terá de instalar uma extensão de gestão de estilos de utilizador para instalar este estilo.

(Já tenho um gestor de estilos de utilizador, deixe-me instalá-lo!)

Autor
hdyzen
Instalações diárias
0
Total de instalações
41
Classificações
0 0 0
Versão
1.1.0
Criado
23/05/2026
Atualizado
25/05/2026
Tamanho
100 KB
Licença
GPL-3.0
Aplica-se a

ytsift

License: GPL-3.0

English | Português (Brasil)

A lightweight userscript that adds keyword search, duration, views, and watch-state filters directly to YouTube channel pages. It also lets you batch-enqueue visible videos into your watch queue.

ytsift preview


Heads up: How it works (and why it's slow)

This script runs entirely in your browser. It doesn't query a custom backend — it just filters videos after YouTube loads them on the page.

  • YouTube's Sorting Rule: YouTube forces video fetching in its native order (Latest, Popular, or Oldest). The script hides videos that don't match your filters, but they still get downloaded over the network.
  • Why you have to scroll: If you set very strict filters (e.g. videos with >1M views), you might see an empty list. Just scroll down; as YouTube loads more pages, the script will catch them and display the matches.
  • The 1.5s Throttle: If your screen is empty, YouTube's scroll listeners will try to spam requests to get more content. To prevent CPU lag and avoid getting your IP rate-limited or temporarily blocked by YouTube's servers, we throttle fetches to once every 1.5 seconds. You'll notice a slight delay when scrolling.

What it does

  • Keyword Search: Quick title searching with support for negative keywords (e.g., tutorial -shorts hides anything containing "shorts").
  • Watch Progress Filter: Instantly hide videos you've already watched (or partially watched) using a simple percentage threshold slider.
  • Duration Sliders: Pick minimum and maximum video lengths or use quick presets (Short, Medium, Long).
  • Views Filter: Mapped range sliders to filter views from 0 up to 10M+ without crowding high values.
  • Upload Age: Filter by relative age (e.g., 1w to 6mo). Works in both English and Portuguese channel layouts.
  • Add to Queue: A + Queue button enqueues all visible videos at once (using a 150ms delay between items to keep YouTube's internal command router happy).
  • Native Theme: Inherits YouTube's native design tokens (--yt-sys-color-*). Light and dark mode support is built-in.

Installation

  1. Install a userscript manager extension:
  2. Click here to install: ytsift.user.js

Local Development

  1. Clone the repo: bash git clone https://github.com/andradeatdev/ytsift.git
  2. Install dependencies: bash pnpm install
  3. Enable "Allow access to file URLs" in your userscript manager's extension settings so you can test changes locally.
  4. Build the userscript: bash pnpm build For automatic rebuilds while editing: bash pnpm build:watch
  5. Validate the project: bash pnpm validate

License

GPL-3.0. See LICENSE for details.