A command-line tool designed to tag your doujin voice library.
Project description
DVTAG
Command-line tagger for doujin voice libraries. Point it at a folder tree that contains DLSite work numbers (RJ/BJ/VJ) in folder names and it will fetch metadata, write tags, and optionally transcode wav files.
What it does
- Recursively finds directories whose names include
RJxxxxxx,BJxxxxxx, orVJxxxxxx(6 or 8 digits) and treats each as a release. - Scrapes metadata from DLSite and refines title/cover details via Chobit when possible.
- Writes tags for FLAC, M4A, and MP3 (album, date, circle, seiyu, genres, cover, track/disc numbers).
- Tries to strip numbering prefixes from track titles based on filename patterns.
- Optional: transcode
.wavto.flacor.mp3using ffmpeg, deleting the source wavs after success.
Requirements
- Python 3.9+
- ffmpeg on PATH (only needed when using transcoding flags)
- Network access to dlsite.com and chobit.cc
Installation
pip install dvtag # or: pipx install dvtag
pip install --upgrade dvtag # upgrade (pipx upgrade dvtag)
Quick start
- Ensure each release folder name contains a work number (e.g.,
RJ123456,rj123456 bonus,xxx_RJ01123456). - Run:
dvtag /path/to/your/library # tag in place
dvtag -w2f /path/to/your/library # tag + transcode wav -> flac
dvtag -w2m /path/to/your/library # tag + transcode wav -> mp3 (320k)
CLI reference
usage: dvtag [-h] [-v] [-w2f] [-w2m] dirpath
Doujin Voice Tagging Tool (tagging in place)
positional arguments:
dirpath a required directory path
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-w2f transcode all wav files to flac [LOSELESS]
-w2m transcode all wav files to mp3
How it works (and current quirks)
- Discovery: walks the given directory; once a folder with a work number is found, tagging happens inside it instead of recursing deeper.
- Metadata: pulls work name, circle, seiyu, genres, sale date, cover from DLSite; Chobit is queried for a potentially shorter title and a square thumbnail if available.
- Cover choice: currently prefers the Chobit square thumbnail, but some releases look better with the standard DLSite cover (usually landscape). A user-selectable preference is a known need.
- Genre order: genres are kept in the order returned by DLSite. The tag comparison logic may still rewrite files when the same genres appear in a different order; smarter equality is on the roadmap.
- Track titles: attempts to remove numeric prefixes from filenames when they follow common track-number patterns; otherwise uses the raw stem.
- Logging: minimal console logging; improving verbosity/structure is planned.
- Idempotency: tags are only written when they differ from existing tags, but the gaps above can still cause redundant writes.
Current limitations and ideas
- Caching: no cache; repeated runs on large libraries hit DLSite/Chobit every time, slowing execution and adding load. Add a local metadata cache with expiry.
- Genre/tag comparison: treat genre lists as sets (or configurable) to avoid unnecessary rewrites while preserving source order.
- Logging and observability: structured logs, progress, and clearer error handling.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dvtag-0.7.7.tar.gz
(9.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
dvtag-0.7.7-py3-none-any.whl
(10.9 kB
view details)
File details
Details for the file dvtag-0.7.7.tar.gz.
File metadata
- Download URL: dvtag-0.7.7.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bac9f0ffc5dd73316b6b2af101cf57e5e7da59b2adf2b67377eb8d9caab2b98
|
|
| MD5 |
441c0fcef06f5a94275d7933c907ff9a
|
|
| BLAKE2b-256 |
4d1b7240d4999775a43ead08742bc4c35a4fffeecbcbca8e919c148ab405b218
|
File details
Details for the file dvtag-0.7.7-py3-none-any.whl.
File metadata
- Download URL: dvtag-0.7.7-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cd65fb65109443f7a8f0d4c2ab3cf537eaa056823a52d48e82b220ed4ac8d58
|
|
| MD5 |
811b9132a06d85734790afb770f4ed15
|
|
| BLAKE2b-256 |
d2f83c776a37725a078c6aedc3d5e6d66b952c274e9f1c4c8fd4c2674a333a52
|