mirror of
https://github.com/gabehf/Tdarr_Plugins.git
synced 2026-03-10 07:50:29 -07:00
parent
2a0a7e1bfc
commit
c729fad9f5
113 changed files with 102 additions and 7662 deletions
|
|
@ -84,8 +84,8 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
processFile: false,
|
||||
preset: '',
|
||||
container: '',
|
||||
handbrakeMode: false,
|
||||
ffmpegMode: false,
|
||||
handBrakeMode: false,
|
||||
FFmpegMode: false,
|
||||
reQueueAfter: false,
|
||||
infoLog: '',
|
||||
};
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
for (let i = 0; i < items.length; i += 1) {
|
||||
const matchedStreams = [];
|
||||
for (let j = 0; j < streams.length; j += 1) {
|
||||
if (String(sortType.getValue(streams[j])) === String(items[i])) {
|
||||
if (String(sortType.getValue(streams[j])).includes(String(items[i]))) {
|
||||
if (
|
||||
streams[j].codec_long_name
|
||||
&& (
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_078d_Output_embedded_subs_to_SRT_and_remove",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: 'Tdarr_Plugin_43az_add_to_radarr',
|
||||
|
|
|
|||
|
|
@ -203,7 +203,6 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
if (inputs.bitrate_cutoff !== '') {
|
||||
// Checks if currentBitrate is below inputs.bitrate_cutoff
|
||||
// If so then don't convert video.
|
||||
console.log(currentBitrate)
|
||||
if (currentBitrate <= inputs.bitrate_cutoff) {
|
||||
convertVideo = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -86,7 +86,6 @@ Audio: (Only one audio stream is used!!)
|
|||
/// ///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
*/
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_JB69_JBHEVCQSV_MinimalFile',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -148,7 +148,6 @@
|
|||
//
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_JB69_JBHEVCQSZ_PostFix",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ module.exports.dependencies = [
|
|||
];
|
||||
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_MC93_MigzPlex_Autoscan',
|
||||
Stage: 'Post-processing',
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
var secondPass = false;
|
||||
var logOutFile = '';
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_NIfPZuCLU_2_Pass_Loudnorm_Audio_Normalisation",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
/* eslint-disable */
|
||||
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_O8O0dCTlb_Set_File_Permissions_For_UnRaid",
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
// https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/Community/Tdarr_Plugin_MC93_Migz1FFMPEG.js
|
||||
// Seriously, all I did was make it work for converting things to h264 instead of hevc
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_SV6x_Smoove1FFMPEG_NVENC_H264',
|
||||
Stage: 'Pre-processing', // Preprocessing or Post-processing. Determines when the plugin will be executed.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ module.exports.dependencies = [
|
|||
];
|
||||
|
||||
/* eslint no-plusplus: ["error", { "allowForLoopAfterthoughts": true }] */
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_TD01_TOAD_Autoscan',
|
||||
Stage: 'Post-processing',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint max-classes-per-file: ["error", 2] */
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_VP92_VP9_Match_Bitrate_One_Pass',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
// eslint-disable-next-line import/no-unresolved
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_a9hf_New_file_duration_check',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ const 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);
|
||||
|
||||
var response = {
|
||||
processFile: false,
|
||||
preset: "",
|
||||
|
|
@ -71,17 +70,15 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
FFmpegMode: false,
|
||||
reQueueAfter: false,
|
||||
infoLog: "",
|
||||
|
||||
addInfo(status, info) {
|
||||
this.infoLog += (status ? "☑" : "☒") + " " + info + "\n";
|
||||
},
|
||||
};
|
||||
|
||||
const addInfo = (status, info) => {
|
||||
response.infoLog += (status ? "☑" : "☒") + " " + info + "\n";
|
||||
}
|
||||
|
||||
// Check the file is a video
|
||||
if (file.fileMedium !== "video") {
|
||||
console.log("File is not video");
|
||||
addInfo(BAD, `File is not video`);
|
||||
response.addInfo(BAD, `File is not video`);
|
||||
response.processFile = false;
|
||||
return response;
|
||||
}
|
||||
|
|
@ -90,7 +87,7 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
let preset = getPreset(inputs.FFmpeg_preset);
|
||||
|
||||
if (preset === null) {
|
||||
addInfo(
|
||||
response.addInfo(
|
||||
BAD,
|
||||
`Invalid Preset, \"${inputs.FFmpeg_preset}\" please select from (slow,medium,fast,veryfast)`
|
||||
);
|
||||
|
|
@ -128,10 +125,10 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
}
|
||||
|
||||
if (hasBadSubs)
|
||||
addInfo(BAD, "File contains unsupported sub(s), dropping these!");
|
||||
response.addInfo(BAD, "File contains unsupported sub(s), dropping these!");
|
||||
|
||||
if (file.ffProbeData.streams[0].codec_name != "h264") {
|
||||
addInfo(BAD, "File is not in h264!");
|
||||
response.addInfo(BAD, "File is not in h264!");
|
||||
response.preset =
|
||||
", -map_metadata -1 -map 0:V " +
|
||||
subMap +
|
||||
|
|
@ -142,11 +139,11 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
response.FFmpegMode = true;
|
||||
return response;
|
||||
} else {
|
||||
addInfo(GOOD, "File is already in h264!");
|
||||
response.addInfo(GOOD, "File is already in h264!");
|
||||
}
|
||||
|
||||
if (file.meta.Title != undefined && !jsonString.includes("aac") && hasSubs) {
|
||||
addInfo(BAD, "File has title metadata and no aac and subs");
|
||||
response.addInfo(BAD, "File has title metadata and no aac and subs");
|
||||
response.preset =
|
||||
", -map_metadata -1 -map 0:v " +
|
||||
subMap +
|
||||
|
|
@ -159,7 +156,7 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
}
|
||||
|
||||
if (!jsonString.includes("aac") && hasSubs) {
|
||||
addInfo(BAD, "File has no aac track and has subs");
|
||||
response.addInfo(BAD, "File has no aac track and has subs");
|
||||
response.preset =
|
||||
", -map 0:v " +
|
||||
subMap +
|
||||
|
|
@ -172,7 +169,7 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
}
|
||||
|
||||
if (file.meta.Title != undefined && hasSubs) {
|
||||
addInfo(BAD, "File has title and has subs");
|
||||
response.addInfo(BAD, "File has title and has subs");
|
||||
response.preset =
|
||||
", -map_metadata -1 -map 0:v " +
|
||||
subMap +
|
||||
|
|
@ -185,7 +182,7 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
}
|
||||
|
||||
if (file.meta.Title != undefined) {
|
||||
addInfo(BAD, "File has title metadata");
|
||||
response.addInfo(BAD, "File has title metadata");
|
||||
response.preset =
|
||||
", -map_metadata -1 -map 0:v " +
|
||||
subMap +
|
||||
|
|
@ -196,11 +193,11 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
response.FFmpegMode = true;
|
||||
return response;
|
||||
} else {
|
||||
addInfo(GOOD, "File has no title metadata");
|
||||
response.addInfo(GOOD, "File has no title metadata");
|
||||
}
|
||||
|
||||
if (!jsonString.includes("aac")) {
|
||||
addInfo(BAD, "File has no aac track");
|
||||
response.addInfo(BAD, "File has no aac track");
|
||||
response.preset =
|
||||
", -map 0:v " +
|
||||
subMap +
|
||||
|
|
@ -211,14 +208,14 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
response.FFmpegMode = true;
|
||||
return response;
|
||||
} else {
|
||||
addInfo(GOOD, "File has aac track");
|
||||
response.addInfo(GOOD, "File has aac track");
|
||||
}
|
||||
|
||||
if (hasSubs) {
|
||||
if (hasBadSubs) {
|
||||
addInfo(BAD, "File has incompatible subs, dropping these...");
|
||||
response.addInfo(BAD, "File has incompatible subs, dropping these...");
|
||||
} else {
|
||||
addInfo(BAD, "File has compatible subs, copying...");
|
||||
response.addInfo(BAD, "File has compatible subs, copying...");
|
||||
}
|
||||
response.preset =
|
||||
", -map 0:v " + subMap + " -map 0:a -c:v copy -c:a copy " + subType;
|
||||
|
|
@ -226,10 +223,10 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
response.FFmpegMode = true;
|
||||
return response;
|
||||
} else {
|
||||
addInfo(GOOD, "File has no/compatible subs");
|
||||
response.addInfo(GOOD, "File has no/compatible subs");
|
||||
}
|
||||
|
||||
addInfo(GOOD, "File meets conditions!");
|
||||
response.addInfo(GOOD, "File meets conditions!");
|
||||
return response;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,14 +4,14 @@ const details = () => {
|
|||
return {
|
||||
id: "Tdarr_Plugin_drdd_standardise_all_in_one",
|
||||
Stage: "Pre-processing",
|
||||
Name: "DrDD H265 MKV AC3 audio subtitles [VAAPI & NVENC]",
|
||||
Name: "DrDD H265 MKV AC3 audio subtitles [QSV & NVENC]",
|
||||
Stage: "Pre-processing",
|
||||
Type: "Video",
|
||||
Operation: "Transcode",
|
||||
Description:
|
||||
"In a single pass ensures all files are in MKV containers and where possible encoded in h265 (settings dependant on file bitrate), converts all multi channel audio to AC3, removes audio commentary and removes subtitles that are not in the configured language or marked as commentary. This plugin is opinionated based on how I like my library to be configured and based on the work done by Migz with his plugins (Thanks!).",
|
||||
Version: "1.0",
|
||||
Tags: "pre-processing,ffmpeg,vaapi,h265, nvenc h265",
|
||||
Tags: "pre-processing,ffmpeg,qsv h265, nvenc h265",
|
||||
Inputs: [
|
||||
{
|
||||
name: "nvenc",
|
||||
|
|
@ -346,7 +346,7 @@ function buildVideoConfiguration(inputs, file, logger) {
|
|||
|
||||
configuration.RemoveOutputSetting("-c:v copy");
|
||||
configuration.AddOutputSetting(`-c:v hevc_vaapi ${bitrateSettings}`);
|
||||
logger.AddError("Transcoding to HEVC using VAAPI");
|
||||
logger.AddError("Transcoding to HEVC using QSV");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* eslint-disable */
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_e5c3_CnT_Add_Subtitles",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* eslint-disable */
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_e5c3_CnT_Remove_Letterbox",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_goof1_URL_Plex_Refresh',
|
||||
Stage: 'Post-processing',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* eslint-disable no-await-in-loop */
|
||||
module.exports.dependencies = ['axios', '@cospired/i18n-iso-languages'];
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_henk_Keep_Native_Lang_Plus_Eng',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -23,6 +23,9 @@ const plugin = (file, librarySettings, inputs, otherArguments) => {
|
|||
FFmpegMode: true,
|
||||
reQueueAfter: true,
|
||||
infoLog: '',
|
||||
file,
|
||||
removeFromDB: false,
|
||||
updateDB: false,
|
||||
container: `.${file.container}`,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_rr01_drpeppershaker_extract_subs_to_SRT',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_s710_nick_h265_nvenc_4K",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_s7x9_winsome_h265_10bit",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_s7x9_winsome_h265_nvenc",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_sdd3_Remove_Commentary_Tracks",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_sdf5_Thierrrrry_Remove_Non_English_Audio",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_vdka_Remove_DataStreams",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_vdka_Tiered_CPU_CRF_Based_Configurable',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: 'Tdarr_Plugin_vdka_Tiered_NVENC_CQV_BASED_CONFIGURABLE',
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
/* eslint-disable */
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_x7ab_Remove_Subs",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_x7ac_Remove_Closed_Captions',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z0ab_TheRealShadoh_FFmpeg_Subs_H264_Medium',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/* eslint-disable */
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => {
|
||||
return {
|
||||
id: "Tdarr_Plugin_z18s_rename_files_based_on_codec",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z18t_rename_files_based_on_codec_and_resolution',
|
||||
Stage: 'Post-processing',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z1ab_TheRealShadoh_FFmpeg_Subs_H264_Fast',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z2ab_TheRealShadoh_FFmpeg_Subs_H264_Slow',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z3ab_TheRealShadoh_FFmpeg_Subs_H264_VeryFast',
|
||||
Stage: 'Pre-processing',
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ module.exports.dependencies = [
|
|||
'touch',
|
||||
];
|
||||
|
||||
// tdarrSkipTest
|
||||
const details = () => ({
|
||||
id: 'Tdarr_Plugin_z80t_keep_original_date',
|
||||
Stage: 'Post-processing',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue