{"id":39677452,"url":"https://github.com/n0spaces/get-stick-bugged-lol","last_synced_at":"2026-01-18T09:48:26.383Z","repository":{"id":57434092,"uuid":"286355372","full_name":"n0spaces/get-stick-bugged-lol","owner":"n0spaces","description":"Get stick bugged by any image!","archived":false,"fork":false,"pushed_at":"2023-12-28T02:02:50.000Z","size":14920,"stargazers_count":141,"open_issues_count":3,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-28T02:16:44.708Z","etag":null,"topics":["lol","meme-generator","memes","python","stick-bug"],"latest_commit_sha":null,"homepage":"","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/n0spaces.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}},"created_at":"2020-08-10T02:18:36.000Z","updated_at":"2025-09-01T19:26:59.000Z","dependencies_parsed_at":"2022-08-27T22:31:31.077Z","dependency_job_id":null,"html_url":"https://github.com/n0spaces/get-stick-bugged-lol","commit_stats":null,"previous_names":["n0spaces/get_stick_bugged_lol"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/n0spaces/get-stick-bugged-lol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0spaces%2Fget-stick-bugged-lol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0spaces%2Fget-stick-bugged-lol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0spaces%2Fget-stick-bugged-lol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0spaces%2Fget-stick-bugged-lol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n0spaces","download_url":"https://codeload.github.com/n0spaces/get-stick-bugged-lol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n0spaces%2Fget-stick-bugged-lol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["lol","meme-generator","memes","python","stick-bug"],"created_at":"2026-01-18T09:48:26.248Z","updated_at":"2026-01-18T09:48:26.334Z","avatar_url":"https://github.com/n0spaces.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# get-stick-bugged-lol\nA Python module and command-line tool that generates a \n[Get Stick Bugged Lol](https://knowyourmeme.com/memes/get-stick-bugged-lol) video from any image.\n\n## Example\n```commandline\ngsbl python.jpg python.mp4 -r 760 475 -s 0.7\n```\n![Example GIF](examples/python.gif)\n\n[Example video with sound](examples/python.mp4)\n\nThis script uses [pylsd-nova](https://github.com/AndranikSargsyan/pylsd-nova) to detect line segments in the image,\nPillow to draw the lines as they move to form the stick bug, and MoviePy to create the video.\n\n## Requirements\n* Python 3.6 or later (any OS)\n\n## Installation\nThis package can be installed using pip:\n```commandline\npip install get-stick-bugged-lol\n```\n\n## Usage\n### In the terminal\nInstalling the package will register the `gsbl` command in the terminal (or you can use `python -m gsbl`). To use the\nimage `input.png` to generate the video `output.mp4`:\n```commandline\ngsbl input.png output.mp4\n```\nOptional arguments:\n* `-h, --help` show this help message and exit\n* `-r --resolution WIDTH HEIGHT` width and height of the video (default: 720 720)\n* `--img-bg-color R G B` RGB background color while the image is visible (default: 0 0 0)\n* `--line-color R G B` RGB color of line segments (default: 255 255 211)\n* `--line-bg-color R G B` RGB background color after image disappears (default: 125 115 119)\n* `-s --scale SCALE` the image scale passed to the line segment detector. Slightly lowering this may improve results in\nlarge images. This does not affect the image scale in the video (try --resolution instead). (default: 0.8)\n\n### In a Python script\n\n```python\nfrom PIL import Image\nfrom gsbl.stick_bug import StickBug\n\n# Create the StickBug object\nsb = StickBug(Image.open('example.png'))  # parameter can also just be a filepath\n\n# Change some properties if you want\nsb.video_resolution = (1280, 720)\nsb.lsd_scale = 0.5\n\n# That's it! The video will be generated the first time you access it\nvideo = sb.video  # MoviePy VideoClip\n\n# Or you can just save it\nsb.save_video('example.mp4')\n\n# If any settings were changed, the video will be regenerated the next time you access it.\nsb.line_color = (128, 0, 255)\nvideo_purple = sb.video\n```\n\n#### `StickBug` properties\n* `image` the source PIL Image. You can set this when initializing `StickBug`, or at any time by accessing the property.\nIf you want, you can leave this parameter empty while initializing.\n* `segments` a numpy array of the 9 line segments detected. If the line segment detector hasn't run yet, that's done the\nfirst time this is accessed. The line segment detector will run again if any other properties have changed. This can\nalso be set manually if you want. Each row of the array must contain the values `[x1, y1, x2, y2, width]`.\n* `video` (readonly) the MoviePy VideoClip generated by the script. If the video hasn't been generated yet, that's\ndone the first time this is accessed. The video will be regenerated if any other properties have changed.\n\n* `video_resolution` the resolution of the video as a tuple\n* `lsd_scale` the image scale passed to the line segment detector. Slightly lowering this may improve results in large\nimages. This does not affect the image scale in the video.\n* `img_bg_color` the background color of the video while the image is visible\n* `line_color` the color of the line segments in the video\n* `line_bg_color` the background color of the video after the image disappears\n\n## Building\nInstall the required packages:\n\n    pip install -r requirements.txt\n\nInstall this package directly:\n\n    cd [path to repository]\n    pip install .\n\nOr build a wheel:\n\n    cd [path to repository]\n    python3 setup.py bdist_wheel\n\n## License\nThis package is available under the MIT License. See [LICENSE](LICENSE) for more info.\n\nThis package makes use of the following external libraries:\n* [pylsd-nova](https://github.com/AndranikSargsyan/pylsd-nova)\n* [NumPy](https://numpy.org)\n* [Pillow](https://python-pillow.org)\n* [MoviePy](https://github.com/Zulko/moviepy)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn0spaces%2Fget-stick-bugged-lol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn0spaces%2Fget-stick-bugged-lol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn0spaces%2Fget-stick-bugged-lol/lists"}