docs(media): how to file a below-threshold episode by hand
Six single-episode files stayed in the movie library when the threshold refused them; the hand path is the same executor on a hand-written plan and the same journal. The trap recorded here is the series year -- never inherit it from the title whose bonus folder an episode happens to be parked in.
This commit is contained in:
1 parent
bd4ee78811
commit
86f5903e74
2 files changed
+23
No files matched your search
@@ -42,6 +42,15 @@ public vhost `jelly.franksdank.cloud` behind the [[Anubis]] guard chain →
|
||||
Library folders point at `/data` paths; because the mount uses the same
|
||||
absolute path as on the host, library paths survive container recreation.
|
||||
|
||||
`Local metadata` — save metadata to media folders — cannot work against a `ro`
|
||||
mount, and it is enabled: every item update logs
|
||||
`System.IO.IOException: Read-only file system : '/data/Movies/<film>/movie.nfo'`.
|
||||
The exception lands in the sidecar saver, after the database row is written, so
|
||||
indexing proceeds anyway — a 2026-10-30 scan dropped stale records and added
|
||||
episodes while these lines filled the log. Expected noise, not a fault: if it
|
||||
ever needs silencing, turn the saver off under *Library → Metadata* rather than
|
||||
making `/data` writable.
|
||||
|
||||
## Ports & access
|
||||
|
||||
| Port | Proto | Purpose |
|
||||
|
||||
@@ -145,6 +145,14 @@ from the box-set folder. What it refuses it prints and leaves alone:
|
||||
|
||||
A sidecar that shares an episode's own name (`.srt`, `.nfo`) moves with it.
|
||||
|
||||
Below the threshold the mover prints and leaves, so a lone downloaded episode of
|
||||
a real show stays in the movie library on purpose — six did on 2026-10-30.
|
||||
Filing one by hand is the same executor on a hand-written plan and the same
|
||||
journal; the trap is the series year. Read it from the file's own name or the
|
||||
folder it owns, never from the title whose bonus folder it happens to be parked
|
||||
in — `The Cleveland Show S03E07` inside `Die Hard (1988)/extras/` is not a 1988
|
||||
show. A name whose marker is `Part 2` is a film and stays put.
|
||||
|
||||
## Laws
|
||||
|
||||
- **A moved file is a 404 in [[Plex]] until its section is rescanned.** The
|
||||
@@ -191,6 +199,12 @@ A sidecar that shares an episode's own name (`.srt`, `.nfo`) moves with it.
|
||||
header — the keys were innocent. Before believing a 401, prove the key against
|
||||
the server's own table: `select count(*) from ApiKeys where AccessToken = ?`
|
||||
on `jellyfin.db` opened `mode=ro&immutable=1`.
|
||||
- **A scan that must see a new folder has to be recursive.** `POST
|
||||
/Library/Refresh` is the incremental pass, and inotify does not cross a
|
||||
rootless podman bind, so folders created on the host stay invisible to it. The
|
||||
move is `POST /Items/{id}/Refresh?Recursive=true` (204) per library, the id
|
||||
from `GET /Library/VirtualFolders` — its field is `ItemId`, not `Id` — and
|
||||
that same record's `RefreshStatus` is the progress read.
|
||||
- **A file whose name carries no words is bonus material, not a folder.**
|
||||
`.Extra 1 ( 1H 27min multisub ).mkv` parses to `1`; a movie folder named `1`
|
||||
is not a movie. It becomes a review line telling a human to name the file.
|
||||
|
||||
Reference in new issue
Block a user