Storage
audia stores all data in a local SQLite database managed by SQLAlchemy.
Location
Default: ~/.audia/audia.db
Override with:
AUDIA_DATA_DIR=/path/to/your/data
The full directory structure:
~/.audia/
audia.db ← SQLite database
audio/ ← generated .mp3 files
uploads/ ← PDFs uploaded via the web UI
debug/ ← per-run text snapshots
<run_id>/
1_raw.txt
2_preprocessed.txt
3_curated.txt
Schema
papers
Stores academic papers (from ArXiv or uploaded manually).
Column |
Type |
Notes |
|---|---|---|
|
INTEGER PK |
Auto-increment |
|
VARCHAR(512) |
Document title |
|
TEXT |
JSON array of strings |
|
TEXT |
Abstract text |
|
VARCHAR(64) |
ArXiv ID (e.g. |
|
TEXT |
Local path to the PDF |
|
TEXT |
Remote URL |
|
DATETIME |
UTC timestamp |
audio_files
Generated audio files, optionally linked to a paper.
Column |
Type |
Notes |
|---|---|---|
|
INTEGER PK |
Auto-increment |
|
INTEGER FK |
→ |
|
TEXT |
File name |
|
TEXT |
Absolute path to |
|
VARCHAR |
|
|
VARCHAR |
Voice name used |
|
FLOAT |
Audio duration |
|
DATETIME |
UTC timestamp |
research_sessions
Stores ArXiv query sessions.
Column |
Type |
Notes |
|---|---|---|
|
INTEGER PK |
Auto-increment |
|
TEXT |
User search query |
|
DATETIME |
UTC timestamp |
user_settings
Key-value store for persisted configuration (LLM provider, TTS backend, etc.).
Column |
Type |
Notes |
|---|---|---|
|
VARCHAR PK |
Setting name |
|
TEXT |
Setting value |
Exploring the database
Use the bundled explore_db.py script for a full terminal dump:
python scripts/explore_db.py
python scripts/explore_db.py --db /custom/path/audia.db
The script prints table schema, foreign keys, row counts, and all cell values using only the Python standard library (no extra dependencies).