mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2025-08-04 10:14:36 +02:00
Metadata embed and m4b merge fixes and cleanup
This commit is contained in:
parent
3824154c15
commit
1118b8b782
5 changed files with 18 additions and 17 deletions
|
@ -62,7 +62,7 @@ class AbMergeManager {
|
|||
targetFilename,
|
||||
targetFilepath: Path.join(libraryItem.path, targetFilename),
|
||||
itemCachePath,
|
||||
toneMetadataObject: null
|
||||
toneJsonObject: null
|
||||
}
|
||||
const taskDescription = `Encoding audiobook "${libraryItem.media.metadata.title}" into a single m4b file.`
|
||||
task.setData('encode-m4b', 'Encoding M4b', taskDescription, taskData)
|
||||
|
@ -122,23 +122,18 @@ class AbMergeManager {
|
|||
|
||||
var toneJsonPath = null
|
||||
try {
|
||||
toneJsonPath = Path.join(itemCacheDir, 'metadata.json')
|
||||
await toneHelpers.writeToneMetadataJsonFile(libraryItem, libraryItem.media.chapters, toneJsonPath)
|
||||
toneJsonPath = Path.join(task.data.itemCachePath, 'metadata.json')
|
||||
await toneHelpers.writeToneMetadataJsonFile(libraryItem, libraryItem.media.chapters, toneJsonPath, 1)
|
||||
} catch (error) {
|
||||
Logger.error(`[AudioMetadataManager] Write metadata.json failed`, error)
|
||||
Logger.error(`[AbMergeManager] Write metadata.json failed`, error)
|
||||
toneJsonPath = null
|
||||
}
|
||||
|
||||
const toneMetadataObject = toneHelpers.getToneMetadataObject(libraryItem, chaptersFilePath)
|
||||
toneMetadataObject.TrackNumber = 1
|
||||
task.data.toneMetadataObject = toneMetadataObject
|
||||
task.data.toneJsonObject = {
|
||||
'ToneJsonFile': toneJsonPath,
|
||||
'TrackNumber': 1,
|
||||
}
|
||||
|
||||
Logger.debug(`[AbMergeManager] Book "${libraryItem.media.metadata.title}" tone metadata object=`, toneMetadataObject)
|
||||
|
||||
var workerData = {
|
||||
inputs: ffmpegInputs,
|
||||
options: ffmpegOptions,
|
||||
|
|
|
@ -15,9 +15,9 @@ class AudioMetadataMangaer {
|
|||
this.clientEmitter = clientEmitter
|
||||
}
|
||||
|
||||
updateMetadataForItem(user, libraryItem, useTone = true) {
|
||||
updateMetadataForItem(user, libraryItem, useTone, forceEmbedChapters) {
|
||||
if (useTone) {
|
||||
this.updateMetadataForItemWithTone(user, libraryItem)
|
||||
this.updateMetadataForItemWithTone(user, libraryItem, forceEmbedChapters)
|
||||
} else {
|
||||
this.updateMetadataForItemWithFfmpeg(user, libraryItem)
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ class AudioMetadataMangaer {
|
|||
return toneHelpers.getToneMetadataObject(libraryItem)
|
||||
}
|
||||
|
||||
async updateMetadataForItemWithTone(user, libraryItem) {
|
||||
async updateMetadataForItemWithTone(user, libraryItem, forceEmbedChapters) {
|
||||
var audioFiles = libraryItem.media.includedAudioFiles
|
||||
|
||||
const itemAudioMetadataPayload = {
|
||||
|
@ -49,7 +49,8 @@ class AudioMetadataMangaer {
|
|||
|
||||
try {
|
||||
toneJsonPath = Path.join(itemCacheDir, 'metadata.json')
|
||||
await toneHelpers.writeToneMetadataJsonFile(libraryItem, audioFiles.length == 1 && libraryItem.media.chapters, toneJsonPath)
|
||||
const chapters = (audioFiles.length == 1 || forceEmbedChapters) ? libraryItem.media.chapters : null
|
||||
await toneHelpers.writeToneMetadataJsonFile(libraryItem, chapters, toneJsonPath, audioFiles.length)
|
||||
} catch (error) {
|
||||
Logger.error(`[AudioMetadataManager] Write metadata.json failed`, error)
|
||||
toneJsonPath = null
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue