You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.8 KiB
78 lines
2.8 KiB
function details() {
|
|
return {
|
|
id: 'Tdarr_Plugin_fu69_aune_audio_to_flac',
|
|
Stage: 'Pre-processing',
|
|
Name: 'Aune - Audio to FLAC',
|
|
Type: 'Audio',
|
|
Operation: 'Transcode',
|
|
Description: 'This plugin transcodes different audio codecs to FLAC. '
|
|
+ 'Leaving the default inputs results in lossless conversion as ALAC and PCM codecs don\'t require transcoding for FLAC. It ignores files that contains video streams and is made for music libraries.\n\n',
|
|
Version: '1.00',
|
|
Link: 'https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/Community/Tdarr_Plugin_fu69_aune_audio_to_flac.js',
|
|
Tags: 'pre-processing,ffmpeg,audio only',
|
|
Inputs: [
|
|
{
|
|
name: "codecs",
|
|
type: 'string',
|
|
defaultValue: 'alac,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le',
|
|
inputUI: {
|
|
type: 'text',
|
|
},
|
|
tooltip:
|
|
`Select the codec(s) (comma seperated) you would like to transcode to FLAC.
|
|
\\nExample:\\n
|
|
alac
|
|
\\nExample:\\n
|
|
alac, pcm_s16be, mp3
|
|
\\nExample:\\n
|
|
alac,pcm_s16be,pcm_s16le,pcm_s24be,pcm_s24le,pcm_u16be,pcm_u16le,pcm_u24be,pcm_u24le`,
|
|
},
|
|
],
|
|
};
|
|
}
|
|
|
|
// eslint-disable-next-line no-unused-vars
|
|
function plugin(file, librarySettings, inputs, otherArguments) {
|
|
const lib = require('../methods/lib')();
|
|
// eslint-disable-next-line no-unused-vars,no-param-reassign
|
|
inputs = lib.loadDefaultValues(inputs, details);
|
|
|
|
if (inputs.codecs == "" || inputs.codecs == "undefined") {
|
|
response.infoLog += '☒No codecs selected!\n';
|
|
return response;
|
|
} else {
|
|
inputs.codecs = inputs.codecs.split(",");
|
|
}
|
|
|
|
const response = {
|
|
processFile: false,
|
|
preset: '<io> -c:a flac -f flac',
|
|
container: '.flac',
|
|
handBrakeMode: false,
|
|
FFmpegMode: true,
|
|
reQueueAfter: true,
|
|
infoLog: '',
|
|
};
|
|
|
|
if (file.ffProbeData.streams.filter((x) => x.codec_type === 'video' && x.avg_frame_rate !== '0/0').length) {
|
|
response.infoLog += '☒File contains video!\n';
|
|
return response;
|
|
}
|
|
|
|
// Either transcode to FLAC or ignore file
|
|
for(var i = 0; i < file.ffProbeData.streams.length; i++) {
|
|
for(var j = 0; j < inputs.codecs.length; j++) {
|
|
if(file.ffProbeData.streams[i].codec_type === 'audio' && file.ffProbeData.streams[i].codec_name.toLowerCase() === inputs.codecs[j].toLowerCase().trim()) {
|
|
response.processFile = true;
|
|
response.infoLog += '☒Found ' + inputs.codecs[j].toLowerCase().trim() + ' codec!\n';
|
|
return response;
|
|
}
|
|
}
|
|
}
|
|
response.infoLog += '☑No matching codecs found!\n';
|
|
return response;
|
|
}
|
|
|
|
module.exports.details = details;
|
|
module.exports.plugin = plugin;
|