Generates memes from URLs. http://memegen.link
  • Python 73.5%
  • HTML 17.7%
  • CSS 4.6%
  • Makefile 3.1%
  • JavaScript 0.9%
  • Other 0.2%
Find a file
2020-05-04 19:38:48 -04:00
.github Create FUNDING.yml 2020-05-03 16:32:51 -04:00
bin Update verchew 2019-04-18 15:13:18 -04:00
data Add meme template for But it's Honest Work 2019-10-24 15:38:19 +10:00
docs Add social media assets 2017-01-10 19:07:31 -05:00
memegen Clear cache when invalid 2020-02-14 19:55:24 -05:00
scripts Update Pillow 2019-04-07 13:21:53 -04:00
tests Limit maximum image size 2019-04-18 15:13:39 -04:00
.appveyor.yml Bust cache based on lock file 2019-06-03 19:42:14 -04:00
.coveragerc Update tooling 2018-04-01 20:38:59 -04:00
.gitattributes Fix changes link 2016-06-07 14:31:18 -04:00
.gitignore Update tooling 2018-04-01 20:38:59 -04:00
.pycodestyle.ini Switch to pipenv for dependency management 2017-07-05 13:44:18 -04:00
.pydocstyle.ini Update tooling 2017-11-04 02:39:33 -04:00
.pylint.ini Update tooling 2018-04-01 20:38:59 -04:00
.scrutinizer.yml Update .scrutinizer.yml 2018-09-18 15:28:57 -04:00
.travis.yml Accept any patch version of Python 3.7 for Travis CI 2019-07-27 19:42:08 -04:00
.verchew.ini Update verchew 2019-04-18 15:13:18 -04:00
app.json Update tooling 2018-04-01 20:38:59 -04:00
CHANGELOG.md Disable watermark on blank images 2018-09-01 22:49:20 -04:00
CHECKS Filled the CHECKS file and solved Pep8 problem. 2015-06-24 19:06:06 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md 2017-12-29 13:57:57 -05:00
LICENSE.md Update copyright date 2020-01-08 09:49:31 -05:00
Makefile Update Pillow 2019-04-07 13:21:53 -04:00
manage.py Update dependencies to resolve security warnings 2019-03-23 19:43:37 -04:00
Pipfile Update pillow 2020-04-16 23:07:50 -04:00
Pipfile.lock Update pillow 2020-04-16 23:07:50 -04:00
Procfile Disable 'sendfile' on gunicorn 2019-04-07 13:07:12 -04:00
pytest.ini Add transparency to the watermark 2018-06-02 18:46:08 -04:00
README.md Include sponsors badge on website 2020-05-04 19:38:48 -04:00
scent.py Update dependencies 2018-10-16 07:29:23 -04:00

memegen.link

An API to programatically generate memes based solely on requested URLs.

Unix Build Status Windows Build Status Coverage Status Scrutinizer Code Quality License GitHub Sponsor

Generating Images

The API is stateless so URLs contain all the information necessary to generate meme images. For example, https://memegen.link/buzz/memes/memes_everywhere.jpg produces:

Sample Image

But, the site can also produce masked URLs to conceal the joke:

https://memegen.link/_YnV6egltZW1lcy9tZW1lcy1ldmVyeXdoZXJl.jpg

For any image, lose the extension to see a list of all format options:

https://memegen.link/buzz/memes/memes_everywhere

Special Characters

In URLs, spaces can be inserted using underscores, dashes, or mixed case:

  • underscore (_) → space ( )
  • dash (-) → space ( )
  • 2 underscores (__) → underscore (_)
  • 2 dashes (--) → dash (-)
  • "weLoveMemes" → "we love memes"

Reserved URL characters can be escaped:

  • tilde + Q (~q) → question mark (?)
  • tilde + P (~p) → percentage (%)
  • tilde + H (~h) → hashtag/pound (#)
  • tilde + S (~s) → slash (/)
  • 2 single qutoes ('') → double quote (")

For example, https://memegen.link/doge/hspecial_charactersq/underscore__-dash--.jpg produces:

Escaped Characters

Alternate Styles

Some memes come in multiple forms, which can be selected via ?alt=<style>:

Template with Styles

For example: https://memegen.link/sad-biden/sad_joe_biden/doesn't_think_you'll_vote.jpg?alt=scowl

Or, you can use your own image URL as the style. For example, https://memegen.link/custom/my_pretty/background.jpg?alt=http://www.gstatic.com/webp/gallery/1.jpg produces:

Custom Background

Alternate Fonts

Additional fonts are available (see: https://memegen.link/api/fonts) and can be selected via ?font=<name>.

For example, https://memegen.link/joker/pick_a_different_font/people_lose_their_minds.jpg?font=typoline-demo produces:

Custom Font

Custom sizes

Images can be scaled to a specific width via ?width=<int> or a specific height via ?height=<int>. If both parameters are provided (?width=<int>&height=<int>), the image will be padded to the exact dimensions.

For example, https://memegen.link/both/width_or_height/why_not_both~q.jpg?height=350&width=600 produces:

Custom Size

Preview Images

API clients that want to show a preview of an image while the user is still typing should disable caching and analytics via ?preview=true.

Social Media

Add ?share=true to get HTML with images optimized for sharing on social media.

Adding Templates

To add a new template, please follow the contributor instructions.

Thanks go to danieldiekmeier/memegenerator for the inspiration!

Sample Clients

Platforms Link Source
Slack --- Python: nicolewhite/slack-meme
Slack --- Go: CptSpaceToaster/slackbot
Slack http://www.memetizer.com ---
Hain --- JavaScript: Metrakit/hain-plugin-meme
Web --- Clojure: jasich/mighty-fine-memes
Web, Slack https://memecomplete.com ---

Additional clients can be found by searching for code examples on GitHub.