private void btnOK_Click(object sender, System.EventArgs e)
        {
            Title       = txtTitle.Text;
            Description = txtDescription.Text;
            Visibility  = (YouTubeVideoPrivacy)cbVisibility.SelectedIndex;

            DialogResult = DialogResult.OK;
            Close();
        }
        public YouTubeVideoOptionsForm(string title = "", string description = "", YouTubeVideoPrivacy visibility = YouTubeVideoPrivacy.Private)
        {
            InitializeComponent();
            ShareXResources.ApplyTheme(this);

            Title       = title;
            Description = description;
            Visibility  = visibility;

            txtTitle.Text       = title;
            txtDescription.Text = description;
            cbVisibility.Items.AddRange(Helpers.GetLocalizedEnumDescriptions <YouTubeVideoPrivacy>());
            cbVisibility.SelectedIndex = (int)Visibility;
        }
Пример #3
0
        public override UploadResult Upload(Stream stream, string fileName)
        {
            if (!CheckAuthorization())
            {
                return(null);
            }

            string title                   = Path.GetFileNameWithoutExtension(fileName);
            string description             = "";
            YouTubeVideoPrivacy visibility = PrivacyType;

            if (ShowDialog)
            {
                using (YouTubeVideoOptionsForm form = new YouTubeVideoOptionsForm(title, description, visibility))
                {
                    if (form.ShowDialog() == DialogResult.OK)
                    {
                        title       = form.Title;
                        description = form.Description;
                        visibility  = form.Visibility;
                    }
                    else
                    {
                        return(null);
                    }
                }
            }

            YouTubeVideoUpload uploadVideo = new YouTubeVideoUpload()
            {
                snippet = new YouTubeVideoSnippet()
                {
                    title       = title,
                    description = description
                },
                status = new YouTubeVideoStatusUpload()
                {
                    privacyStatus = visibility
                }
            };

            string metadata = JsonConvert.SerializeObject(uploadVideo);

            UploadResult result = SendRequestFile("https://www.googleapis.com/upload/youtube/v3/videos?part=id,snippet,status", stream, fileName, "file",
                                                  headers: googleAuth.GetAuthHeaders(), relatedData: metadata);

            if (!string.IsNullOrEmpty(result.Response))
            {
                YouTubeVideoResponse responseVideo = JsonConvert.DeserializeObject <YouTubeVideoResponse>(result.Response);

                if (responseVideo != null)
                {
                    if (UseShortenedLink)
                    {
                        result.URL = $"https://youtu.be/{responseVideo.id}";
                    }
                    else
                    {
                        result.URL = $"https://www.youtube.com/watch?v={responseVideo.id}";
                    }

                    switch (responseVideo.status.uploadStatus)
                    {
                    case YouTubeVideoStatus.UploadFailed:
                        Errors.Add("Upload failed: " + responseVideo.status.failureReason);
                        break;

                    case YouTubeVideoStatus.UploadRejected:
                        Errors.Add("Upload rejected: " + responseVideo.status.rejectionReason);
                        break;
                    }
                }
            }

            return(result);
        }