private void cmTrayExit_Click(object sender, EventArgs e) { if (Program.IsPortable) { CheckSettings.SavePortableSettings(); } else { Saved.Default.Save(); } trayIcon.Visible = false; Environment.Exit(0); }
private void saveSettings() { General.Default.UseStaticYtdl = chkSettingsGeneralUseStaticYoutubeDl.Checked; if (chkSettingsGeneralUseStaticYoutubeDl.Checked) { General.Default.ytdlPath = txtSettingsGeneralYoutubeDlPath.Text; } General.Default.UseStaticFFmpeg = chkSettingsGeneralUseStaticFFmpeg.Checked; if (chkSettingsGeneralUseStaticFFmpeg.Checked && !string.IsNullOrEmpty(txtSettingsGeneralFFmpegPath.Text)) { General.Default.ffmpegPath = txtSettingsGeneralFFmpegPath.Text; } General.Default.CheckForUpdatesOnLaunch = chkSettingsGeneralCheckForUpdatesOnLaunch.Checked; General.Default.HoverOverURLTextBoxToPaste = chkSettingsGeneralHoverOverUrlToPasteClipboard.Checked; General.Default.ClearURLOnDownload = chkSettingsGeneralClearUrlOnDownload.Checked; General.Default.ClearClipboardOnDownload = chkSettingsGeneralClearClipboardOnDownload.Checked; if (rbSettingsGeneralCustomArgumentsDontSave.Checked) { General.Default.SaveCustomArgs = 0; } else if (rbSettingsGeneralCustomArgumentsSaveAsArgsText.Checked) { General.Default.SaveCustomArgs = 1; } else if (rbSettingsGeneralCustomArgumentsSaveInSettings.Checked) { General.Default.SaveCustomArgs = 2; } else { General.Default.SaveCustomArgs = 0; } Downloads.Default.downloadPath = txtSettingsDownloadsSavePath.Text; Downloads.Default.fileNameSchema = txtSettingsDownloadsFileNameSchema.Text; if (!txtSettingsDownloadsFileNameSchema.Items.Contains(txtSettingsDownloadsFileNameSchema.Text)) { txtSettingsDownloadsFileNameSchema.Items.Add(txtSettingsDownloadsFileNameSchema.Text); } string FileNameSchemaHistory = GetHistoryFromComboBox(txtSettingsDownloadsFileNameSchema); if (Saved.Default.FileNameSchemaHistory != FileNameSchemaHistory) { Saved.Default.FileNameSchemaHistory = FileNameSchemaHistory; } Downloads.Default.SaveFormatQuality = chkSettingsDownloadsSaveFormatQuality.Checked; Downloads.Default.SaveSubtitles = chkSettingsDownloadsDownloadSubtitles.Checked; Downloads.Default.EmbedSubtitles = chkSettingsDownloadsEmbedSubtitles.Checked; Downloads.Default.SaveVideoInfo = chkSettingsDownloadsSaveVideoInfo.Checked; Downloads.Default.WriteMetadata = chkSettingsDownloadsWriteMetadataToFile.Checked; Downloads.Default.SaveDescription = chkSettingsDownloadsSaveDescription.Checked; Downloads.Default.KeepOriginalFiles = chkSettingsDownloadsKeepOriginalFiles.Checked; Downloads.Default.SaveAnnotations = chkSettingsDownloadsSaveAnnotations.Checked; Downloads.Default.SaveThumbnail = chkSettingsDownloadsSaveThumbnails.Checked; Downloads.Default.EmbedThumbnails = chkSettingsDownloadsEmbedThumbnails.Checked; Downloads.Default.deleteYtdlOnClose = chkSettingsDownloadsAutomaticallyDeleteYoutubeDlWhenClosing.Checked; Downloads.Default.separateDownloads = chkSettingsDownloadsSeparateDownloadsToDifferentFolders.Checked; Downloads.Default.separateIntoWebsiteURL = chkSettingsDownloadsSeparateIntoWebsiteUrl.Checked; Downloads.Default.fixReddit = chkSettingsDownloadsFixVReddIt.Checked; Downloads.Default.PreferFFmpeg = chkSettingsDownloadsPreferFFmpeg.Checked; Downloads.Default.LimitDownloads = chkSettingsDownloadsLimitDownload.Checked; Downloads.Default.DownloadLimit = (int)numSettingsDownloadsLimitDownload.Value; Downloads.Default.DownloadLimitType = cbSettingsDownloadsLimitDownload.SelectedIndex; Downloads.Default.ForceIPv4 = chkSettingsDownloadsForceIpv4.Checked; Downloads.Default.ForceIPv6 = chkSettingsDownloadsForceIpv6.Checked; Downloads.Default.UseProxy = chkSettingsDownloadsUseProxy.Checked; Downloads.Default.ProxyType = cbSettingsDownloadsProxyType.SelectedIndex; Downloads.Default.ProxyIP = txtSettingsDownloadsProxyIp.Text; Downloads.Default.ProxyPort = txtSettingsDownloadsProxyPort.Text; Downloads.Default.useYtdlUpdater = chksettingsDownloadsUseYoutubeDlsUpdater.Checked; Converts.Default.detectFiletype = chkSettingsConverterDetectOutputFileType.Checked; Converts.Default.clearOutput = chkSettingsConverterClearOutputAfterConverting.Checked; Converts.Default.clearInput = chkSettingsConverterClearInputAfterConverting.Checked; Converts.Default.hideFFmpegCompile = chkSettingsConverterHideFFmpegCompileInfo.Checked; Converts.Default.videoUseBitrate = chkUseVideoBitrate.Checked; Converts.Default.videoBitrate = Decimal.ToInt32(numConvertVideoBitrate.Value); Converts.Default.videoUsePreset = chkSettingsConverterVideoPreset.Checked; Converts.Default.videoPreset = cbConvertVideoPreset.SelectedIndex; Converts.Default.videoUseProfile = chkUseVideoProfile.Checked; Converts.Default.videoProfile = cbConvertVideoProfile.SelectedIndex; Converts.Default.videoUseCRF = chkUseVideoCRF.Checked; Converts.Default.videoCRF = Decimal.ToInt32(numConvertVideoCRF.Value); Converts.Default.videoFastStart = chkSettingsConverterVideoFastStart.Checked; Converts.Default.audioUseBitrate = chkUseAudioBitrate.Checked; Converts.Default.audioBitrate = Decimal.ToInt32(numConvertAudioBitrate.Value); Saved.Default.convertCustom = txtSettingsConverterCustomArguments.Text; Saved.Default.SettingsFormSize = this.Size; saveExtensions(); Errors.Default.detailedErrors = chkSettingsErrorsShowDetailedErrors.Checked; Errors.Default.logErrors = chkSettingsErrorsSaveErrorsAsErrorLog.Checked; Errors.Default.suppressErrors = chkSettingsErrorsSuppressErrors.Checked; if (!Program.IsPortable) { General.Default.Save(); Downloads.Default.Save(); Converts.Default.Save(); Settings.Default.Save(); Errors.Default.Save(); Saved.Default.Save(); } else { CheckSettings.SavePortableSettings(); } }
private void mBatchDownloadFromFile_Click(object sender, EventArgs e) { // Todo: translation if (!Downloads.Default.SkipBatchTip) { switch (MessageBox.Show("Create a text file and put all the video links you want to download into it, separated as one per line.\nDo you want to skip seeing this message when batch downloading?", "youtube-dl-gui", MessageBoxButtons.YesNoCancel)) { case System.Windows.Forms.DialogResult.Cancel: return; case System.Windows.Forms.DialogResult.Yes: Downloads.Default.SkipBatchTip = true; if (!Program.IsPortable) { Downloads.Default.Save(); } else { CheckSettings.SavePortableSettings(); } break; } } string TextFile = string.Empty; using (OpenFileDialog ofd = new OpenFileDialog()){ ofd.Filter = "Text Document (*.txt)|*.txt"; ofd.Title = "Select a file with URLs..."; ofd.Multiselect = false; ofd.CheckFileExists = true; ofd.CheckPathExists = true; if (ofd.ShowDialog() == DialogResult.OK) { TextFile = ofd.FileName; } else { return; } } Thread BatchThread = new Thread(() => { string videoArguments = string.Empty; int DownloadType = 0; int BatchQuality = 0; this.BeginInvoke(new MethodInvoker(() => { if (!chkDownloadSound.Checked) { videoArguments += "-nosound"; } BatchQuality = cbQuality.SelectedIndex; if (rbVideo.Checked) { DownloadType = 0; } else if (rbAudio.Checked) { DownloadType = 1; } else if (rbCustom.Checked) { DownloadType = 2; } else { DownloadType = 3; } })); if (System.IO.File.Exists(TextFile)) { string[] ReadFile = System.IO.File.ReadAllLines(TextFile); if (ReadFile.Length == 0) { return; } for (int i = 0; i < ReadFile.Length; i++) { using (frmDownloader Downloader = new frmDownloader()) { Downloader.BatchDownload = true; switch (DownloadType) { case 0: Downloader.DownloadArguments = videoArguments; Downloader.DownloadPath = Downloads.Default.downloadPath; Downloader.DownloadQuality = BatchQuality; Downloader.DownloadType = 0; Downloader.DownloadUrl = ReadFile[i].Trim(' '); Downloader.ShowDialog(); break; case 1: Downloader.DownloadPath = Downloads.Default.downloadPath; Downloader.DownloadQuality = BatchQuality; Downloader.DownloadType = 1; Downloader.DownloadUrl = ReadFile[i].Trim(' '); Downloader.ShowDialog(); break; case 2: Downloader.DownloadArguments = txtArgs.Text; Downloader.DownloadPath = Downloads.Default.downloadPath; Downloader.DownloadQuality = 0; Downloader.DownloadType = 2; Downloader.DownloadUrl = ReadFile[i].Trim(' '); Downloader.ShowDialog(); break; case 3: Downloader.DownloadPath = Downloads.Default.downloadPath; Downloader.DownloadQuality = 0; Downloader.DownloadType = 0; Downloader.DownloadUrl = ReadFile[i].Trim(' '); Downloader.ShowDialog(); break; } } } } }); BatchThread.Start(); }
private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { if (this.Location.X == 0 || this.Location.Y == 0) { Saved.Default.formTrue0 = true; } else { Saved.Default.formTrue0 = false; } Saved.Default.MainFormSize = this.Size; switch (General.Default.SaveCustomArgs) { case 1: // txt System.IO.File.WriteAllText(Environment.CurrentDirectory + "\\args.txt", txtArgs.Text.TrimEnd('\n')); break; case 2: // settings Saved.Default.downloadArgs = txtArgs.Text; break; } if (rbVideo.Checked) { Saved.Default.downloadType = 0; } else if (rbAudio.Checked) { Saved.Default.downloadType = 1; } else if (rbCustom.Checked) { Saved.Default.downloadType = 2; } else { Saved.Default.downloadType = -1; } if (rbConvertVideo.Checked) { Saved.Default.convertType = 0; } else if (rbConvertAudio.Checked) { Saved.Default.convertType = 1; } else if (rbConvertCustom.Checked) { Saved.Default.convertType = 2; } else if (rbConvertAutoFFmpeg.Checked) { Saved.Default.convertType = 6; } else { Saved.Default.convertType = -1; } Saved.Default.formLocationX = this.Location.X; Saved.Default.formLocationY = this.Location.Y; if (Program.IsPortable) { CheckSettings.SavePortableSettings(); } else { Saved.Default.Save(); } trayIcon.Visible = false; }
static void Main(string[] args) { DebugOnlyMethod(); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (System.IO.File.Exists(Environment.CurrentDirectory + "\\youtube-dl-gui-updater.exe")) { System.IO.File.Delete(Environment.CurrentDirectory + "\\youtube-dl-gui-updater.exe"); } if (System.IO.File.Exists(Environment.CurrentDirectory + "\\youtube-dl-gui.old.exe")) { System.IO.File.Delete(Environment.CurrentDirectory + "\\youtube-dl-gui.old.exe"); } if (IsDebug) { MainForm = new frmMain(); Application.Run(MainForm); } else if (mtx.WaitOne(TimeSpan.Zero, true)) { // boot determines if the application can proceed. bool AllowLaunch = false; if (CheckSettings.IsPortable()) { IsPortable = true; CheckSettings.LoadPortableSettings(); } if (Properties.Settings.Default.firstTime) { if (MessageBox.Show("youtube-dl-gui is a visual extension to youtube-dl and is not affiliated with the developers of youtube-dl in any way.\n\nThis program (and I) does not condone piracy or illegally downloading of any video you do not own the rights to or is not in public domain.\n\nAny help regarding any problems when downloading anything illegal (in my jurisdiction) will be ignored. This message will not appear again.\n\nHave you read the above?", "youtube-dl-gui", MessageBoxButtons.YesNo) == DialogResult.Yes) { Properties.Settings.Default.firstTime = false; if (MessageBox.Show("Downloads are saved to your downloads folder by default, would you like to specify a different location now?\n(You can change this in the settings at any time)", "youtube-dl-gui", MessageBoxButtons.YesNo) == DialogResult.Yes) { using (FolderBrowserDialog fbd = new FolderBrowserDialog()) { fbd.Description = "Select a location to save downloads to"; fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads"; if (fbd.ShowDialog() == DialogResult.OK) { Downloads.Default.downloadPath = fbd.SelectedPath; } else { Downloads.Default.downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads"; } if (!IsPortable) { Downloads.Default.Save(); } } } else { Downloads.Default.downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Downloads"; } if (!IsPortable) { Properties.Settings.Default.Save(); } CheckSettings.CreatePortableSettings(); AllowLaunch = true; } } else { AllowLaunch = true; } if (AllowLaunch) { if (IsPortable) { CheckSettings.LoadPortableSettings(); } MainForm = new frmMain(); if (args.Length > 0) { if (args[0].StartsWith("ytdl:")) { MainForm.txtUrl.Text = args[0].Substring(5); MainForm.ProtocolInput = true; } } Application.Run(MainForm); mtx.ReleaseMutex(); } else { Environment.Exit(0); } } else { Controller.PostMessage((IntPtr)Controller.HWND_YTDLGUIBROADCAST, Controller.WM_SHOWYTDLGUIFORM, IntPtr.Zero, IntPtr.Zero); } }
private static bool DMCA = false; // Will bypass the youtube-dl check if it gets DMCA'd public static void CheckForUpdate(bool ForceCheck = false) { if (Program.IsDebug && !ForceCheck) { Debug.Print("-version " + GitData.UpdateVersion + " -name " + System.AppDomain.CurrentDomain.FriendlyName); } else { if (!General.Default.CheckForUpdatesOnLaunch && !ForceCheck) { return; } if (GitData.UpdateAvailable) { using (frmUpdateAvailable Update = new frmUpdateAvailable()) { Update.BlockSkip = ForceCheck; switch (Update.ShowDialog()) { case DialogResult.Yes: try { UpdateApplication(); } catch (Exception ex) { ErrorLog.ReportException(ex); return; } break; } } } else { Thread checkUpdates = new Thread(() => { if (GitData.UpdateVersion == "-1" || ForceCheck) { decimal GitVersion = UpdateChecker.GetGitVersion(0); if (UpdateChecker.IsUpdateAvailable(GitVersion)) { GitData.UpdateAvailable = true; if (GitVersion != Properties.Settings.Default.SkippedVersion || ForceCheck) { using (frmUpdateAvailable Update = new frmUpdateAvailable()) { Update.BlockSkip = ForceCheck; switch (Update.ShowDialog()) { case DialogResult.Yes: try { UpdateApplication(); } catch (Exception ex) { ErrorLog.ReportException(ex); return; } break; case DialogResult.Ignore: Properties.Settings.Default.SkippedVersion = GitVersion; if (Program.IsPortable) { CheckSettings.SavePortableSettings(); } else { Properties.Settings.Default.Save(); } break; } } } } else if (ForceCheck) { MessageBox.Show("No updates available."); } } }); checkUpdates.Name = "Check for application update"; checkUpdates.Start(); } } }