A Chrome extension that allows you to save YouTube video thumbnails and titles to local storage. Built with TypeScript, React, and ShadCN UI.
- Save Thumbnails: Right-click on any video thumbnail to save it with its title
- Grid View: Browse all saved thumbnails in a beautiful grid layout
- Tag Filtering: Filter saved thumbnails by tags (auto-extracted from YouTube)
- Title Toggle: Show or hide video titles on thumbnails
- Local Storage: All data is stored locally on your device
- Node.js 18+
- pnpm (install with
npm install -g pnpm)
- Install pnpm (if not already installed):
npm install -g pnpm- Install dependencies:
pnpm install-
Generate extension icons (or create your own):
pnpm run generate-icons
This will create simple red square placeholder icons for testing. You can replace them with custom icons later if desired.
-
Build the extension:
pnpm run build- Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions/ - Enable "Developer mode" (toggle in top right)
- Click "Load unpacked"
- Select the
distdirectory from this project
- Open Chrome and navigate to
For development with watch mode:
pnpm run devThis will rebuild automatically when you make changes. You'll need to reload the extension in Chrome after each build.
thumbnail-saver/
├── src/
│ ├── content/ # Content script for YouTube pages
│ ├── popup/ # React popup interface
│ ├── background/ # Service worker
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── lib/ # ShadCN UI components
│ └── styles/ # Global styles
├── public/ # Static assets (icons)
├── manifest.json # Extension manifest
└── dist/ # Build output (generated)
- Browse YouTube (homepage, search results, playlists, etc.)
- Right-click on any video thumbnail and select "Save Thumbnail" from the context menu
- Click the extension icon to view all saved thumbnails
- Use the filter dropdown to filter by tags
- Toggle "Show Title" to show/hide titles on thumbnails
- Click any thumbnail to open the video in a new tab
- Click the trash icon to delete saved thumbnails
For more detailed usage instructions, see USAGE.md.
The extension is built using Vite. The build process:
- Compiles TypeScript
- Bundles React components
- Processes CSS with Tailwind
- Outputs to the
distdirectory
After building, the dist directory contains all files needed to load the extension in Chrome.
- TypeScript: Type safety
- React: UI framework
- ShadCN UI: Component library
- Tailwind CSS: Styling
- Vite: Build tool
- Chrome Extension APIs: Storage, messaging, etc.
MIT