IMP: Infuse Metadata Proxy
To understand this, you need to understand Doctor Who (1963). It is a long running series, with the entire cast having changed many times over. The main character of The Doctor defines an “era”. The episodes were all multi-part, so a number of episodes comprise a complete story arc, referred to by wikipedia et al. as a “serial” or “story”. People had longer attention spans back then. DVDs are generally grouped 1 disc per serial, and a set of extras per serial.
I want to organize my Doctor Who Collection on disk as such:
Doctor Who (1963) D01 William Hartnell S01A01 An Unearthly Child (The Beginning) S01E01 An Unearthly Child (1).mkv S01E02 The Cave of Skulls (2).mkv ... S01A02 The Daleks (The Beginning) S01E05 The Dead Planet (1).mkv ... D02 Patrick Troughton S04A03 The Power of the Daleks (BD) S04E09 The Power of the Daleks (1).mkv ...
The “problems” here are that:
So I configured my ATV to go through a proxy (How to Set Up Charles Proxy with tvOS: A Step-by-Step Guide). Those instructions are ancient and won’t work today but they are close enough. I used proxyman and Apple Configurator 2. You also have to “supervise” your ATV in order to install the proxyman CA cert on the ATV, so you can intercept SSL traffic. (not for the faint of heart – you can brick your ATV)
Then I took the tvdb data and “split” it into 7 eras, setting the actor fields appropriately (differently) for each era and altering the series id to be unique per era. This actually took the most time – about a day to write and debug the tool against infuse. I set proxyman to return my split versions of series info instead of the tvdb single version. Now, on infuse I had 7 separate Doctor Who series (with main actor appended so they are differentiable), but this isn’t bad at all, especially in the list view, since each era really represents a different sub-series anyway.
Nearly perfect! There’s still not a good way to deal with extras without just using list view in the favorites browser. I haven’t properly evaluated different sources yet either. eg, some of the stories come in an original and updated versions (eg bw and colour). Shada is maybe the worst with multiple versions.
Proxyman was just for testing and figuring out the rules. In “production” it would be better to use something like proxy.py (GitHub - abhinavsingh/proxy.py: 💫 Ngrok FRP Alternative • ⚡ Fast • 🪶 Lightweight • 0️⃣ Dependency • 🔌 Pluggable • 😈 TLS interception • 🔒 DNS-over-HTTPS • 🔥 Poor Man's VPN • ⏪ Reverse & ⏩ Forward • 👮🏿 "Proxy Server" framework • 🌐 "Web Server" framework • ➵ ➶ ➷ ➠ "PubSub" framework • 👷 "Work" acceptor & executor framework) and have dynamic rules based on what exists in the filesystem, rather than the more static rules of proxyman. What is powerful is that it could read out the local metadata (attached, kodi style) and return that to infuse instead of tvdb data, thus a workaround for this lack of feature by infuse. Or read mp4 tags and return that as moviedb data.
Then I erased the whole setup. It’s easier just to go into the UI and set the series name for one of the mkv’s, then all the episodes for that Doctor (ie, the folder name 2 levels up) get recognized as Doctor Who. So only 7 manual UI changes are required. You lose the per-doctor-era views and you lose the per-era cast/actor corrections, but you gain not having to use a fragile supervised+proxy setup. It was fun to experiment but not going to be fun to maintain it.
In the end, I’ll either use a combination of infuse and infuse pro (with different settings for each), or MrMC and infuse pro. But firecore can address this by implementing very simple better local metadata handling!