Code:
/*
yt: embed sutitles
trigger : package finished
embeds "Best SUBTITLES" to "Best NORMAL VIDEO"
*/
var srts = package.downloadLinks.filter(function(link) {
return link.getProperty("YT_COLLECTION") == "Best SUBTITLES";
})
var videos = package.downloadLinks.filter(function(link) {
return link.getProperty("YT_COLLECTION") == "Best NORMAL VIDEO";
})
srts.forEach(function(srt) {
var srtId = srt.getProperty("YT_ID");
var subtitle = getPath(srt.downloadPath);
videos.some(function(video) {
var videoId = video.getProperty("YT_ID")
if (videoId == srtId) {
var input = getPath(video.downloadPath);
var ext = input.extension;
var output = getPath(video.package.downloadFolder + "/" + videoId + "." + ext);
var srtCodec = ext == "mp4" ? "mov_text" : "srt";
var ffmpeg = callAPI("config", "get", "org.jdownloader.controlling.ffmpeg.FFmpegSetup", null, "binarypath");
try {
callAsync(function(error) {
if (!error) {
input.delete();
output.renameTo(input);
}
}, ffmpeg, "-i", input, "-i", subtitle, "-c", "copy", "-c:s", srtCodec, output);
} catch (e) {};
return;
}
})
})