Claude-skill-registry-data memegen-templates
Generate classic meme images using 207+ templates from memegen.link. Use when creating memes with popular formats like Drake, Distracted Boyfriend, This is Fine, or any classic internet meme template.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/memegen-templates" ~/.claude/skills/majiayu000-claude-skill-registry-data-memegen-templates && rm -rf "$T"
manifest:
data/memegen-templates/SKILL.mdsource content
Memegen Templates
Generate classic internet memes using 207+ popular meme templates from memegen.link.
Overview
This Skill provides access to all classic meme formats:
- 207+ meme templates (Drake, Distracted Boyfriend, Expanding Brain, etc.)
- FREE API - No API key required
- URL-based generation - Simple and fast
- Custom text - Top/bottom or multi-line text
- Image overlays - Optional background images
Quick Start
Basic Usage
from src.memegen_api import MemegenAPI api = MemegenAPI() # Generate Drake meme meme_url = api.generate_meme( template="drake", top_text="Manually creating memes", bottom_text="Using memegen templates" ) print(f"Meme URL: {meme_url}") # https://api.memegen.link/images/drake/Manually_creating_memes/Using_memegen_templates.png
Download Meme
# Generate and download image = api.generate_and_download( template="drake", top_text="Old way", bottom_text="New way" ) # Save to file image.save("my_meme.png")
Popular Templates
Top 20 Most Used
| Template | Name | Format |
|---|---|---|
| Drake Hotline Bling | Top = No, Bottom = Yes |
| Distracted Boyfriend | Left/Center/Right text |
| Inhaling Seagull | Top/Bottom |
| Do You Want Ants? | Top/Bottom |
| Afraid to Ask Andy | Top/Bottom |
| This is Fine | Top/Bottom |
| Expanding Brain | Multi-level |
| Buzz and Woody | Left/Right |
| Why Not Both? | Top/Bottom |
| Captain Phillips | Top/Bottom |
| Condescending Wonka | Top/Bottom |
| X, X Everywhere | Top/Bottom |
| Socially Awesome Penguin | Top/Bottom |
| Socially Awkward Penguin | Top/Bottom |
| I Should Buy a Boat | Top/Bottom |
| Disaster Girl | Top/Bottom |
| One Does Not Simply | Top/Bottom |
| Bad Luck Brian | Top/Bottom |
| Y U No | Top/Bottom |
| Success Kid | Top/Bottom |
Full list: See TEMPLATE_LIST.md for all 207 templates
Usage Examples
Example 1: Drake Meme
api = MemegenAPI() # Classic Drake format meme = api.generate_meme( template="drake", top_text="Complicated setup", bottom_text="One-line API call" )
Output:
Drake rejecting: "Complicated setup" Drake approving: "One-line API call"
Example 2: Distracted Boyfriend
# Three-part meme meme = api.generate_meme( template="distracted", texts=["Boyfriend", "Girlfriend", "Other Girl"] ) # Texts: [Left (boyfriend), Center (girlfriend), Right (other girl)]
Example 3: Expanding Brain
# Multi-level intelligence meme meme = api.generate_meme( template="expanding", texts=[ "Small brain idea", "Medium brain idea", "Big brain idea", "Galaxy brain idea" ] )
Example 4: This is Fine
# Classic "This is Fine" dog meme = api.generate_meme( template="fine", top_text="Everything is fine", bottom_text="*server is on fire*" )
Example 5: Custom Styling
# With custom styling meme = api.generate_meme( template="drake", top_text="Normal memes", bottom_text="Customized memes", style={ "font": "impact", "color": "white", "stroke": "black" } )
Advanced Features
1. Background Images
# Use custom background image meme = api.generate_with_background( template="drake", top_text="Stock templates", bottom_text="Custom backgrounds", background_url="https://example.com/custom-bg.jpg" )
2. Multi-Line Text
# Text with line breaks meme = api.generate_meme( template="drake", top_text="Single_line_text", bottom_text="Multi~nline~ntext" # ~n = newline )
3. Special Characters
# Handle special characters meme = api.generate_meme( template="drake", top_text="Text with spaces", bottom_text="Text_with_underscores" ) # Spaces → underscores in URL # Use ~s for literal spaces
4. Batch Generation
# Generate multiple memes templates = ["drake", "distracted", "fine"] texts = [ ("Option A", "Option B"), ("Thing 1", "Thing 2", "Thing 3"), ("Before", "After") ] memes = [] for template, text in zip(templates, texts): meme = api.generate_meme(template=template, texts=text) memes.append(meme)
Template Categories
Advice Animals
- Insanity Wolfinsanity
- Success Kidsuccess
- Socially Awkward Penguinawkward
- Socially Awesome Penguinawesome
- Bad Luck Brianblb
- Futurama Fryfry
- Scumbag Stevescumbag
Reaction Memes
- Drake Hotline Blingdrake
- Distracted Boyfrienddistracted
- Buzz and Woodybuzz
- Why Not Both?both
- Do You Want Ants?ants
- This is Finefine
Text-Based
- Expanding Brainexpanding
- Jetpack Memejetpack
- Troll Facetroll
- Y U Noyuno
- Overly Attached Girlfriendod
Movie/TV
- Condescending Wonkawonka
- Matrix Morpheusmorpheus
- Captain Phillipscaptain
- Star Trektrek
- Austin Powers Mini-Memini
API Reference
MemegenAPI Class
class MemegenAPI: def generate_meme( self, template: str, top_text: str = "", bottom_text: str = "", texts: list = None, style: dict = None ) -> str: """ Generate meme URL. Args: template: Template name (e.g., "drake") top_text: Top text (optional) bottom_text: Bottom text (optional) texts: List of texts for multi-part memes style: Custom styling options Returns: URL to generated meme image """ def generate_and_download(self, ...) -> PIL.Image: """Generate meme and download as PIL Image""" def list_templates(self) -> list: """List all available templates""" def get_template_info(self, template: str) -> dict: """Get template metadata"""
Common Use Cases
1. Social Media Posts
# Generate for Twitter/Instagram meme = api.generate_and_download( template="drake", top_text="Boring posts", bottom_text="Meme posts" ) meme.save("social_media_post.png")
2. Presentation Slides
# Add humor to presentations meme = api.generate_meme( template="expanding", texts=[ "Basic approach", "Optimized approach", "Over-engineered approach", "Actually using memegen.link" ] )
3. Team Communication
# Internal team memes meme = api.generate_meme( template="fine", top_text="Production is down", bottom_text="This is fine" )
4. Content Creation
# Blog posts, videos, etc. meme = api.generate_meme( template="distracted", texts=["Old method", "Current workflow", "New shiny tool"] )
Text Formatting
Special Characters
| Character | Encoding | Example |
|---|---|---|
| Space | or | |
| Newline | | |
| Underscore | | |
| Dash | or | |
| Question | | |
| Percent | | |
| Hash | | |
| Slash | | |
Examples
# Multi-line text api.generate_meme( template="drake", top_text="Single line", bottom_text="Line 1~nLine 2~nLine 3" ) # Special characters api.generate_meme( template="drake", top_text="100~p normal", bottom_text="200~p meme power" )
Error Handling
try: meme = api.generate_meme( template="invalid_template", top_text="Test" ) except ValueError as e: print(f"Invalid template: {e}") try: meme = api.generate_meme( template="drake", top_text="", # Empty text bottom_text="" ) except ValueError as e: print(f"Invalid text: {e}")
Integration Examples
With Lark Bot
# In Lark bot command def handle_memegen_command(template, top, bottom): api = MemegenAPI() image = api.generate_and_download( template=template, top_text=top, bottom_text=bottom ) upload_to_lark(image)
With Twitter Bot
# Generate and post to Twitter api = MemegenAPI() meme = api.generate_and_download("drake", "Old way", "New way") twitter_client.post_with_image( text="Choose wisely!", image=meme )
With Milady Generator
# Combine with Milady memes from skills.milady_meme_generator.src.meme_generator_v2 import MemeGeneratorV2 # Generate Milady milady_gen = MemeGeneratorV2() milady_img = milady_gen.generate_meme(nft_id=5050) # Generate classic meme memegen_api = MemegenAPI() classic_meme = memegen_api.generate_and_download("drake", "NFTs", "Milady NFTs") # Combine or use separately
Tips & Best Practices
- Keep text short - Max 2-3 words per line works best
- Use appropriate templates - Match format to message
- Test special characters - Preview before sharing
- Cache downloads - Save bandwidth on repeated use
- Batch process - Generate multiple at once for efficiency
Troubleshooting
Template not found:
# Check available templates templates = api.list_templates() print(templates)
Image not loading:
# Use download instead of URL image = api.generate_and_download(...) # More reliable
Text formatting issues:
# Use encoding helper text = api.encode_text("Hello, World!") # Handles special chars
Related Skills
- milady-meme-generator - Milady NFT memes
- lark-bot-integration - Use in Lark bot
Cost: FREE (memegen.link is a free service)
API Docs: https://memegen.link/