# VeeDB Documentation
Welcome to VeeDB’s documentation!
VeeDB is an unofficial asynchronous Python wrapper for the VNDB.org API v2 (Kana). “Vee” represents the v-sign pose and starting letter for VNDB, while “DB” stands for database.
This library provides a convenient way to interact with the VNDB API, allowing you to query visual novel data, manage user lists, and more, all asynchronously with full type safety.
Key Features
Asynchronous API: Built with aiohttp for high-performance async operations
Type Safety: Full type annotations and dataclass parsing with dacite
Filter Validation: Comprehensive filter validation system with schema caching
Complete Coverage: Support for all major VNDB API v2 endpoints
List Management: Full CRUD operations for user and release lists
Authentication: Support for API token authentication
Testing Support: Optional sandbox mode for development
Quick Start
import asyncio
from veedb import VNDB, QueryRequest
async def main():
async with VNDB() as client:
# Get database stats
stats = await client.get_stats()
print(f"Total VNs: {stats.vn}")
# Query visual novels
query = QueryRequest(
filters=["title", "~", "Fate"],
fields="id, title, rating"
)
response = await client.vn.query(query)
for vn in response.results:
print(f"{vn.title}: {vn.rating}")
asyncio.run(main())
Development:
Indices and tables
- Search Page
- members:
- show-inheritance:
- class veedb.SchemaCache(cache_dir: str = '.veedb_cache', cache_filename: str = 'schema.json', ttl_hours: float = 24.0, local_schema_path: str | None = None)[source]
Bases:
objectManages the download, caching, and retrieval of the VNDB API schema.
- __init__(cache_dir: str = '.veedb_cache', cache_filename: str = 'schema.json', ttl_hours: float = 24.0, local_schema_path: str | None = None)[source]
- is_cached() bool[source]
Check if the schema file exists in the cache or if a local path is provided.
- get_cache_age() float[source]
Get the age of the cache file in seconds. Returns 0 if using local_schema_path.
- is_cache_expired() bool[source]
Check if the cached schema has expired. Local schema path is never considered expired by this check.
- save_schema(schema_data: Dict[str, Any], to_local_path: bool = False)[source]
Save the schema data to the cache file or the specified local_schema_path.
- load_schema() Dict[str, Any] | None[source]
Load the schema data from the local_schema_path (if provided) or the cache file.
Exception Classes
- exception veedb.exceptions.VNDBAPIError(message: str, status_code: int = None)[source]
Bases:
ExceptionBase class for VNDB API errors.
- exception veedb.exceptions.InvalidRequestError(message: str = 'Invalid request body or query.', status_code: int = 400)[source]
Bases:
VNDBAPIErrorHTTP 400 - Invalid request body or query.
- exception veedb.exceptions.AuthenticationError(message: str = 'Invalid authentication token or token missing for protected endpoint.', status_code: int = 401)[source]
Bases:
VNDBAPIErrorHTTP 401 - Invalid authentication token.
- exception veedb.exceptions.NotFoundError(message: str = 'Resource not found or invalid API path.', status_code: int = 404)[source]
Bases:
VNDBAPIErrorHTTP 404 - Invalid API path or HTTP method, or resource not found.
- exception veedb.exceptions.RateLimitError(message: str = 'API request limit reached. Please wait before trying again.', status_code: int = 429)[source]
Bases:
VNDBAPIErrorHTTP 429 - Throttled.
- exception veedb.exceptions.ServerError(message: str = 'An unexpected server error occurred.', status_code: int = 500)[source]
Bases:
VNDBAPIErrorHTTP 500, 502, etc. - Server error.
Type Definitions
Common Types
- class veedb.apitypes.common.ImageCommon(id: str | None, url: str | None, dims: List[int] | None, sexual: float | None, violence: float | None, votecount: int | None)[source]
Bases:
object
- class veedb.apitypes.common.Extlink(url: str, label: str, name: str, id: str | int | NoneType = None)[source]
Bases:
object- url: str
- label: str
- name: str
- class veedb.apitypes.common.QueryRequest(filters: list | str | None = <factory>, fields: str = 'id', sort: str = 'id', reverse: bool = False, results: int = 10, page: int = 1, user: str | None = None, count: bool = False, compact_filters: bool = False, normalized_filters: bool = False)[source]
Bases:
objectCommon structure for database querying POST requests.
- fields: str = 'id'
- sort: str = 'id'
- reverse: bool = False
- results: int = 10
- page: int = 1
- count: bool = False
- compact_filters: bool = False
- normalized_filters: bool = False
Request Types
- class veedb.apitypes.requests.UlistUpdatePayload(vote: int | None = None, notes: str | None = None, started: str | None = None, finished: str | None = None, labels: List[int] | None = None, labels_set: List[int] | None = None, labels_unset: List[int] | None = None)[source]
Bases:
object
Entity Types
Visual Novel Entities
- class veedb.apitypes.entities.vn.VNTitle(lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'], title: str, latin: str | None = None, official: bool = False, main: bool = False)[source]
Bases:
object- lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']
- title: str
- official: bool = False
- main: bool = False
- __init__(lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'], title: str, latin: str | None = None, official: bool = False, main: bool = False) None
- class veedb.apitypes.entities.vn.VNImageInfo(id: str | None = None, url: str | None = None, dims: List[int] | None = None, sexual: float | None = None, violence: float | None = None, votecount: int | None = None, thumbnail: str | None = None, release: ForwardRef('VNScreenshotRelease') | None = None)[source]
Bases:
object- release: VNScreenshotRelease | None = None
- class veedb.apitypes.entities.vn.VNScreenshotRelease(id: str, title: Optional[str] = None, alttitle: Optional[str] = None, languages: List[veedb.apitypes.entities.release.ReleaseLanguageSpecific] = <factory>, platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']] = <factory>, media: List[veedb.apitypes.entities.release.ReleaseMedia] = <factory>, vns: List[veedb.apitypes.entities.release.ReleaseVNLink] = <factory>, producers: List[veedb.apitypes.entities.release.ReleaseProducerLink] = <factory>, images: List[veedb.apitypes.entities.release.ReleaseImage] = <factory>, released: Optional[str] = None, minage: Optional[int] = None, patch: bool = False, freeware: bool = False, uncensored: Optional[bool] = None, official: bool = False, has_ero: bool = False, resolution: Union[Literal['non-standard'], Tuple[int, int], NoneType] = None, engine: Optional[str] = None, voiced: Optional[Literal[1, 2, 3, 4]] = None, notes: Optional[str] = None, gtin: Optional[str] = None, catalog: Optional[str] = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>)[source]
Bases:
Release- __init__(id: str, title: str | None = None, alttitle: str | None = None, languages: List[ReleaseLanguageSpecific] = <factory>, platforms: Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, media: List[ReleaseMedia] = <factory>, vns: List[ReleaseVNLink] = <factory>, producers: List[ReleaseProducerLink] = <factory>, images: List[ReleaseImage] = <factory>, released: str | None = None, minage: int | None = None, patch: bool = False, freeware: bool = False, uncensored: bool | None = None, official: bool = False, has_ero: bool = False, resolution: Tuple[int, int] | None=None, engine: str | None = None, voiced: Literal[1, 2, 3, 4] | None=None, notes: str | None = None, gtin: str | None = None, catalog: str | None = None, extlinks: List[Extlink] = <factory>) None
- class veedb.apitypes.entities.vn.VNTagLink(id: str, name: str | None = None, aliases: List[str] = <factory>, description: str | None = None, category: Optional[Literal['cont', 'ero', 'tech']]=None, searchable: bool | None = None, applicable: bool | None = None, vn_count: int | None = None, rating: float = 0.0, spoiler: int = 0, lie: bool = False)[source]
Bases:
Tag- rating: float = 0.0
- spoiler: int = 0
- lie: bool = False
- __init__(id: str, name: str | None = None, aliases: List[str] = <factory>, description: str | None = None, category: Literal['cont', 'ero', 'tech'] | None=None, searchable: bool | None = None, applicable: bool | None = None, vn_count: int | None = None, rating: float = 0.0, spoiler: int = 0, lie: bool = False) None
- class veedb.apitypes.entities.vn.VNDeveloper(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, lang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, type: Optional[Literal['co', 'in', 'ng']]=None, description: str | None = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>)[source]
Bases:
Producer- __init__(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, type: Literal['co', 'in', 'ng'] | None=None, description: str | None = None, extlinks: List[Extlink] = <factory>) None
- class veedb.apitypes.entities.vn.VNEdition(eid: int, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None, name: str | None = None, official: bool | None = None)[source]
Bases:
object- eid: int
- lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None
- __init__(eid: int, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None, name: str | None = None, official: bool | None = None) None
- class veedb.apitypes.entities.vn.VNStaffLink(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, gender: Optional[Literal['m', 'f']]=None, description: str | None = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>, aliases: List[veedb.apitypes.entities.staff.StaffAlias] = <factory>, role: Literal['scenario', 'director', 'chardesign', 'art', 'music', 'songs', 'translator', 'editor', 'qa', 'staff']='', note: str | None = None, eid: int | None = None)[source]
Bases:
Staff- role: Literal['scenario', 'director', 'chardesign', 'art', 'music', 'songs', 'translator', 'editor', 'qa', 'staff'] = ''
- __init__(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, gender: Literal['m', 'f'] | None=None, description: str | None = None, extlinks: List[Extlink] = <factory>, aliases: List[StaffAlias] = <factory>, role: Literal['scenario', 'director', 'chardesign', 'art', 'music', 'songs', 'translator', 'editor', 'qa', 'staff']='', note: str | None = None, eid: int | None = None) None
- class veedb.apitypes.entities.vn.VNVoiceActor(note: str | None = None, staff: ForwardRef('VNVAStaff') | None = None, character: ForwardRef('VNVACharacter') | None = None)[source]
Bases:
object- character: VNVACharacter | None = None
- class veedb.apitypes.entities.vn.VNVAStaff(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, gender: Optional[Literal['m', 'f']]=None, description: str | None = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>, aliases: List[veedb.apitypes.entities.staff.StaffAlias] = <factory>)[source]
Bases:
Staff- __init__(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, gender: Literal['m', 'f'] | None=None, description: str | None = None, extlinks: List[Extlink] = <factory>, aliases: List[StaffAlias] = <factory>) None
- class veedb.apitypes.entities.vn.VNVACharacter(id: str, name: Optional[str] = None, original: Optional[str] = None, aliases: List[str] = <factory>, description: Optional[str] = None, image: Optional[veedb.apitypes.entities.character.CharacterImageInfo] = None, blood_type: Optional[Literal['a', 'b', 'ab', 'o']] = None, height: Optional[int] = None, weight: Optional[int] = None, bust: Optional[int] = None, waist: Optional[int] = None, hips: Optional[int] = None, cup: Optional[str] = None, age: Optional[int] = None, birthday: Optional[Tuple[int, int]] = None, sex: Optional[Tuple[Optional[Literal['m', 'f', 'b', 'n']], Optional[Literal['m', 'f', 'b', 'n']]]] = None, gender: Optional[Tuple[Optional[Literal['m', 'f', 'o', 'a']], Optional[Literal['m', 'f', 'o', 'a']]]] = None, vns: List[veedb.apitypes.entities.character.CharacterVNLink] = <factory>, traits: List[veedb.apitypes.entities.character.CharacterTraitLink] = <factory>)[source]
Bases:
Character- __init__(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, description: str | None = None, image: CharacterImageInfo | None = None, blood_type: Literal['a', 'b', 'ab', 'o'] | None=None, height: int | None = None, weight: int | None = None, bust: int | None = None, waist: int | None = None, hips: int | None = None, cup: str | None = None, age: int | None = None, birthday: Tuple[int, int] | None=None, sex: Literal['m', 'f', 'b', 'n'] | None, ~typing.Literal['m', 'f', 'b', 'n'] | None] | None=None, gender: Literal['m', 'f', 'o', 'a'] | None, ~typing.Literal['m', 'f', 'o', 'a'] | None] | None=None, vns: List[CharacterVNLink] = <factory>, traits: List[CharacterTraitLink] = <factory>) None
- class veedb.apitypes.entities.vn.VN(id: str, title: str | None = None, alttitle: str | None = None, titles: List[veedb.apitypes.entities.vn.VNTitle] = <factory>, aliases: List[str] = <factory>, olang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, devstatus: Optional[Literal[0, 1, 2]]=None, released: str | None = None, languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=<factory>, platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, image: veedb.apitypes.entities.vn.VNImageInfo | None = None, length: int | None = None, length_minutes: int | None = None, length_votes: int | None = None, description: str | None = None, average: float | None = None, rating: float | None = None, votecount: int | None = None, screenshots: List[veedb.apitypes.entities.vn.VNImageInfo] = <factory>, relations: List[ForwardRef('VNRelation')] = <factory>, tags: List[veedb.apitypes.entities.vn.VNTagLink] = <factory>, developers: List[veedb.apitypes.entities.vn.VNDeveloper] = <factory>, editions: List[veedb.apitypes.entities.vn.VNEdition] = <factory>, staff: List[veedb.apitypes.entities.vn.VNStaffLink] = <factory>, va: List[veedb.apitypes.entities.vn.VNVoiceActor] = <factory>, extlinks: List[veedb.apitypes.common.Extlink] = <factory>)[source]
Bases:
object- id: str
- olang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None
- languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]
- platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]
- image: VNImageInfo | None = None
- screenshots: List[VNImageInfo]
- relations: List[VNRelation]
- developers: List[VNDeveloper]
- staff: List[VNStaffLink]
- __init__(id: str, title: str | None = None, alttitle: str | None = None, titles: List[VNTitle] = <factory>, aliases: List[str] = <factory>, olang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, devstatus: Literal[0, 1, 2] | None=None, released: str | None = None, languages: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=<factory>, platforms: Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, image: VNImageInfo | None = None, length: int | None = None, length_minutes: int | None = None, length_votes: int | None = None, description: str | None = None, average: float | None = None, rating: float | None = None, votecount: int | None = None, screenshots: List[VNImageInfo] = <factory>, relations: List[VNRelation] = <factory>, tags: List[VNTagLink] = <factory>, developers: List[VNDeveloper] = <factory>, editions: List[VNEdition] = <factory>, staff: List[VNStaffLink] = <factory>, va: List[VNVoiceActor] = <factory>, extlinks: List[Extlink] = <factory>) None
- va: List[VNVoiceActor]
- extlinks: List[Extlink]
- class veedb.apitypes.entities.vn.VNRelation(id: str, title: str | None = None, alttitle: str | None = None, titles: List[veedb.apitypes.entities.vn.VNTitle] = <factory>, aliases: List[str] = <factory>, olang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, devstatus: Optional[Literal[0, 1, 2]]=None, released: str | None = None, languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=<factory>, platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, image: veedb.apitypes.entities.vn.VNImageInfo | None = None, length: int | None = None, length_minutes: int | None = None, length_votes: int | None = None, description: str | None = None, average: float | None = None, rating: float | None = None, votecount: int | None = None, screenshots: List[veedb.apitypes.entities.vn.VNImageInfo] = <factory>, relations: List[ForwardRef('VNRelation')] = <factory>, tags: List[veedb.apitypes.entities.vn.VNTagLink] = <factory>, developers: List[veedb.apitypes.entities.vn.VNDeveloper] = <factory>, editions: List[veedb.apitypes.entities.vn.VNEdition] = <factory>, staff: List[veedb.apitypes.entities.vn.VNStaffLink] = <factory>, va: List[veedb.apitypes.entities.vn.VNVoiceActor] = <factory>, extlinks: List[veedb.apitypes.common.Extlink] = <factory>, relation: str = '', relation_official: bool = False)[source]
Bases:
VN- __init__(id: str, title: str | None = None, alttitle: str | None = None, titles: List[VNTitle] = <factory>, aliases: List[str] = <factory>, olang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, devstatus: Literal[0, 1, 2] | None=None, released: str | None = None, languages: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=<factory>, platforms: Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, image: VNImageInfo | None = None, length: int | None = None, length_minutes: int | None = None, length_votes: int | None = None, description: str | None = None, average: float | None = None, rating: float | None = None, votecount: int | None = None, screenshots: List[VNImageInfo] = <factory>, relations: List[VNRelation] = <factory>, tags: List[VNTagLink] = <factory>, developers: List[VNDeveloper] = <factory>, editions: List[VNEdition] = <factory>, staff: List[VNStaffLink] = <factory>, va: List[VNVoiceActor] = <factory>, extlinks: List[Extlink] = <factory>, relation: str = '', relation_official: bool = False) None
- relation: str = ''
- relation_official: bool = False
Character Entities
- class veedb.apitypes.entities.character.CharacterImageInfo(id: str | None, url: str | None, dims: List[int] | None, sexual: float | None, violence: float | None, votecount: int | None)[source]
Bases:
ImageCommon
- class veedb.apitypes.entities.character.CharacterVNLink(id: str, spoiler: int | None = None, role: Literal['main', 'primary', 'side', 'appears'] | None = None, release: dict | None = None, title: str | None = None)[source]
Bases:
object- id: str
- class veedb.apitypes.entities.character.CharacterTraitLink(id: str, spoiler: int | None = None, lie: bool | None = None, name: str | None = None, group_id: str | None = None, group_name: str | None = None)[source]
Bases:
object- id: str
- class veedb.apitypes.entities.character.Character(id: str, name: Optional[str] = None, original: Optional[str] = None, aliases: List[str] = <factory>, description: Optional[str] = None, image: Optional[veedb.apitypes.entities.character.CharacterImageInfo] = None, blood_type: Optional[Literal['a', 'b', 'ab', 'o']] = None, height: Optional[int] = None, weight: Optional[int] = None, bust: Optional[int] = None, waist: Optional[int] = None, hips: Optional[int] = None, cup: Optional[str] = None, age: Optional[int] = None, birthday: Optional[Tuple[int, int]] = None, sex: Optional[Tuple[Optional[Literal['m', 'f', 'b', 'n']], Optional[Literal['m', 'f', 'b', 'n']]]] = None, gender: Optional[Tuple[Optional[Literal['m', 'f', 'o', 'a']], Optional[Literal['m', 'f', 'o', 'a']]]] = None, vns: List[veedb.apitypes.entities.character.CharacterVNLink] = <factory>, traits: List[veedb.apitypes.entities.character.CharacterTraitLink] = <factory>)[source]
Bases:
object- id: str
- image: CharacterImageInfo | None = None
- vns: List[CharacterVNLink]
- traits: List[CharacterTraitLink]
- __init__(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, description: str | None = None, image: CharacterImageInfo | None = None, blood_type: Literal['a', 'b', 'ab', 'o'] | None=None, height: int | None = None, weight: int | None = None, bust: int | None = None, waist: int | None = None, hips: int | None = None, cup: str | None = None, age: int | None = None, birthday: Tuple[int, int] | None=None, sex: Literal['m', 'f', 'b', 'n'] | None, ~typing.Literal['m', 'f', 'b', 'n'] | None] | None=None, gender: Literal['m', 'f', 'o', 'a'] | None, ~typing.Literal['m', 'f', 'o', 'a'] | None] | None=None, vns: List[CharacterVNLink] = <factory>, traits: List[CharacterTraitLink] = <factory>) None
Producer Entities
- class veedb.apitypes.entities.producer.Producer(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, lang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, type: Optional[Literal['co', 'in', 'ng']]=None, description: str | None = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>)[source]
Bases:
object- id: str
- lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None
- extlinks: List[Extlink]
- __init__(id: str, name: str | None = None, original: str | None = None, aliases: List[str] = <factory>, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, type: Literal['co', 'in', 'ng'] | None=None, description: str | None = None, extlinks: List[Extlink] = <factory>) None
Release Entities
- class veedb.apitypes.entities.release.ReleaseLanguageSpecific(lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'], title: str | None = None, latin: str | None = None, mtl: bool = False, main: bool = False)[source]
Bases:
object- lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']
- mtl: bool = False
- main: bool = False
- __init__(lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'], title: str | None = None, latin: str | None = None, mtl: bool = False, main: bool = False) None
- class veedb.apitypes.entities.release.ReleaseMedia(medium: str, qty: int | None = None)[source]
Bases:
object- medium: str
- class veedb.apitypes.entities.release.ReleaseVNLink(id: str, rtype: Literal['trial', 'partial', 'complete'] | None = None, title: str | None = None, original_language: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None)[source]
Bases:
object- id: str
- original_language: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None
- __init__(id: str, rtype: Literal['trial', 'partial', 'complete'] | None = None, title: str | None = None, original_language: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None) None
- class veedb.apitypes.entities.release.ReleaseProducerLink(id: str, developer: bool | None = None, publisher: bool | None = None, name: str | None = None, original_name: str | None = None, type: Literal['co', 'in', 'ng'] | None = None)[source]
Bases:
object- id: str
- class veedb.apitypes.entities.release.ReleaseImage(id: str | None, url: str | None, dims: List[int] | None, sexual: float | None, violence: float | None, votecount: int | None, type: Literal['pkgfront', 'pkgback', 'pkgcontent', 'pkgside', 'pkgmed', 'dig'], vn: str | None = None, languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']] | None = None, photo: bool = False, thumbnail: str | None = None, thumbnail_dims: Tuple[int, int] | None = None)[source]
Bases:
ImageCommon- type: Literal['pkgfront', 'pkgback', 'pkgcontent', 'pkgside', 'pkgmed', 'dig']
- languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']] | None = None
- photo: bool = False
- __init__(id: str | None, url: str | None, dims: List[int] | None, sexual: float | None, violence: float | None, votecount: int | None, type: Literal['pkgfront', 'pkgback', 'pkgcontent', 'pkgside', 'pkgmed', 'dig'], vn: str | None = None, languages: List[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']] | None = None, photo: bool = False, thumbnail: str | None = None, thumbnail_dims: Tuple[int, int] | None = None) None
- class veedb.apitypes.entities.release.Release(id: str, title: Optional[str] = None, alttitle: Optional[str] = None, languages: List[veedb.apitypes.entities.release.ReleaseLanguageSpecific] = <factory>, platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']] = <factory>, media: List[veedb.apitypes.entities.release.ReleaseMedia] = <factory>, vns: List[veedb.apitypes.entities.release.ReleaseVNLink] = <factory>, producers: List[veedb.apitypes.entities.release.ReleaseProducerLink] = <factory>, images: List[veedb.apitypes.entities.release.ReleaseImage] = <factory>, released: Optional[str] = None, minage: Optional[int] = None, patch: bool = False, freeware: bool = False, uncensored: Optional[bool] = None, official: bool = False, has_ero: bool = False, resolution: Union[Literal['non-standard'], Tuple[int, int], NoneType] = None, engine: Optional[str] = None, voiced: Optional[Literal[1, 2, 3, 4]] = None, notes: Optional[str] = None, gtin: Optional[str] = None, catalog: Optional[str] = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>)[source]
Bases:
object- id: str
- languages: List[ReleaseLanguageSpecific]
- platforms: List[Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]
- media: List[ReleaseMedia]
- vns: List[ReleaseVNLink]
- producers: List[ReleaseProducerLink]
- images: List[ReleaseImage]
- patch: bool = False
- freeware: bool = False
- official: bool = False
- has_ero: bool = False
- extlinks: List[Extlink]
- __init__(id: str, title: str | None = None, alttitle: str | None = None, languages: List[ReleaseLanguageSpecific] = <factory>, platforms: Literal['win', 'lin', 'mac', 'web', 'tdo', 'ios', 'and', 'bdp', 'dos', 'dvd', 'drc', 'nes', 'sfc', 'fm7', 'fm8', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'swi', 'sw2', 'wii', 'wiu', 'n3d', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psv', 'smd', 'scd', 'sat', 'vnd', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs', 'mob', 'oth']]=<factory>, media: List[ReleaseMedia] = <factory>, vns: List[ReleaseVNLink] = <factory>, producers: List[ReleaseProducerLink] = <factory>, images: List[ReleaseImage] = <factory>, released: str | None = None, minage: int | None = None, patch: bool = False, freeware: bool = False, uncensored: bool | None = None, official: bool = False, has_ero: bool = False, resolution: Tuple[int, int] | None=None, engine: str | None = None, voiced: Literal[1, 2, 3, 4] | None=None, notes: str | None = None, gtin: str | None = None, catalog: str | None = None, extlinks: List[Extlink] = <factory>) None
Staff Entities
- class veedb.apitypes.entities.staff.StaffAlias(aid: int, name: str | None = None, ismain: bool | None = None, latin: str | None = None)[source]
Bases:
object- aid: int
- class veedb.apitypes.entities.staff.Staff(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Optional[Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi']]=None, gender: Optional[Literal['m', 'f']]=None, description: str | None = None, extlinks: List[veedb.apitypes.common.Extlink] = <factory>, aliases: List[veedb.apitypes.entities.staff.StaffAlias] = <factory>)[source]
Bases:
object- id: str
- lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None = None
- extlinks: List[Extlink]
- aliases: List[StaffAlias]
- __init__(id: str, aid: int | None = None, ismain: bool | None = None, name: str | None = None, original: str | None = None, lang: Literal['ar', 'eu', 'be', 'bg', 'ca', 'ck', 'zh', 'zh-Hans', 'zh-Hant', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'fi', 'fr', 'gl', 'de', 'el', 'he', 'hi', 'hu', 'ga', 'id', 'it', 'iu', 'ja', 'kk', 'ko', 'la', 'lv', 'lt', 'mk', 'ms', 'ne', 'no', 'fa', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'ta', 'th', 'tr', 'uk', 'ur', 'vi'] | None=None, gender: Literal['m', 'f'] | None=None, description: str | None = None, extlinks: List[Extlink] = <factory>, aliases: List[StaffAlias] = <factory>) None
Tag Entities
- class veedb.apitypes.entities.tag.Tag(id: str, name: str | None = None, aliases: List[str] = <factory>, description: str | None = None, category: Optional[Literal['cont', 'ero', 'tech']]=None, searchable: bool | None = None, applicable: bool | None = None, vn_count: int | None = None)[source]
Bases:
object- id: str
Trait Entities
- class veedb.apitypes.entities.trait.Trait(id: str, name: str | None = None, aliases: List[str] = <factory>, description: str | None = None, searchable: bool | None = None, applicable: bool | None = None, group_id: str | None = None, group_name: str | None = None, char_count: int | None = None)[source]
Bases:
object- id: str
Quote Entities
User List Entities
- class veedb.apitypes.entities.ulist.UlistLabelInfo(id: int, label: str)[source]
Bases:
object- id: int
- label: str
- class veedb.apitypes.entities.ulist.UlistReleaseInfo(id: str, list_status: Literal[0, 1, 2, 3, 4] | None = None, title: str | None = None)[source]
Bases:
object- id: str
- class veedb.apitypes.entities.ulist.UlistItem(id: str, added: int | None = None, voted: int | None = None, lastmod: int | None = None, vote: int | None = None, started: str | None = None, finished: str | None = None, notes: str | None = None, labels: List[veedb.apitypes.entities.ulist.UlistLabelInfo] = <factory>, vn: Optional[Dict[str, Any]]=<factory>, releases: List[veedb.apitypes.entities.ulist.UlistReleaseInfo] = <factory>)[source]
Bases:
object- id: str
- labels: List[UlistLabelInfo]
- releases: List[UlistReleaseInfo]
- __init__(id: str, added: int | None = None, voted: int | None = None, lastmod: int | None = None, vote: int | None = None, started: str | None = None, finished: str | None = None, notes: str | None = None, labels: List[UlistLabelInfo] = <factory>, vn: Dict[str, ~typing.Any] | None=<factory>, releases: List[UlistReleaseInfo] = <factory>) None
User Entities
- class veedb.apitypes.entities.user.User(id: str, username: str, lengthvotes: int | None = None, lengthvotes_sum: int | None = None)[source]
Bases:
objectRepresents a user object as returned by the GET /user endpoint.
- id: str
- username: str
- class veedb.apitypes.entities.user.AuthInfo(id: str, username: str, permissions: List[str] = <factory>)[source]
Bases:
objectRepresents the authentication information as returned by GET /authinfo.
- id: str
- username: str
- class veedb.apitypes.entities.user.UserStats(chars: int, producers: int, releases: int, staff: int, tags: int, traits: int, vn: int)[source]
Bases:
objectRepresents the database statistics as returned by GET /stats. Note: The API documentation calls this endpoint GET /stats, and the response fields are direct counts for various entities.
- chars: int
- producers: int
- releases: int
- staff: int
- tags: int
- traits: int
- vn: int