losslessbob.db 45
observations.db 3+view
fingerprints.db 2
🔑 Primary Key Foreign Key Indexed MASTER exported in master snapshot USER local only, never exported VIRTUAL FTS5 virtual table
45
Tables
1
Virtual FTS5
14
Groups
Core 5 tables
checksums
🔑idINTEGER
checksumTEXTNOT NULL
filenameTEXTNOT NULL
chk_typeTEXTf/s/m
lb_numberINTEGERNOT NULL
xrefINTEGER1=cross-ref
entries
🔑lb_numberINTEGER
date_strTEXT
locationTEXT
cdrTEXT
ratingTEXT
timingTEXT
descriptionTEXT
setlistTEXT
statusTEXTok/missing
scraped_atTIMESTAMP
taper_nameTEXT
source_chainTEXT
lb_categoryTEXTconcert/interview/…
source_typeTEXTSBD/AUD/FM/…
entry_files
🔑lb_numberINTEGER
🔑filenameTEXTcomposite PK
clean_nameTEXT
file_urlTEXT
downloadedINTEGER1=cached
entries_ftsVIRTUAL
contentFTS5→ entries
descriptionTEXT
setlistTEXT
locationTEXT
date_strTEXT
meta
🔑keyTEXT
valueTEXT
LB Status & Integrity 5 tables
lb_masterMASTER
🔑lb_numberINTEGER
lb_statusTEXTpublic/private/missing/nonexistent
has_webpageINTEGER
has_checksumsINTEGER
has_attachmentsINTEGER
first_seen_atTIMESTAMP
last_status_atTIMESTAMP
previous_statusTEXT
manual_overrideINTEGERpartial idx WHERE=1
manual_statusTEXT
manual_notesTEXT
manual_set_byTEXT
manual_set_atTIMESTAMP
needs_reviewINTEGERpartial idx WHERE=1
public_no_checksumsINTEGER
lb_status_history
🔑idINTEGER
lb_numberINTEGERNOT NULL
old_statusTEXT
new_statusTEXTNOT NULL
changed_atTIMESTAMP
trigger_eventTEXT
lb_missingMASTER
🔑lb_numberINTEGER
confirmed_dateTEXT
notesTEXT
lb_aliasMASTER
🔑alias_lbINTEGER
canonical_lbINTEGERNOT NULL
relationshipTEXTduplicate/supersedes/see_also
noteTEXT
created_atTIMESTAMP
lb_problemsMASTER
🔑idINTEGER
→◈lb_numberINTEGER→ lb_master
notesTEXTNOT NULL
addedTEXTISO date
User Collection 4 tables
my_collectionUSER
🔑idINTEGER
lb_numberINTEGERUNIQUE → entries
folder_nameTEXTNOT NULL
disk_pathTEXTNOT NULL
confirmed_atTIMESTAMP
notesTEXT
collection_metaUSER
🔑→lb_numberINTEGER→ my_collection CASCADE
personal_ratingINTEGER1–5
listen_countINTEGER
last_listenedTIMESTAMP
tagsTEXT
my_wishlistUSER
🔑idINTEGER
→◈lb_numberINTEGERUNIQUE → entries
added_atTIMESTAMP
priorityINTEGER1–5
notesTEXT
folder_lb_linkUSER
🔑folder_pathTEXTcomposite PK
🔑◈lb_numberINTEGERcomposite PK
linked_atTIMESTAMP
noteTEXT
Scraping & Crawling 5 tables
entry_changes
🔑idINTEGER
lb_numberINTEGERNOT NULL
fieldTEXTNOT NULL
old_valueTEXT
new_valueTEXT
changed_atTIMESTAMP
scrape_sessionsMASTER
🔑idINTEGER
started_atTIMESTAMP
finished_atTIMESTAMP
scopeTEXTfull/incremental/range/…
start_urlTEXT
pages_fetchedINTEGER
pages_304INTEGER
pages_skippedINTEGER
pages_failedINTEGER
files_fetchedINTEGER
statusTEXTrunning/done/stopped/failed
notesTEXT
site_inventoryMASTER
🔑urlTEXT
relative_pathTEXT
content_typeTEXT
discovered_atTIMESTAMP
discovered_byTEXT
statusTEXTpending/downloaded/not_found/…
last_fetched_atTIMESTAMP
last_checked_atTIMESTAMP
last_modifiedTEXT
body_sha256TEXT
size_bytesINTEGER
http_statusINTEGER
→◈session_idINTEGER→ scrape_sessions
bootleg_titlesMASTER
🔑idINTEGER
lb_numberINTEGERNOT NULL
titleTEXT
date_strTEXT
date_isoTEXT
yearINTEGER
locationTEXT
cd_countINTEGER
lbbcd_idINTEGERpartial idx NOT NULL
lbbcd_urlTEXT
scraped_atTIMESTAMP
bootleg_scrapesMASTER
🔑idINTEGER
source_urlTEXTNOT NULL
scraped_atTIMESTAMP
http_etagTEXT
http_last_modifiedTEXT
body_sha256TEXT
rows_totalINTEGER
rows_addedINTEGER
rows_changedINTEGER
rows_removedINTEGER
statusTEXTsuccess/no_change/failed
Shows & Setlists 4 tables
bobdylan_showsMASTER
🔑bobdylan_urlTEXT
date_strTEXT
venueTEXT
locationTEXT
notesTEXT
scraped_atTEXT
bobdylan_setlistMASTER
🔑→bobdylan_urlTEXT→ bobdylan_shows CASCADE
🔑positionINTEGERcomposite PK
track_nameTEXT
song_urlTEXT
setlistfm_showsMASTER
🔑setlistfm_idTEXT
date_strTEXT
tour_nameTEXT
venue_nameTEXT
cityTEXT
countryTEXT
infoTEXT
setlistfm_urlTEXT
setlistfm_setlistMASTER
🔑→setlistfm_idTEXT→ setlistfm_shows CASCADE
🔑positionINTEGERcomposite PK
set_indexINTEGER
set_nameTEXT
is_encoreINTEGER
set_positionINTEGER
track_nameTEXT
infoTEXT
is_coverINTEGER
cover_artistTEXT
is_tapeINTEGER
Geocoding & Performances 2 tables
location_geocodedMASTER
🔑location_textTEXTmatches entries.location
latREALWGS-84
lonREALWGS-84
sourceTEXTnominatim/manual/failed
confidenceTEXThigh/medium/low
display_nameTEXT
manual_overrideINTEGER1=never overwrite
noteTEXT
lb_numberTEXT
geocoded_atTIMESTAMP
dylan_performancesMASTER
🔑event_idTEXTYYYYMMDDNN
date_strTEXT
categoryTEXTHOME/NET/MCONCERT/GUEST/…
cityTEXT
stateTEXT
countryTEXT
venueTEXT
imported_atTIMESTAMP
TapeMatch Family Clustering 2 tables
recording_familiesMASTER
🔑lb_numberINTEGER
fam_idTEXTNOT NULL; deterministic
concert_dateTEXTNOT NULL
run_idTEXT
imported_atTIMESTAMP
tapematch_family_metaMASTER
🔑fam_idTEXT
concert_dateTEXTNOT NULL
labelTEXTFamily A / Family B …
label_overrideTEXTreserved curator field
byTEXTai / ai+lb
confREALmean pairwise corr
noteTEXT
member_countINTEGERNOT NULL
run_idTEXT
review_flagINTEGERDEFAULT 0
review_reasonTEXT
imported_atTIMESTAMP
Concert Ranker / Audio Quality 3 tables
quality_scansUSER
🔑scan_idINTEGERone row per scan run
started_atTIMESTAMP
config_jsonTEXTthresholds/weights snapshot
notesTEXT
quality_recording_metricsUSER
🔑→lb_numberINTEGER→ entries
🔑◈scan_idINTEGER→ quality_scans
source_classTEXTSBD/AUD/FM/UNKNOWN
metric_jsonTEXTNOT NULL; RAW aggregated metrics
completenessREALNULL at scan time
duration_secREAL
scored_atTIMESTAMP
quality_recording_scoresUSER
🔑→lb_numberINTEGER→ entries
🔑◈scan_idINTEGER
family_idINTEGERdense per-scan id
final_scoreREALNULL if vetoed
rank_in_familyINTEGER1=best transfer
vetoedINTEGER1=hard-disqualified
verdict_textTEXT
Curated Lists 2 tables
curated_listsMASTER
🔑idINTEGER
nameTEXTUNIQUE slug
labelTEXTdisplay name
sourceTEXT
created_atTIMESTAMP
curated_list_entriesMASTER
🔑idINTEGER
→◈list_idINTEGER→ curated_lists
lb_numberINTEGER
noteTEXT
added_atTIMESTAMP
Flat File Pipeline 2 tables
flat_file_releasesMASTER
🔑idINTEGER
detected_atTIMESTAMP
downloaded_atTIMESTAMP
applied_atTIMESTAMP
deferred_untilTIMESTAMP
source_page_urlTEXT
zip_urlTEXT
zip_filenameTEXT
last_lb_in_nameINTEGER
page_timestampTEXT
http_last_modifiedTEXT
zip_size_bytesINTEGER
zip_sha256TEXT
rows_addedINTEGER
rows_changedINTEGER
rows_removedINTEGER
new_lb_minINTEGER
new_lb_maxINTEGER
statusTEXTdetected/downloaded/applied/…
failure_reasonTEXT
flat_file_changelogMASTER
🔑idINTEGER
→◈release_idINTEGER→ flat_file_releases
lb_numberINTEGERNOT NULL
opTEXTadd/change/remove
checksumTEXTNOT NULL
filenameTEXTNOT NULL
chk_typeTEXTf/s/m
xrefINTEGER
old_filenameTEXTop=change only
old_xrefINTEGERop=change only
Torrents & Activity Logs 3 tables
torrents
🔑idINTEGER
lb_numberINTEGER
torrent_pathTEXT
source_folderTEXT
created_atTIMESTAMP
infohashTEXT
added_to_qbtINTEGER
added_to_qbt_atTIMESTAMP
qbt_infohash_confirmedINTEGER
last_seen_atTIMESTAMP
excluded_filesTEXTJSON list
rename_history
🔑idINTEGER
lb_numberINTEGER
old_pathTEXT
new_pathTEXT
renamed_atTIMESTAMP
sourceTEXTrename_tab/collection_tab/auto
notesTEXT
forum_posts
🔑idINTEGER
→◈lb_numberINTEGERNOT NULL → entries
subjectTEXT
topic_urlTEXT
board_idINTEGER
posted_atTEXTNOT NULL
Integrity Events 1 table
integrity_events
🔑idINTEGER
lb_numberINTEGER
disk_pathTEXT
event_typeTEXTmissing/content_changed/…
detailTEXT
occurred_atTIMESTAMP
acknowledgedINTEGER0=unread 1=dismissed
mount_idINTEGER→ collection_mounts
Social / Friend Collections 2 tables
friend_collectionsUSER
🔑idINTEGER
friend_nameTEXTUNIQUE
imported_atTIMESTAMP
updated_atTIMESTAMP
lb_countINTEGER
friend_collection_entriesUSER
🔑idINTEGER
friend_idINTEGER→ friend_collections CASCADE
lb_numberINTEGER
date_strTEXT
locationTEXT
lb_statusTEXT
Archive.org Uploads 1 table
archive_org_uploadsUSER
🔑idINTEGER
lb_numberINTEGERNOT NULL
identifierTEXTIA item identifier
folder_pathTEXT
files_totalINTEGER
files_uploadedINTEGER
statusTEXTpending/running/done/failed/stopped
started_atTIMESTAMP
finished_atTIMESTAMP
errorTEXT
Collection Management 4 tables
collection_mountsUSER
🔑idINTEGER
labelTEXTNOT NULL UNIQUE
root_pathTEXTNOT NULL
notesTEXT
created_atTIMESTAMP
collection_routesUSER
🔑yearINTEGER
→◈mount_idINTEGER→ collection_mounts ON DELETE RESTRICT
sub_pathTEXTsub-dir under mount root
collection_integrity_statusUSER
🔑lb_numberINTEGER
→◈mount_idINTEGER→ collection_mounts ON DELETE SET NULL
disk_pathTEXTNOT NULL
statusTEXTpass/content_issue/tag_issue/…
content_issuesINTEGER
tag_issuesINTEGER
missing_countINTEGER
total_filesINTEGER
checked_atTIMESTAMP
collection_integrity_scansUSER
🔑idINTEGER
→◈mount_idINTEGER→ collection_mounts CASCADE; NULL=whole
statusTEXTrunning/done/error/cancelled
started_atTIMESTAMP
finished_atTIMESTAMP
folders_checkedINTEGER
folders_passINTEGER
folders_content_issueINTEGER
folders_tag_issueINTEGER
folders_missingINTEGER
folders_no_lbdirINTEGER
errorTEXT
🔑 Primary Key Foreign Key Indexed VIEW SQL view
3
Tables
1
View
1
Index
TapeMatch Run Data path: tools/tapematch/observations.db
runs
🔑run_idTEXTYYYYMMDD_HHMMSS
concert_dateTEXTNOT NULL
locationTEXT
n_sources_dbINTEGERentries in losslessbob.db
n_sources_foundINTEGERfolders found on disk
n_sources_ranINTEGERincluded in run
n_familiesINTEGERdistinct families detected
config_jsonTEXTfull config.yaml as JSON
archive_dirTEXTpath to runs/RUN_ID/
run_atTEXTISO timestamp
duration_secREAL
sources
🔑idINTEGER
run_idTEXT→ runs
concert_dateTEXTNOT NULL
lb_numberINTEGER
folder_nameTEXT
family_idINTEGER
track_countINTEGER
total_dur_secREAL
perf_dur_secREAL
trim_head_secREAL
trim_tail_secREAL
hf_ceiling_hzREAL
noise_floor_dbREAL
dc_asymmetryREAL
nyquist_cappedINTEGER0/1
speed_ppmREAL
speed_kindTEXTaligned/staircase/splice/…
dominant_extTEXT.flac/.shn/.wav/…
lb_ratingTEXTfrom LB page
lb_timingTEXT
lb_source_textTEXTfull SOURCE/NOTE block
pairs
🔑idINTEGER
run_idTEXT→ runs
concert_dateTEXTNOT NULL
lb_aINTEGER
lb_bINTEGER
folder_aTEXT
folder_bTEXT
corrREALresidual cross-corr 0–1
tapematch_verdictTEXTsame_family/different_family
family_id_aINTEGER
family_id_bINTEGER
speed_ppm_a / _bREAL
speed_kind_a / _bTEXT
hf_ceiling_hz_a / _bREAL
noise_floor_db_a / _bREAL
dc_asymmetry_a / _bREAL
perf_dur_sec_a / _bREAL
track_count_a / _bINTEGER
dominant_ext_a / _bTEXT
lb_says_sameINTEGER1/0/NULL
lb_relation_textTEXT
human_judgmentTEXTconfirmed_same/different/uncertain/lb_wrong
human_notesTEXT
run_atTEXTcompound idx with date/lb_a/lb_b
latest_pairsVIEW
— all columns from pairs —
Deduplicates on
(concert_date, lb_a, lb_b)
keeping the most recent
row by run_at DESC, id DESC
🔑 Primary Key Foreign Key Indexed
2
Tables
1
Index
Acoustic Fingerprints path: data/fingerprints.db
audio_tracks
🔑idINTEGER
lb_numberINTEGERNOT NULL
file_pathTEXTNOT NULL UNIQUE
file_hashTEXT
duration_secsREAL
fingerprinted_atTIMESTAMP
n_hashesINTEGER
fingerprints
hashINTEGERNOT NULL; Wang/Shazam landmark
track_idINTEGERNOT NULL → audio_tracks
time_offsetREALNOT NULL; seconds