[PR #2305] [MERGED] Add NFO metadata source #3693

Closed
opened 2026-04-25 00:16:41 +02:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/advplyr/audiobookshelf/pull/2305
Author: @mikiher
Created: 11/12/2023
Status: Merged
Merged: 11/26/2023
Merged by: @advplyr

Base: masterHead: nfo-metadata


📝 Commits (8)

  • d990e5b Add NFO metadata source
  • a4d4f1b Merge branch 'advplyr:master' into nfo-metadata
  • 781d4f5 Add test for parseNfoMetadata
  • 5e69b54 Reverse order of metadata precedence in UI, add translations
  • 36e00e8 Merge master
  • d958417 Parse NFO trim final parsed description
  • b4c14fc Parse NFO comma separated strings remove empty strings
  • 3d46833 Update parse nfo metadata test for description

📊 Changes

25 files changed (+367 additions, -26 deletions)

View changed files

📝 client/components/modals/libraries/EditModal.vue (+1 -1)
📝 client/components/modals/libraries/LibraryScannerSettings.vue (+27 -5)
📝 client/strings/cs.json (+3 -1)
📝 client/strings/da.json (+3 -1)
📝 client/strings/de.json (+3 -1)
📝 client/strings/en-us.json (+3 -1)
📝 client/strings/es.json (+3 -1)
📝 client/strings/fr.json (+3 -1)
📝 client/strings/gu.json (+3 -1)
📝 client/strings/hi.json (+3 -1)
📝 client/strings/hr.json (+3 -1)
📝 client/strings/it.json (+3 -1)
📝 client/strings/lt.json (+3 -1)
📝 client/strings/nl.json (+3 -1)
📝 client/strings/no.json (+3 -1)
📝 client/strings/pl.json (+3 -1)
📝 client/strings/ru.json (+3 -1)
📝 client/strings/sv.json (+3 -1)
📝 client/strings/zh-cn.json (+3 -1)
📝 server/objects/settings/LibrarySettings.js (+2 -2)

...and 5 more files

📄 Description

In many cases, audiobooks come with .nfo files. While there's no standard to this text format, most audiobook .nfo files follow some de-facto standards specifying metadata (e.g. "Title", "Author", "Read by"). In some cases the .nfo files have metadata attributes that are missing/wrong in the folder structure or the audio meta tags.

This adds NFO as an additional metadata source, parsing the .nfo files according to the de-facto standards.

I put the NFO default priority just above audio meta tags, which I find reasonable, but this could be of course changed if needed.

I also have unit test for the parser. If you approve PR #2300, I'll commit that as well.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/advplyr/audiobookshelf/pull/2305 **Author:** [@mikiher](https://github.com/mikiher) **Created:** 11/12/2023 **Status:** ✅ Merged **Merged:** 11/26/2023 **Merged by:** [@advplyr](https://github.com/advplyr) **Base:** `master` ← **Head:** `nfo-metadata` --- ### 📝 Commits (8) - [`d990e5b`](https://github.com/advplyr/audiobookshelf/commit/d990e5b9094e13408651204589bd8886e1a90a5b) Add NFO metadata source - [`a4d4f1b`](https://github.com/advplyr/audiobookshelf/commit/a4d4f1bc2e7bca246ce71ff20e31b29fa34f81ea) Merge branch 'advplyr:master' into nfo-metadata - [`781d4f5`](https://github.com/advplyr/audiobookshelf/commit/781d4f570f2617f28fa53a4fb0a05d77bc2fd494) Add test for parseNfoMetadata - [`5e69b54`](https://github.com/advplyr/audiobookshelf/commit/5e69b54eb0ee39f118221a077802b093ea190b30) Reverse order of metadata precedence in UI, add translations - [`36e00e8`](https://github.com/advplyr/audiobookshelf/commit/36e00e8d6a7b04f6194da5e73efa7ca717d373c4) Merge master - [`d958417`](https://github.com/advplyr/audiobookshelf/commit/d9584174ffb153d812cda70af530492253ec1c1c) Parse NFO trim final parsed description - [`b4c14fc`](https://github.com/advplyr/audiobookshelf/commit/b4c14fc78d032f896b5ffd9f0223b205c0510a43) Parse NFO comma separated strings remove empty strings - [`3d46833`](https://github.com/advplyr/audiobookshelf/commit/3d468339b38eef5dba72dd097f4d9eb4e9a99dd4) Update parse nfo metadata test for description ### 📊 Changes **25 files changed** (+367 additions, -26 deletions) <details> <summary>View changed files</summary> 📝 `client/components/modals/libraries/EditModal.vue` (+1 -1) 📝 `client/components/modals/libraries/LibraryScannerSettings.vue` (+27 -5) 📝 `client/strings/cs.json` (+3 -1) 📝 `client/strings/da.json` (+3 -1) 📝 `client/strings/de.json` (+3 -1) 📝 `client/strings/en-us.json` (+3 -1) 📝 `client/strings/es.json` (+3 -1) 📝 `client/strings/fr.json` (+3 -1) 📝 `client/strings/gu.json` (+3 -1) 📝 `client/strings/hi.json` (+3 -1) 📝 `client/strings/hr.json` (+3 -1) 📝 `client/strings/it.json` (+3 -1) 📝 `client/strings/lt.json` (+3 -1) 📝 `client/strings/nl.json` (+3 -1) 📝 `client/strings/no.json` (+3 -1) 📝 `client/strings/pl.json` (+3 -1) 📝 `client/strings/ru.json` (+3 -1) 📝 `client/strings/sv.json` (+3 -1) 📝 `client/strings/zh-cn.json` (+3 -1) 📝 `server/objects/settings/LibrarySettings.js` (+2 -2) _...and 5 more files_ </details> ### 📄 Description In many cases, audiobooks come with .nfo files. While there's no standard to this text format, most audiobook .nfo files follow some de-facto standards specifying metadata (e.g. "Title", "Author", "Read by"). In some cases the .nfo files have metadata attributes that are missing/wrong in the folder structure or the audio meta tags. This adds NFO as an additional metadata source, parsing the .nfo files according to the de-facto standards. I put the NFO default priority just above audio meta tags, which I find reasonable, but this could be of course changed if needed. I also have unit test for the parser. If you approve PR #2300, I'll commit that as well. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2026-04-25 00:16:41 +02:00
adam closed this issue 2026-04-25 00:16:41 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/audiobookshelf#3693