ursula
Ursula is a home cinema, a set-top box named after Ursula K. Le Guin, a "novelist [who] worked mainly in the genres of fantasy and science fiction, and authored children's books, short stories, poetry, and essays. Her writing was first published in the 1960s and often depicted futuristic or imaginary alternative worlds in politics, the natural environment, gender, religion, sexuality, and ethnography." - Wikipedia
Hard times are coming when we will be wanting the voices of writers who can see alternatives to how we live now and can see through our fear-stricken society and its obsessive technologies to other ways of being, and even imagine some real grounds for hope. We will need writers who can remember freedom. Poets, visionaries—the realists of a larger reality.
-- Ursula Le Guin
Configuration
The machine is a Vero 4k+ for which I have analyzed the hardware specifications and performance. I also wrote a detailed SSHFS tutorial. It so far works fairly well.
I migrated metadata from the previous Kodi install on marcos using this backup procedure, which took an extra 1189.32MB of disk space:
git status --porcelain | sed 's/^...//;s/^"//;s/"$//' | while read path; do du -bs "$path" ; done | sort -n | awk ' {tot = tot+$1; print } END{ printf("%.2fMB\n",tot/(1024*1024)) }'
I contributed that trick back to Stack Overflow. I'm not sure I want to commit those into git, as they do take up quite a bit of space (around 1GB). The artists images are duplicated a lot as well, although git-annex would take care of deduplicating that.
Future work
Possible improvements include having local storage, maybe with an external HDD or a NAS, see marcos for a discussion on those. I have a price watch on IronWolf drives, see this pcpartspicker item, that could be combined with this enclosure I already have good experience with or that one that looks a bit sleeker.
I'm also looking at a way to trigger library rescans automatically: Kodi supports doing that on restart, but that's somewhat limited. There's a plugin to schedule those refresh based on a timer, and another to watch the directory, see this guide for details.
Ideally, rescans would be triggered from the outside, for example on transmission or git-annex operations. This would involve the VideoLibrary.Scan API endpoint.