Manage your YouTube Watch Later playlist without opening YouTube. Import your queue as a CSV, search, filter, sort, and open a playlist — all in your browser, with no backend.
- Export your Watch Later playlist using the included Tampermonkey userscript → install instructions
- Import the downloaded CSV into the web app
- Manage your queue: search, filter, sort, group, and pick what to watch
Your data lives entirely in localStorage — nothing is sent anywhere.
- Drag-and-drop or click-to-browse CSV upload
- Merge imports — re-import an updated CSV and only new videos are added (duplicates skipped)
- Compare mode in the userscript: load a previously-exported CSV and it highlights videos you've since deleted from the app; auto-delete mode removes them from YouTube's Watch Later in one go
- Text search — filters by title and channel name as you type
- Semantic search — toggle AI-powered search using an on-device embedding model (
all-MiniLM-L6-v2) for fuzzy, meaning-based matching; embeddings are cached locally
- Sort by date added (newest/oldest), duration (longest/shortest), or title
- Sort by selection order — videos surface in the order you picked them
- Group by channel or by month added, with collapsible sections
- Grid view — compact thumbnail grid
- List view — dense single-column list for large queues
- Set a time budget (5–60 min) and let the app auto-select videos to fill it exactly
- Swap mode: replace a selected video with another that fits within the remaining budget
- Select any videos and open them as a YouTube playlist in one click
- Builds a
youtube.com/watch_videos?video_ids=…URL — no API key needed
- Installable as a Progressive Web App
- Thumbnails cached for offline browsing (up to 500, 30-day expiry)
npm install
npm run devThen open http://localhost:5173.
See scripts/INSTALL.md for step-by-step instructions on installing the Tampermonkey export script.
| Layer | Choice |
|---|---|
| UI | React 19 + TypeScript |
| Build | Vite 8 |
| Styling | Tailwind CSS v4 |
| CSV parsing | papaparse |
| Semantic search | @huggingface/transformers — Xenova/all-MiniLM-L6-v2 (on-device) |
| PWA | vite-plugin-pwa |
| Testing | Vitest + React Testing Library |
See CONTRIBUTING.md for how to report bugs, request features, and submit pull requests.
MIT