commit
78e9a9fe37
@ -0,0 +1,167 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function details() {
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: "Tdarr_Plugin_e3jc_Tharic_H.264_MKV_480p30_No_Subs_No_Title_Meta",
|
||||||
|
Name: "H.264 MKV 480p30, No Subs No, Title Meta",
|
||||||
|
Type: "Video",
|
||||||
|
Description: `This plugin removes subs, metadata (if a title exists) and makes sure the video is h264 480p mkv. \n\n
|
||||||
|
`,
|
||||||
|
Version: "1.00",
|
||||||
|
Link: "https://github.com/HaveAGitGat/Tdarr_Plugin_e3jc_Tharic_H.264_MKV_480p30_No_Subs_No_Title_Meta"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function plugin(file) {
|
||||||
|
|
||||||
|
|
||||||
|
//Must return this object
|
||||||
|
|
||||||
|
var response = {
|
||||||
|
|
||||||
|
processFile : false,
|
||||||
|
preset : '',
|
||||||
|
container : '.mp4',
|
||||||
|
handBrakeMode : false,
|
||||||
|
FFmpegMode : false,
|
||||||
|
reQueueAfter : false,
|
||||||
|
infoLog : '',
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
response.FFmpegMode = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (file.fileMedium !== "video") {
|
||||||
|
|
||||||
|
|
||||||
|
console.log("File is not video")
|
||||||
|
|
||||||
|
response.infoLog += " File is not video"
|
||||||
|
response.processFile = false;
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var jsonString = JSON.stringify(file)
|
||||||
|
|
||||||
|
|
||||||
|
var hasSubs = false
|
||||||
|
for (var i = 0; i < file.ffProbeData.streams.length; i++) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
if(file.ffProbeData.streams[i].codec_type.toLowerCase() == "subtitle"){
|
||||||
|
|
||||||
|
hasSubs = true
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (err) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
|
if(file.ffProbeData.streams[0].codec_name != 'h264' || file.ffProbeData.streams[0].width > 720 || file.ffProbeData.streams[0].height > 480 ){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = '-Z "H.264 MKV 480p30"'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =true
|
||||||
|
response.FFmpegMode = false
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is not h264 480p!"
|
||||||
|
return response
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is h264 480p!"
|
||||||
|
|
||||||
|
}
|
||||||
|
//
|
||||||
|
|
||||||
|
if(file.meta.Title != "undefined" && hasSubs){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = '-sn,-map_metadata -1 -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += "File has title and has subs"
|
||||||
|
return response
|
||||||
|
}else{
|
||||||
|
response.infoLog += "File has no title and has no subs"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(file.meta.Title != undefined ){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ',-map_metadata -1 -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File has title metadata"
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
response.infoLog += " File has no title metadata"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(hasSubs){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = '-sn, -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File has subs"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}else{
|
||||||
|
response.infoLog += " File has no subs"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( file.container != 'mkv'){
|
||||||
|
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ', -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is not in mkv container!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is in mkv container!"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
response.processFile = false;
|
||||||
|
response.infoLog += " File meets conditions!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.details = details;
|
||||||
|
|
||||||
|
module.exports.plugin = plugin;
|
||||||
@ -0,0 +1,142 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function details() {
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: "Tdarr_Plugin_s7x8_winsome_h265",
|
||||||
|
Name: "Winsome H265 ",
|
||||||
|
Type: "Video",
|
||||||
|
Description: `This plugin transcodes all videos to h265 (if not in h265 already) and remuxes if not in mkv. If the English language track is not in AC3,EAC3 or DTS then an AC3 track is added.\n\n
|
||||||
|
`,
|
||||||
|
Version: "1.00",
|
||||||
|
Link: "https://github.com/HaveAGitGat/Tdarr_Plugin_s7x8_winsome_h265"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function plugin(file) {
|
||||||
|
|
||||||
|
|
||||||
|
//Must return this object
|
||||||
|
|
||||||
|
var response = {
|
||||||
|
|
||||||
|
processFile: false,
|
||||||
|
preset: '',
|
||||||
|
container: '.mp4',
|
||||||
|
handBrakeMode: false,
|
||||||
|
FFmpegMode: false,
|
||||||
|
reQueueAfter: false,
|
||||||
|
infoLog: '',
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
response.FFmpegMode = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (file.fileMedium !== "video") {
|
||||||
|
|
||||||
|
|
||||||
|
console.log("File is not video")
|
||||||
|
|
||||||
|
response.infoLog += " File is not video"
|
||||||
|
response.processFile = false;
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var jsonString = JSON.stringify(file)
|
||||||
|
response.container = '.mkv'
|
||||||
|
|
||||||
|
|
||||||
|
if (file.ffProbeData.streams[0].codec_name == 'hevc') {
|
||||||
|
|
||||||
|
|
||||||
|
var hasEngTrack = false
|
||||||
|
|
||||||
|
|
||||||
|
// for (var i = 0; i < file.ffProbeData.streams.length; i++) {
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// if ( (file.ffProbeData.streams[i].codec_name == "ac3" || file.ffProbeData.streams[i].codec_name == "eac3" || file.ffProbeData.streams[i].codec_name == "dts") && file.ffProbeData.streams[i].tags.language == 'eng') {
|
||||||
|
|
||||||
|
// hasEngTrack = true
|
||||||
|
|
||||||
|
// }
|
||||||
|
// } catch (err) {
|
||||||
|
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
try {
|
||||||
|
if ((file.ffProbeData.streams[1].codec_name == "ac3" || file.ffProbeData.streams[1].codec_name == "eac3" || file.ffProbeData.streams[1].codec_name == "dts")) {
|
||||||
|
|
||||||
|
hasEngTrack = true
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!hasEngTrack){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ',-map 0:v -map 0:a:0 -map 0:a -map 0:s? -map 0:d? -c copy -c:a:0 ac3 -b:a:0 192k -ac 2'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is already hevc and doesn't have English language track in AC3,EAC3 or DTS!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is already hevc and has English language track in AC3,EAC3 or DTS!"
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( file.container != 'mkv'){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ', -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is not in mkv container!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is in mkv container!"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
response.processFile = false;
|
||||||
|
return response
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = '-Z "H.265 MKV 2160p60"'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode = true
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File isn't in hevc!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.details = details;
|
||||||
|
|
||||||
|
module.exports.plugin = plugin;
|
||||||
@ -0,0 +1,142 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function details() {
|
||||||
|
|
||||||
|
return {
|
||||||
|
id: "Tdarr_Plugin_s7x9_winsome_h265_10bit",
|
||||||
|
Name: "Winsome H265 10 bit ",
|
||||||
|
Type: "Video",
|
||||||
|
Description: `This plugin transcodes all videos to h265 10 bit (if not in h265 already) and remuxes if not in mkv. If the English language track is not in AC3,EAC3 or DTS then an AC3 track is added.\n\n
|
||||||
|
`,
|
||||||
|
Version: "1.00",
|
||||||
|
Link: "https://github.com/HaveAGitGat/Tdarr_Plugin_s7x9_winsome_h265_10bit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function plugin(file) {
|
||||||
|
|
||||||
|
|
||||||
|
//Must return this object
|
||||||
|
|
||||||
|
var response = {
|
||||||
|
|
||||||
|
processFile: false,
|
||||||
|
preset: '',
|
||||||
|
container: '.mp4',
|
||||||
|
handBrakeMode: false,
|
||||||
|
FFmpegMode: false,
|
||||||
|
reQueueAfter: false,
|
||||||
|
infoLog: '',
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
response.FFmpegMode = true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (file.fileMedium !== "video") {
|
||||||
|
|
||||||
|
|
||||||
|
console.log("File is not video")
|
||||||
|
|
||||||
|
response.infoLog += " File is not video"
|
||||||
|
response.processFile = false;
|
||||||
|
|
||||||
|
return response
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
var jsonString = JSON.stringify(file)
|
||||||
|
response.container = '.mkv'
|
||||||
|
|
||||||
|
|
||||||
|
if (file.ffProbeData.streams[0].codec_name == 'hevc') {
|
||||||
|
|
||||||
|
|
||||||
|
var hasEngTrack = false
|
||||||
|
|
||||||
|
|
||||||
|
// for (var i = 0; i < file.ffProbeData.streams.length; i++) {
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// if ( (file.ffProbeData.streams[i].codec_name == "ac3" || file.ffProbeData.streams[i].codec_name == "eac3" || file.ffProbeData.streams[i].codec_name == "dts") && file.ffProbeData.streams[i].tags.language == 'eng') {
|
||||||
|
|
||||||
|
// hasEngTrack = true
|
||||||
|
|
||||||
|
// }
|
||||||
|
// } catch (err) {
|
||||||
|
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
try {
|
||||||
|
if ((file.ffProbeData.streams[1].codec_name == "ac3" || file.ffProbeData.streams[1].codec_name == "eac3" || file.ffProbeData.streams[1].codec_name == "dts")) {
|
||||||
|
|
||||||
|
hasEngTrack = true
|
||||||
|
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(!hasEngTrack){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ',-map 0:v -map 0:a:0 -map 0:a -map 0:s? -map 0:d? -c copy -c:a:0 ac3 -b:a:0 192k -ac 2'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is already hevc and doesn't have English language track in AC3,EAC3 or DTS!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is already hevc and has English language track in AC3,EAC3 or DTS!"
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( file.container != 'mkv'){
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = ', -c:v copy -c:a copy'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode =false
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File is not in mkv container!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
response.infoLog += " File is in mkv container!"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
response.processFile = false;
|
||||||
|
return response
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
response.processFile = true;
|
||||||
|
response.preset = '-Z "H.265 MKV 2160p60" -e x265_10bit'
|
||||||
|
response.container = '.mkv'
|
||||||
|
response.handBrakeMode = true
|
||||||
|
response.FFmpegMode = true
|
||||||
|
response.reQueueAfter = true;
|
||||||
|
response.infoLog += " File isn't in hevc!"
|
||||||
|
return response
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports.details = details;
|
||||||
|
|
||||||
|
module.exports.plugin = plugin;
|
||||||
Loading…
Reference in new issue