Tdarr_Plugin_078d_Output_embedded_subs_to_SRT_and_remove

make-only-subtitle-default
HaveAGitGat 5 years ago
parent c9bf32acb3
commit c81a5ce594

@ -0,0 +1,67 @@
module.exports.details = function details() {
return {
id: "Tdarr_Plugin_078d_Output_embedded_subs_to_SRT_and_remove",
Stage: "Pre-processing",
Name: "Output embedded subs to SRT and remove",
Type: "Video",
Operation: "Transcode",
Description: `This plugin outputs embedded subs to SRT and then removes them \n\n`,
Version: "1.00",
Link: "",
Tags: "ffmpeg",
};
};
module.exports.plugin = function plugin(file, librarySettings, inputs, otherArguments) {
//Must return this object at some point in the function else plugin will fail.
let response = {
processFile: false,
preset: "",
container: "",
handBrakeMode: false,
FFmpegMode: false,
reQueueAfter: true,
infoLog: "",
};
const ffmpegPath = otherArguments.ffmpegPath
const exec = require("child_process").exec;
let subsArr = file.ffProbeData.streams.filter(row => row.codec_name === 'subrip')
if (subsArr.length === 0) {
response.infoLog += "No subs in file to extract!";
return response
}
let subStream = subsArr[0]
let lang = ''
if (subStream.tags) {
lang = subStream.tags.language
}
let subsFile = file.file
subsFile = subsFile.split('.')
subsFile[subsFile.length - 2] += `.${lang}`
subsFile[subsFile.length - 1] = 'srt'
subsFile = subsFile.join('.')
let index = subStream.index
let command = `${ffmpegPath} -i "${file.file}" -map 0:${index} "${subsFile}"`
exec(command);
response = {
processFile: true,
preset: `, -map 0 -map -0:${index} -c copy`,
container: "." + file.container,
handBrakeMode: false,
FFmpegMode: true,
reQueueAfter: true,
infoLog: "Found sub to extract!",
};
return response;
};
Loading…
Cancel
Save