{"id":16642920,"url":"https://github.com/horlogeskynet/sgeext","last_synced_at":"2026-04-29T23:32:39.171Z","repository":{"id":84678401,"uuid":"174239430","full_name":"HorlogeSkynet/SgEExt","owner":"HorlogeSkynet","description":":octopus: a Simple gemoji Emoji Extractor","archived":false,"fork":false,"pushed_at":"2025-09-05T18:11:45.000Z","size":50,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-05T20:18:27.372Z","etag":null,"topics":["emoji","gemoji","github","jekyll","jemoji"],"latest_commit_sha":null,"homepage":"https://git.forestier.app/HorlogeSkynet/SgEExt","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HorlogeSkynet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-06T23:59:09.000Z","updated_at":"2025-09-05T18:11:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"dfa90534-48e7-492f-b615-91a428230a07","html_url":"https://github.com/HorlogeSkynet/SgEExt","commit_stats":{"total_commits":63,"total_committers":1,"mean_commits":63.0,"dds":0.0,"last_synced_commit":"e4e125fe1f352bf6f2d47741c0f5119942dc503a"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/HorlogeSkynet/SgEExt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorlogeSkynet%2FSgEExt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorlogeSkynet%2FSgEExt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorlogeSkynet%2FSgEExt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorlogeSkynet%2FSgEExt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HorlogeSkynet","download_url":"https://codeload.github.com/HorlogeSkynet/SgEExt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HorlogeSkynet%2FSgEExt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32448399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emoji","gemoji","github","jekyll","jemoji"],"created_at":"2024-10-12T08:06:48.292Z","updated_at":"2026-04-29T23:32:39.159Z","avatar_url":"https://github.com/HorlogeSkynet.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SgEExt \u0026mdash; a Simple gemoji Emoji Extractor\n\n\u003e Pronounced _[sgɪksˈt]_\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Noto_Emoji_KitKat_1f419.svg/250px-Noto_Emoji_KitKat_1f419.svg.png\"\u003e\u003c/p\u003e\n\n## Introduction\n\nLet's have a talk about an _usual_ situation.  \nYou run a self-hosted _Jekyll_ blog, with the [jemoji](https://github.com/jekyll/jemoji) plugin loaded so as to \"enhance\" your content with some emojis.  \nYou'd have noticed that [by default](https://github.com/jekyll/jemoji#emoji-images) the plugin renders your static pages with `\u003cimg\u003e` whose `src` attributes are pointing to a _GitHub_'s (_Microsoft_'s) location.  \nThe latter means that **a third-party _is able_** (note that it _may_ not be the case) **to log people who consult your website**, and thus **is a privacy issue**.\n\nSo, at this step, you may have tried to [extract images](https://github.com/github/gemoji#extract-images) to serve it yourself, but **the operation is only possible from a macOS system** ('cause _Apple_ emojis are present within the system font, and... [gemoji is mainly using the \"Apple's emoji character palette\"](https://github.com/github/gemoji/blob/b04991b001e137c06cc56cebcabf0e458b5eea44/CONTRIBUTING.md#readme)).\n\nNow that is said, there are your options :\n\n* Buy an _Apple_ device\n* Kindly ask a friend with an _Apple_ device to extract and send you those PNGs (cc [@Naernon](https://github.com/Naernon))\n* Change your underneath emojis module / plugin / whatever\n* ~~Wait for the [gemoji project to use another set of emoji](https://github.com/github/gemoji/pull/72)~~\n* **Download PNGs directly from _GitHub_**, and that is definitely what this project is about !\n\n## Dependencies\n\n* `python3` (\u003e= 3.6)\n* `python3-requests`\n\n## Installation\n\n### Manually\n\n```bash\ngit clone https://github.com/HorlogeSkynet/SgEExt.git\n```\n\n## Usage\n\n```bash\npython3 sgeext.py --help\n\n# Careful, running without any arguments would download the whole emojis palette !\n# Resulting files will be set under `emoji/unicode/` (automatically created).\n# Microsoft GitHub's emojis (images) will be set under `emoji/`.\npython3 sgeext.py\n\n# This directory structure will be created if it does not exist.\npython3 sgeext.py -l joy -d emojis/images/\n\n# Wanna force re-download of existing files ? Sure.\npython3 sgeext.py -l joy relaxed sunglasses -d emojis/images/ -f\n\n# Wanna save \"real\" emojis under their \"real\" name ? Sure.\npython3 sgeext.py -l ok_hand -n\n\n# Wanna download GitHub added \"emojis\" (mostly images) ? Sure.\npython3 sgeext.py -l bow relaxed octocat trollface --verbose\n\n# 'octocat' \u0026 'trollface' would be ignored.\npython3 sgeext.py -l bow relaxed octocat trollface --only-emojis\n\n# Handle duplicates ('uk' and 'gb' refer to the same emoji).\npython3 sgeext.py -l fr gb us jp uk jp gb it\n\n# Wanna download the emojis currently being used in your (Jekyll) blog ? Sure.\npython3 sgeext.py -l $(grep -hREo ':[a-z+-]+[a-z1-9_-]+:' /path/to/your/blog/_posts/*.md | sort | uniq | cut -d ':' -f 2) -d /path/to/your/blog/images/emojis/\n```\n\n## How does it work ?\n\nThe script... :\n\n* ... (after having tried locally) fetches [the emojis database hosted on _GitHub_](https://github.com/github/gemoji/raw/master/db/emoji.json) (**don't** click if you are on mobile)\n* ... iterates through the elements and extracts their unicode value as hexadecimal\n* ... uses the above result to download them from _GitHub_\n\nAs `githubassets.com` is actually a CDN, it does not _look_ rate-limited.  \nAnyway, I cannot take any responsibility for any inappropriate usage of this software.\n\n## Compatibility\n\nAlthough SgEExt has been developed with cross-platform constraints, it **has not been tested on _Windows_ yet**.  \nFeedbacks are welcome, as usual.\n\n_Apple_ users, [you **don't** have to go this way](https://github.com/github/gemoji#extract-images).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorlogeskynet%2Fsgeext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhorlogeskynet%2Fsgeext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorlogeskynet%2Fsgeext/lists"}