Exemplo n.º 1
0
 private void cmTrayExit_Click(object sender, EventArgs e)
 {
     if (Program.IsPortable)
     {
         CheckSettings.SavePortableSettings();
     }
     else
     {
         Saved.Default.Save();
     }
     trayIcon.Visible = false;
     Environment.Exit(0);
 }
Exemplo n.º 2
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();
            }
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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();
                }
            }
        }