新增将歌词嵌入音频文件中

This commit is contained in:
lyswhut
2020-07-02 12:03:18 +08:00
parent d94d880569
commit 3b25e0a112
10 changed files with 60 additions and 33 deletions
+18 -7
View File
@@ -4,11 +4,22 @@ const fs = require('fs')
const request = require('request')
const extReg = /^(\.(?:jpe?g|png)).*$/
const handleWriteMeta = (meta, filePath) => {
if (meta.lyric) {
meta.unsynchronisedLyrics = {
language: 'zho',
text: meta.lyric,
}
delete meta.lyric
}
NodeID3.write(meta, filePath)
}
module.exports = (filePath, meta) => {
if (!meta.APIC) return NodeID3.write(meta, filePath)
if (!meta.APIC) return handleWriteMeta(meta, filePath)
if (!/^http/.test(meta.APIC)) {
delete meta.APIC
return NodeID3.write(meta, filePath)
return handleWriteMeta(meta, filePath)
}
let ext = path.extname(meta.APIC)
let picPath = filePath.replace(/\.mp3$/, '') + (ext ? ext.replace(extReg, '$1') : '.jpg')
@@ -16,7 +27,7 @@ module.exports = (filePath, meta) => {
.on('response', respones => {
if (respones.statusCode !== 200 && respones.statusCode != 206) {
delete meta.APIC
NodeID3.write(meta, filePath)
handleWriteMeta(meta, filePath)
return
}
respones
@@ -24,10 +35,10 @@ module.exports = (filePath, meta) => {
.on('finish', () => {
if (respones.complete) {
meta.APIC = picPath
NodeID3.write(meta, filePath)
handleWriteMeta(meta, filePath)
} else {
delete meta.APIC
NodeID3.write(meta, filePath)
handleWriteMeta(meta, filePath)
}
fs.unlink(picPath, err => {
if (err) console.log(err.message)
@@ -35,12 +46,12 @@ module.exports = (filePath, meta) => {
}).on('error', err => {
if (err) console.log(err.message)
delete meta.APIC
NodeID3.write(meta, filePath)
handleWriteMeta(meta, filePath)
})
})
.on('error', err => {
if (err) console.log(err.message)
delete meta.APIC
NodeID3.write(meta, filePath)
handleWriteMeta(meta, filePath)
})
}