Python VNDB API Bindings for Python 3.5+ using asyncio. (really I just scrape the website, because the tcp api doesn't even follow its own rules)
The build present on Github is a stable build only. For development builds please see https://git.vertinext.com/ccubed/Shosetsu
Search vndb.org for a term and return matching results from type.
:param stype: type to search for.
Type should be one of:
v - Visual Novels
r - Releases
p - Producers
s - Staff
c - Characters
g - Tags
i - traits
u - Users
:param term: string to search for
:return: Results. Result format depends on what you searched for. See the Parsing.py module for more specific documentation.
Exceptions:
aiohttp.HttpBadRequest - On 404s
VNDBOneResult - When you search for something but it instead redirects us to a direct content page
VNDBNoResults - When nothing was found for that search
VNDBBadStype - Raised when an incorrect search type is passed
Please see Parsing.py for information about return types for each search category.
If term is an ID will return that specific ID. If it's a string, it will return the details of the first search result for that term.
Returned Dictionary Has the following structure:
Please note, if it says list or dict, it means the python types.
Indentation indicates level. So English is ['Titles']['English']
'titles' - Contains all the titles found for the anime
'english' - English title of the novel
'alt' - Alternative title (Usually the Japanese one, but other languages exist)
'aliases' - A list of str that define the aliases as given in VNDB.
'img' - Link to the Image shown on VNDB for that Visual Novel (May be NSFW, I don't filter those)
'length' - Length given by VNDB
'developers' - A list containing the Developers of the VN.
'publishers' - A list containing the Publishers of the VN.
'tags' - Contains 3 lists of different tag categories
'content' - List of tags that have to do with the story's content as defined by VNDB. Ex: Edo Era
'technology' - List of tags that have to do with the VN's technology. Ex: Protagonist with a Face (Wew Lad, 21st century)
'erotic' - List of tags that have to do with the VN's sexual content. Ex: Tentacles
'releases' - A list of dictionaries. They have the following format.
'date' - Date VNDB lists for release
'ages' - Age group appropriate for as determined on VNDB
'platform' - Release Platform
'name' - The name for this particular Release
'id' - The id for this release, also doubles as the link if you append https://vndb.org/ to it
:param term: id or name to get details of.
:return dict: Dictionary with the parsed results of a novel
{
'titles': {
'english': 'Hakuouki Zuisouroku',
'alt': '薄桜鬼 随想録',
'aliases': ['Hakuoki Zuisouroku']
},
'length': None,
'publishers': ['Idea Factory Co., Ltd.', 'Aksys Games'],
'img':'https://s.vndb.org/cv/42/17942.jpg',
'tags': {
'content': ['Edo Era', 'Shinsengumi', 'Female Protagonist', 'Hero in Kimono', 'Samurai Hero', 'Cheerful Hero', 'Early Modern Period Earth', 'Bakumatsu'],
'technology': ['Otome Game', 'No Sexual Content', 'Protagonist With a Face'],
'erotic': None
},
'developers': ['Otomate', 'Design Factory Co., Ltd.'],
'releases': {
'english': [{'id': 'r30158',
'platform': 'PlayStation 3',
'ages': '17+', 'Date': '2014-05-06',
'name': 'Hakuoki: Stories of the Shinsengumi - Standard Edition'
}],
'japanese': [{'id': 'r3515',
'platform': 'PlayStation 2',
'ages': '12+',
'date': '2009-08-27',
'name': 'Hakuoki Zuisouroku - Limited Edition'}]
}
}