Scanner v4, audio file metadata used in setting book details, embedded cover art extracted and used

This commit is contained in:
Mark Cooper 2021-09-29 20:43:36 -05:00
parent 6f891208d0
commit dc18eb408e
15 changed files with 371 additions and 108 deletions

View file

@ -2,6 +2,8 @@ const Path = require('path')
const Logger = require('../Logger')
const prober = require('./prober')
const ImageCodecs = ['mjpeg', 'jpeg', 'png']
function getDefaultAudioStream(audioStreams) {
if (audioStreams.length === 1) return audioStreams[0]
var defaultStream = audioStreams.find(a => a.is_default)
@ -37,6 +39,11 @@ async function scan(path) {
chapters: probeData.chapters || []
}
var hasCoverArt = probeData.video_stream ? ImageCodecs.includes(probeData.video_stream.codec) : false
if (hasCoverArt) {
finalData.embedded_cover_art = probeData.video_stream.codec
}
for (const key in probeData) {
if (probeData[key] && key.startsWith('file_tag')) {
finalData[key] = probeData[key]
@ -129,7 +136,7 @@ async function scanAudioFiles(audiobook, newAudioFiles) {
}
if (tracks.find(t => t.index === trackNumber)) {
Logger.debug('[AudioFileScanner] Duplicate track number for', audioFile.filename)
// Logger.debug('[AudioFileScanner] Duplicate track number for', audioFile.filename)
audioFile.invalid = true
audioFile.error = 'Duplicate track number'
numDuplicateTracks++