BaseItemProviders is never written #11
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
BaseItemProvidersholds 19 495 rows upstream and 0 here.Two sources, both available without a network call:
Alien (1979) [imdbid-tt0078748] - Directors Cut [...].mkvMusicBrainzAlbum,MusicBrainzArtist,MusicBrainzRecording, …jellyfin-core/src/rows.rsandjellyfin-db/src/items.rsalready read thetable. Without it, external links and anything a client keys on a provider id
are dead.
Found by scanning
/mnt/media(285 movies, 289 shows, 74 music artists —~13 000 media files on a CIFS mount) with both this server and upstream
Jellyfin at the pinned commit, remote metadata and image fetchers disabled on
upstream so both were reading files only. Upstream was given the same mount
path so
MD5(UTF-16LE(path))agrees and rows compare directly.Fixed in
d87b58f,7ae0714,03981b2andfaaea74.Three sources, none of them a network call: the bracketed attributes in a path,
a
.nfobeside the item, and the tags inside the file.Verified against the real library: 17051 rows, every one of them upstream's —
0 values disagreeing and 0 rows upstream does not also have (was 0 rows).
BaseItemProvidersWhat upstream still has that we do not, all of it accounted for:
AudioDbArtistMusicBrainzRecording, every one an mp3MusicBrainzTrackwhose value is in no tag of the fileThe mp3s are Picard's doing: it writes the recording id into the ID3
UFIDframe rather than a text frame, and ffprobe does not report
UFIDat all. Everyfile whose recording id is in a text tag — flac, m4a, ogg — has it. Filed
separately.
The 102 are stranger: the file carries no release-track id in any spelling, and
upstream stored one anyway. Nothing on disk says where it came from.
MetadataProvideris generated now, because the table stores a provider by nameand the name upstream stores is the enum's own spelling —
musicbrainzalbuminan NFO is
MusicBrainzAlbumin the table, and one upstream has no name for isstored as written.
Getting there took three rounds of review, and each found something the port had
wrong rather than merely missing:
every element, so
<actor><tmdbid>and even a<tmdbid>inside a commentwere read as the film's — and being later in the document, they won. It reads
the root's children now and skips past what each of them holds.
<id TMDB="…">and abare provider link after the document — a
.nfothat is nothing but an IMDbURL is a real thing and yielded nothing.
provider, so the file's tags are read before the
.nfoand lose to it. Ourshad them last. Latent today — no track has an NFO and no video's tags carry an
id — but wrong.
MusicBrainzRecordingcame from nowhere. It is upstream's second read ofthe file rather than its prober's, and it is 3050 of the 19511 rows.