diff --git a/Jellyfin.Plugin.FinTube/Api/FinTubeActivityController.cs b/Jellyfin.Plugin.FinTube/Api/FinTubeActivityController.cs index 831c324..30915c4 100644 --- a/Jellyfin.Plugin.FinTube/Api/FinTubeActivityController.cs +++ b/Jellyfin.Plugin.FinTube/Api/FinTubeActivityController.cs @@ -51,6 +51,7 @@ public class FinTubeData public string ytid {get; set;} = ""; public string targetlibrary{get; set;} = ""; public string targetfolder{get; set;} = ""; + public string ytdlpargs{get; set;} = ""; public string targetfilename { get; set; } = ""; public bool audioonly{get; set;} = false; public bool preferfreeformat{get; set;} = false; @@ -68,7 +69,7 @@ public ActionResult> FinTubeDownload([FromBody] FinTu { try { - _logger.LogInformation("FinTubeDownload : {ytid} to {targetfoldeer}, prefer free format: {preferfreeformat} audio only: {audioonly}", data.ytid, data.targetfolder, data.preferfreeformat, data.audioonly); + _logger.LogInformation("FinTubeDownload : {ytid} to {targetfoldeer}, prefer free format: {preferfreeformat} audio only: {audioonly}, custom yt-dlp args: {ytdlpargs}", data.ytid, data.targetfolder, data.preferfreeformat, data.audioonly, data.ytdlpargs); Dictionary response = new Dictionary(); PluginConfiguration? config = Plugin.Instance.Configuration; @@ -78,9 +79,9 @@ public ActionResult> FinTubeDownload([FromBody] FinTu // check binaries if(!System.IO.File.Exists(config.exec_YTDL)) throw new Exception("YT-DL Executable configured incorrectly"); - + bool hasid3v2 = System.IO.File.Exists(config.exec_ID3); - + // Ensure proper / separator data.targetfolder = String.Join("/", data.targetfolder.Split("/", StringSplitOptions.RemoveEmptyEntries)); @@ -131,6 +132,8 @@ public ActionResult> FinTubeDownload([FromBody] FinTu args += $" -o \"{targetFilename}-%(title)s.%(ext)s\" {data.ytid}"; } + args += $" {data.ytdlpargs}"; + status += $"Exec: {config.exec_YTDL} {args}
"; var procyt = createProcess(config.exec_YTDL, args); @@ -142,7 +145,7 @@ public ActionResult> FinTubeDownload([FromBody] FinTu { args = $"-a \"{data.artist}\" -A \"{data.album}\" -t \"{data.title}\" -T \"{data.track}\" \"{targetFilename}{targetExtension}\""; - status += $"Exec: {config.exec_ID3} {args}
"; + status += $"Exec: {config.exec_ID3} {args}
"; var procid3 = createProcess(config.exec_ID3, args); procid3.Start(); diff --git a/Jellyfin.Plugin.FinTube/Pages/downloadPage.html b/Jellyfin.Plugin.FinTube/Pages/downloadPage.html index e5999a0..4dd1a43 100644 --- a/Jellyfin.Plugin.FinTube/Pages/downloadPage.html +++ b/Jellyfin.Plugin.FinTube/Pages/downloadPage.html @@ -34,6 +34,12 @@

FinTube Download

This is the filename if you want to override the yt-dl(p) default (optional)
+
+ + +
(Advanced) To pass custom command line arguments to yt-dlp
+
+
- + \ No newline at end of file