Reading view

Built a search engine for my 2+TB radio show archive: Unorganized NAS folders became a searchable, playable library with 6 Python scripts + SQLite

Built a search engine for my 2+TB radio show archive: Unorganized NAS folders became a searchable, playable library with 6 Python scripts + SQLite

https://preview.redd.it/9i9l7jo1ounh1.png?width=1199&format=png&auto=webp&s=4dbf7753f5690d15684338d3501879437df57f9d

https://preview.redd.it/pfur6it8ounh1.png?width=1340&format=png&auto=webp&s=3e93c845078edca9918a5fad219ae522a0b6c7cf

I have ~2TB of a daily radio show archived on my home NAS with thousands of episodes across messy nested folders with inconsistent filenames spanning 15+ years. Finding "that episode where they did the thing" meant remembering roughly what year it happened and digging.

So I built a pipeline that turns chaos into a searchable library:

How it works:

  1. Inventory walks the NAS tree, every audio file into a SQLite files table
  2. Rundown scrape pulls episode-by-episode text rundowns (fan-maintained episode guides exist for this show, decades deep) into a rundowns table
  3. Date extraction parses air dates out of messy filenames and writes them back
  4. Index FTS5 index over all rundown text
  5. App one search page: type a phrase from the show, get the episode, joined to the actual audio file, hit play

So the search experience is: type "the segment where they argue about the cake" → the episode date → the rundown snippet → the audio starts playing. The join key is the air date: rundown date matches filename date matches audio file.

SQLite FTS5 is genuinely underrated for personal-scale search.

submitted by /u/Scallywag933 to r/selfhosted
[link] [comments]
  •  
❌