Python bindings for Booru imageboards
Python bindings for the imageboards. It is takes a much more functionalities to interacts with ease, and featureful. Making your interaction significantly tidier, less of pain, and hopefully will be reusable.
Contributing • Documentation • Report Issues- Plenty of imageboards
- Search random & gacha returns
- Tags block, resolved safety tags concerns
- Tags finder, tags & query completion
- Parses and returns the image only
- Documented and tested
- Easy to use, check your intelisense
Async context, and it's recommended use asyncio / https://sinkaroid.github.io/booru
NOTE: Python 3.7 or above |
pip install booru
Features availability for this library
Booru | Status | Random | Tags block | Tags finder | Get images | Gacha |
---|---|---|---|---|---|---|
Gelbooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Danbooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Rule34 | Yes |
Yes |
Yes |
Yes |
Yes |
|
Realbooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Tbib | Yes |
Yes |
Yes |
Yes |
Yes |
|
Xbooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Safebooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Yandere | Yes |
Yes |
Yes |
Yes |
Yes |
|
Lolibooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Konachan | Yes |
Yes |
Yes |
Yes |
Yes |
|
Konachan.net | Yes |
Yes |
Yes |
Yes |
Yes |
|
Hypnohub | Yes |
Yes |
Yes |
Yes |
Yes |
|
E621 | Yes |
No |
No |
Yes |
Yes |
|
E926 | Yes |
No |
No |
Yes |
Yes |
|
Derpibooru | Yes |
No |
No |
Yes |
Yes |
|
Furbooru | Yes |
No |
No |
Yes |
Yes |
|
ATFbooru | Yes |
Yes |
Yes |
Yes |
Yes |
|
Behoimi | Yes |
No |
No |
Yes |
Yes |
|
Paheal | Yes |
No |
No |
Yes |
Yes |
Takes parameter (query: str, block: str = "", limit: int = 100, page: int = 1, random: bool = True, gacha: bool = False)
import asyncio
import booru
async def main():
dan = booru.Danbooru()
res = await dan.search(query="cat_girl", block="futanari")
print(res) ## this is <class 'str'>
print(booru.resolve(res)) ## this is <class 'list'>
asyncio.run(main())
- You will never gets content which contains futa tags.
You can also import specific booru client.
from booru import Rule34
some_booru = Rule34()
## do with r34
Takes parameter (query: str, block: str = "", limit: int = 100, page: int = 1)
import asyncio
from booru import Rule34
async def main():
r34 = Rule34()
img = await r34.search_image(query="cat_girl", block="futanari")
print(img)
asyncio.run(main())
- This will parses image url only, instead object
You want to wildcard or query completion like the browser do?
What browser looks like |
This library also |
import asyncio
from booru import Danbooru, resolve
async def main():
dan = Danbooru()
find_tags = await dan.find_tags("jeanne") ## arbitrary tags
wildcard = resolve(find_tags)
print(wildcard)
asyncio.run(main())
- Get the
wildcard[0]
for the best match.
You will need this for every object, this library designed to be neat and clean returns, although it must be reparsed to the string first, that's why booru.resolve()
exist.
The documentation can be found https://sinkaroid.github.io/booru
This tool can be freely copied, modified, altered, distributed without any attribution whatsoever. However, if you feel like this tool deserves an attribution, mention it. It won't hurt anybody
Licence: WTF.