Extract • Organize • Deploy
A complete automation suite that transforms WhatsApp Web stickers into organized, importable packs with a stunning web gallery.
Sticker Vault bridges the gap between WhatsApp Web and custom sticker apps with a seamless three-step workflow:
graph LR
A[🌐 WhatsApp Web] -->|Extract| B[⚙️ Sticker Vault]
B -->|Process| C[📦 Organized Packs]
C -->|Import| D[📱 WhatsApp App]
style A fill:#25D366,stroke:#128C7E,color:#fff
style B fill:#3776AB,stroke:#2C5F8D,color:#fff
style C fill:#F7DF1E,stroke:#F0DB4F,color:#000
style D fill:#25D366,stroke:#128C7E,color:#fff
| 🔍 Extract Scrape stickers from WhatsApp Web |
⚡ Process Deduplicate & organize automatically |
🎨 Browse Beautiful web gallery with previews |
📲 Import One-click WhatsApp integration |
|
Browser-based scraper captures blob URLs from WhatsApp Web in real-time as you scroll through chats. SHA-256 hashing eliminates duplicate stickers automatically—no manual cleanup needed. Auto-chunks stickers into packs of 30 with proper manifest generation and tray icons. |
Dark-themed Flask web app with lazy loading, smooth animations, and responsive design. Click any sticker to download it directly—no complicated export process. Automatically creates optimized 96×96 PNG tray icons for each pack. |
wp_stickers/
│
├── 🐍 Python Scripts
│ ├── app.py # Flask web server
│ ├── build.py # Deduplication & build pipeline
│ ├── generate_manifest.py # WhatsApp manifest generator
│ └── make_trays.py # Tray icon generator (96x96)
│
├── 🌐 Browser Scripts
│ ├── sticker_finder.js # Scraper (run in DevTools)
│ └── sticker_downloader.js # Batch downloader
│
├── 📄 Data Files
│ ├── contents.json # WhatsApp sticker manifest
│ └── stickers.json # Gallery metadata
│
├── 🎨 Web Interface
│ ├── templates/
│ │ └── index.html # Dark-themed gallery
│ └── static/
│ └── dist/ # Processed stickers
│
├── 📦 Sticker Packs
│ ├── 1/ # Pack 1 (30 stickers)
│ ├── 2/ # Pack 2 (30 stickers)
│ ├── 3/ # Pack 3 (remaining)
│ └── tray_*.png # Pack tray icons
│
└── 🗂️ stickers/ # Raw extracted files
| ✅ Python 3.8+ | ✅ pip package manager | ✅ Modern browser (Chrome/Edge/Firefox) |
# Clone the repository
git clone https://github.com/indiser/Sticker-Vault-Web.git
cd sticker-vault
# Install dependencies
pip install flask pillow| 1. | Open WhatsApp Web in your browser |
| 2. | Press F12 to open Developer Tools |
| 3. | Navigate to the Console tab |
| 4. | Paste and run sticker_finder.js |
| 5. | Scroll through chats to capture sticker URLs |
| 6. | Run sticker_downloader.js to download all stickers |
| 7. | Move downloaded files to the stickers/ folder |
python build.py🔍 What this does
- ✅ Removes duplicate stickers using SHA-256 hashing
- ✅ Renames files to sequential format (
sticker_001.webp) - ✅ Stages output to
static/dist/ - ✅ Generates
stickers.jsonfor the web gallery
python generate_manifest.py🔍 What this does
- ✅ Creates WhatsApp-compliant
contents.json - ✅ Auto-chunks stickers into packs of 30
- ✅ Assigns tray icons and emoji metadata
python make_trays.py🔍 What this does
- ✅ Generates 96×96 PNG tray icons
- ✅ Optimizes file size (under 50KB limit)
- ✅ Creates one icon per sticker pack
python app.py🔍 What this does
- ✅ Starts Flask server at
http://localhost:5000 - ✅ Displays all stickers with smooth animations
- ✅ Enables one-click downloads
🎉 Your sticker gallery is now live!
| Requirement | Status | Details |
|---|---|---|
| WebP Format | ✅ | All stickers in .webp format |
| Pack Size | ✅ | Maximum 30 stickers per pack |
| Tray Icon | ✅ | 96×96 PNG format |
| Icon Size | ✅ | Under 50KB per icon |
| Emoji Metadata | ✅ | At least 1 emoji per sticker |
| Manifest Schema | ✅ | Valid contents.json |
| 🌙 Dark Theme Slate color palette |
✨ Animations Staggered fade-ins |
🖼️ Lazy Loading Optimized performance |
📱 Responsive Mobile-friendly grid |
We welcome contributions! Here's how you can help:
|
🐛 Found a bug? |
💡 Have an idea? |
🔧 Want to code? |
# 1. Fork the repository
# 2. Create your feature branch
git checkout -b feature/amazing-feature
# 3. Commit your changes
git commit -m 'Add amazing feature'
# 4. Push to the branch
git push origin feature/amazing-feature
# 5. Open a Pull RequestThis project is licensed under the MIT License
See the LICENSE file for details