mirror of
https://github.com/gabehf/Tdarr_Plugins.git
synced 2026-03-17 11:16:26 -07:00
tidy
This commit is contained in:
parent
d28272f6d4
commit
9c8ac98728
60 changed files with 5481 additions and 5980 deletions
|
|
@ -1,116 +1,125 @@
|
|||
function details() {
|
||||
return {
|
||||
id: "Tdarr_Plugin_MC93_Migz2CleanTitle",
|
||||
Stage: "Pre-processing",
|
||||
Name: "Migz-Clean title metadata",
|
||||
Type: "Video",
|
||||
Operation: "Clean",
|
||||
Description: `This plugin removes title metadata from video/audio/subtitles, if it exists. Video checking is mandatory, audio and subtitles are optional.\n\n`,
|
||||
Version: "1.2",
|
||||
Link: "https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/Community/Tdarr_Plugin_MC93_Migz2CleanTitle.js",
|
||||
Tags: 'pre-processing,ffmpeg,configurable',
|
||||
Inputs: [{
|
||||
name: 'clean_audio',
|
||||
tooltip: `Specify if audio titles should be checked & cleaned. Optional.
|
||||
return {
|
||||
id: "Tdarr_Plugin_MC93_Migz2CleanTitle",
|
||||
Stage: "Pre-processing",
|
||||
Name: "Migz-Clean title metadata",
|
||||
Type: "Video",
|
||||
Operation: "Clean",
|
||||
Description: `This plugin removes title metadata from video/audio/subtitles, if it exists. Video checking is mandatory, audio and subtitles are optional.\n\n`,
|
||||
Version: "1.2",
|
||||
Link:
|
||||
"https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/Community/Tdarr_Plugin_MC93_Migz2CleanTitle.js",
|
||||
Tags: "pre-processing,ffmpeg,configurable",
|
||||
Inputs: [
|
||||
{
|
||||
name: "clean_audio",
|
||||
tooltip: `Specify if audio titles should be checked & cleaned. Optional.
|
||||
\\nExample:\\n
|
||||
true
|
||||
|
||||
\\nExample:\\n
|
||||
false`
|
||||
},
|
||||
{
|
||||
name: 'clean_subtitles',
|
||||
tooltip: `Specify if subtitle titles should be checked & cleaned. Optional.
|
||||
false`,
|
||||
},
|
||||
{
|
||||
name: "clean_subtitles",
|
||||
tooltip: `Specify if subtitle titles should be checked & cleaned. Optional.
|
||||
\\nExample:\\n
|
||||
true
|
||||
|
||||
\\nExample:\\n
|
||||
false`
|
||||
},
|
||||
]
|
||||
}
|
||||
false`,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
function plugin(file, librarySettings, inputs) {
|
||||
var response = {
|
||||
processFile: false,
|
||||
preset: '',
|
||||
container: '.' + file.container,
|
||||
handBrakeMode: false,
|
||||
FFmpegMode: true,
|
||||
reQueueAfter: false,
|
||||
infoLog: '',
|
||||
var response = {
|
||||
processFile: false,
|
||||
preset: "",
|
||||
container: "." + file.container,
|
||||
handBrakeMode: false,
|
||||
FFmpegMode: true,
|
||||
reQueueAfter: false,
|
||||
infoLog: "",
|
||||
};
|
||||
|
||||
}
|
||||
// Set up required variables.
|
||||
var ffmpegCommandInsert = "";
|
||||
var videoIdx = 0;
|
||||
var audioIdx = 0;
|
||||
var subtitleIdx = 0;
|
||||
var convert = false;
|
||||
|
||||
// Set up required variables.
|
||||
var ffmpegCommandInsert = ''
|
||||
var videoIdx = 0
|
||||
var audioIdx = 0
|
||||
var subtitleIdx = 0
|
||||
var convert = false
|
||||
// Check if file is a video. If it isn't then exit plugin.
|
||||
if (file.fileMedium !== "video") {
|
||||
console.log("File is not video");
|
||||
response.infoLog += "☒File is not video \n";
|
||||
response.processFile = false;
|
||||
return response;
|
||||
}
|
||||
|
||||
// Check if file is a video. If it isn't then exit plugin.
|
||||
if (file.fileMedium !== "video") {
|
||||
console.log("File is not video")
|
||||
response.infoLog += "☒File is not video \n"
|
||||
response.processFile = false;
|
||||
return response
|
||||
}
|
||||
|
||||
// Check if overall file metadata title is not empty, if it's not empty set to "".
|
||||
if (typeof file.meta.Title != 'undefined') try {
|
||||
ffmpegCommandInsert += ` -metadata title="" `
|
||||
convert = true
|
||||
// Check if overall file metadata title is not empty, if it's not empty set to "".
|
||||
if (typeof file.meta.Title != "undefined")
|
||||
try {
|
||||
ffmpegCommandInsert += ` -metadata title="" `;
|
||||
convert = true;
|
||||
} catch (err) {}
|
||||
|
||||
// Go through each stream in the file.
|
||||
for (var i = 0; i < file.ffProbeData.streams.length; i++) try {
|
||||
// Check if stream is a video.
|
||||
if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "video") {
|
||||
// Check if stream title is not empty, if it's nto empty set to "".
|
||||
if (typeof file.ffProbeData.streams[i].tags.title != 'undefined') {
|
||||
response.infoLog += `☒Video stream title is not empty, most likely junk metadata. Removing title from stream ${i} \n`
|
||||
ffmpegCommandInsert += ` -metadata:s:v:${videoIdx} title="" `
|
||||
convert = true
|
||||
}
|
||||
// Increment videoIdx.
|
||||
videoIdx++
|
||||
// Go through each stream in the file.
|
||||
for (var i = 0; i < file.ffProbeData.streams.length; i++)
|
||||
try {
|
||||
// Check if stream is a video.
|
||||
if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "video") {
|
||||
// Check if stream title is not empty, if it's nto empty set to "".
|
||||
if (typeof file.ffProbeData.streams[i].tags.title != "undefined") {
|
||||
response.infoLog += `☒Video stream title is not empty, most likely junk metadata. Removing title from stream ${i} \n`;
|
||||
ffmpegCommandInsert += ` -metadata:s:v:${videoIdx} title="" `;
|
||||
convert = true;
|
||||
}
|
||||
// Increment videoIdx.
|
||||
videoIdx++;
|
||||
}
|
||||
|
||||
// Check if title metadata of audio stream has more then 3 full stops. If so then it's likely to be junk metadata so remove.
|
||||
if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" && inputs.clean_audio.toLowerCase() == "true") {
|
||||
if (file.ffProbeData.streams[i].tags.title.split('.').length - 1 > 3) {
|
||||
response.infoLog += `☒More then 3 full stops detected in audio title, likely to be junk metadata. Removing title from stream ${i} \n`
|
||||
ffmpegCommandInsert += ` -metadata:s:a:${audioIdx} title="" `
|
||||
convert = true
|
||||
}
|
||||
// Increment audioIdx.
|
||||
audioIdx++
|
||||
// Check if title metadata of audio stream has more then 3 full stops. If so then it's likely to be junk metadata so remove.
|
||||
if (
|
||||
file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" &&
|
||||
inputs.clean_audio.toLowerCase() == "true"
|
||||
) {
|
||||
if (file.ffProbeData.streams[i].tags.title.split(".").length - 1 > 3) {
|
||||
response.infoLog += `☒More then 3 full stops detected in audio title, likely to be junk metadata. Removing title from stream ${i} \n`;
|
||||
ffmpegCommandInsert += ` -metadata:s:a:${audioIdx} title="" `;
|
||||
convert = true;
|
||||
}
|
||||
// Increment audioIdx.
|
||||
audioIdx++;
|
||||
}
|
||||
|
||||
// Check if title metadata of subtitle stream has more then 3 full stops. If so then it's likely to be junk metadata so remove.
|
||||
if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "subtitle" && inputs.clean_subtitles.toLowerCase() == "true") {
|
||||
if (file.ffProbeData.streams[i].tags.title.split('.').length - 1 > 3) {
|
||||
response.infoLog += `☒More then 3 full stops detected in subtitle title, likely to be junk metadata. Removing title from stream ${i} \n`
|
||||
ffmpegCommandInsert += ` -metadata:s:s:${subtitleIdx} title="" `
|
||||
convert = true
|
||||
}
|
||||
// Increment subtitleIdx.
|
||||
subtitleIdx++
|
||||
// Check if title metadata of subtitle stream has more then 3 full stops. If so then it's likely to be junk metadata so remove.
|
||||
if (
|
||||
file.ffProbeData.streams[i].codec_type.toLowerCase() == "subtitle" &&
|
||||
inputs.clean_subtitles.toLowerCase() == "true"
|
||||
) {
|
||||
if (file.ffProbeData.streams[i].tags.title.split(".").length - 1 > 3) {
|
||||
response.infoLog += `☒More then 3 full stops detected in subtitle title, likely to be junk metadata. Removing title from stream ${i} \n`;
|
||||
ffmpegCommandInsert += ` -metadata:s:s:${subtitleIdx} title="" `;
|
||||
convert = true;
|
||||
}
|
||||
// Increment subtitleIdx.
|
||||
subtitleIdx++;
|
||||
}
|
||||
} catch (err) {}
|
||||
|
||||
// Convert file if convert variable is set to true.
|
||||
if (convert == true) {
|
||||
response.infoLog += "☒File has title metadata. Removing \n"
|
||||
response.preset = `,${ffmpegCommandInsert} -c copy -map 0 -max_muxing_queue_size 4096`
|
||||
response.reQueueAfter = true;
|
||||
response.processFile = true;
|
||||
} else {
|
||||
response.infoLog += "☑File has no title metadata \n"
|
||||
}
|
||||
return response
|
||||
// Convert file if convert variable is set to true.
|
||||
if (convert == true) {
|
||||
response.infoLog += "☒File has title metadata. Removing \n";
|
||||
response.preset = `,${ffmpegCommandInsert} -c copy -map 0 -max_muxing_queue_size 4096`;
|
||||
response.reQueueAfter = true;
|
||||
response.processFile = true;
|
||||
} else {
|
||||
response.infoLog += "☑File has no title metadata \n";
|
||||
}
|
||||
return response;
|
||||
}
|
||||
module.exports.details = details;
|
||||
module.exports.plugin = plugin;
|
||||
module.exports.plugin = plugin;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue