Build Character Map
tools.build_character_map
build_character_map.py
Generate character_map.json from one or more ElevenLabs project XHR JSONs.
Usage
python build_character_map.py
Update existing map with new project data (preserves manual edits):
python build_character_map.py
VOICE_NAME_TO_CHARACTER
module-attribute
VOICE_NAME_TO_CHARACTER = {'Adam 2.0': ('Adam', 'host'), 'Dez 2.0': ('Dez', 'main'), 'Rian': ('Rían', 'main'), 'Maya 2.0': ('Maya', 'main'), 'Ava': ('Ava', 'main'), 'Tina 2.0': ('Tina', 'host'), 'Stephen Red': ('Mr. Patterson', 'recurring'), 'Russel - Old Man Hoarse Voice': ('Frank', 'recurring'), 'Margaret Ellis': ('Margaret Ellis', 'recurring'), 'Karen Ellis': ('Karen Ellis', 'recurring'), 'Karen Speaking Voice': ('Karen Ellis', 'recurring'), 'Sarah Ellis Radio': ('Sarah Ellis', 'recurring'), 'Sarah 2.0 Speaking Voice': ('Sarah Ellis', 'recurring'), "Victor Morrison 'Stranger'": ('Victor Morrison', 'recurring'), 'Janet': ('Janet', 'guest'), 'Martha 2.0': ('Martha', 'guest'), 'Gerald 2.0': ('Gerald', 'guest'), 'Elena 2.0': ('Elena', 'recurring'), 'Collin': ('Collin', 'guest'), 'Brandon': ('Brandon', 'guest')}
load_project
extract_episode_tag
Derive episode tag from project name or filename.
Source code in tools/build_character_map.py
collect_voices
Collect all unique voices across project files. Returns { voice_id -> entry dict }
Source code in tools/build_character_map.py
build_character_map
Build the character_map structure. If existing is provided, preserve manual edits to character_name/type.