Fetch favicons for any website using multiple fallback sources (Google, DuckDuckGo, direct). Use when needing website icons, favicons, site logos, or domain icons for any URL or domain.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: fetch-favicons
description: Fetch favicons for any website using multiple fallback sources (Google, DuckDuckGo, direct). Use when needing website icons, favicons, site logos, or domain icons for any URL or domain.
---
# Fetch Favicons
Retrieve favicons for any domain using multiple sources with automatic fallback.
## Requirements
- Python 3.6+
- `requests` library: `pip install requests`
## Quick Usage
```bash
python3 scripts/fetch_favicon.py example.com
python3 scripts/fetch_favicon.py example.com --output ./icons/
python3 scripts/fetch_favicon.py example.com --size 128
```
## Sources (in order of preference)
| Source | URL Pattern | Notes |
| ---------- | -------------------------------------------------------------- | ------------------------------ |
| Google | `https://www.google.com/s2/favicons?domain={domain}&sz={size}` | Best quality, supports sizes |
| DuckDuckGo | `https://icons.duckduckgo.com/ip3/{domain}.ico` | Privacy-focused, no size param |
| Direct | `https://{domain}/favicon.ico` | May be low quality or missing |
## Parameters
- **domain**: Target domain (e.g., `github.com`). Full URLs are automatically parsed to extract domain.
- **size**: Size hint for Google API (16, 32, 64, 128, 256). Default: 128. Falls back to 16x16 if unavailable.
- **output**: Output directory. Default: current directory.
## Output
- Returns PNG format (Google) or ICO format (DuckDuckGo/direct)
- Filename: `{domain}.png` or `{domain}.ico`
- Exits with code 0 on success, 1 on failure
## Examples
```bash
# Single domain
python3 scripts/fetch_favicon.py github.com
# From full URL (domain extracted automatically)
python3 scripts/fetch_favicon.py "https://docs.github.com/en/pages"
# Custom size and output
python3 scripts/fetch_favicon.py twitter.com --size 256 --output ~/icons/
# Batch fetch (one per line in file)
cat domains.txt | xargs -I {} python3 scripts/fetch_favicon.py {} --output ./favicons/
```
## Rate Limiting
Google's API may rate-limit after ~55 consecutive requests. Add delays for batch operations:
```bash
cat domains.txt | while read domain; do
python3 scripts/fetch_favicon.py "$domain" --output ./favicons/
sleep 0.5
done
```
No comments yet. Be the first to comment!