Laden...

Exception bei Upload von Thumbnail mit YouTube API v3 - Was bedeutet dieser Fehler?

Erstellt von garv3 vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.622 Views
G
garv3 Themenstarter:in
70 Beiträge seit 2009
vor 9 Jahren
Exception bei Upload von Thumbnail mit YouTube API v3 - Was bedeutet dieser Fehler?

Hallo zusammen,

ich versuche derzeit, das Vorschaubild eines Videos mit Hilfe der YouTube Data Api v3 zu setzen.
Hier der den Fehler betreffende Code:


        Stream thumbnailStream;
        private void setzeThumbnail()
        {
            Debug.Write("Versuche Thumbnail zu setzen...");
            thumbnailStream = new MemoryStream();
            uploadList[aktuelleUploadPosition].Vorschaubild.Save(thumbnailStream, ImageFormat.Png);
            thumbnailStream.Position = 0;
            YouTubeService service = GetYouTubeService();
            ThumbnailsResource tr = new ThumbnailsResource(service);
            ThumbnailsResource.SetMediaUpload mediaUploadThumbnail = tr.Set(uploadList[aktuelleUploadPosition].VideoId, thumbnailStream, "image/png");

            mediaUploadThumbnail.ChunkSize = 256 * 1024;
            mediaUploadThumbnail.ProgressChanged += mediaUploadThumbnail_ProgressChanged;
            mediaUploadThumbnail.ResponseReceived += mediaUploadThumbnail_ResponseReceived;
            Debug.Write("... Starte asynchronen Upload.");
            mediaUploadThumbnail.UploadAsync();
        }

        void mediaUploadThumbnail_ProgressChanged(IUploadProgress obj)
        {
            Debug.Write("... Progress changed");
            if (obj == null)
                Debug.Write("... Objekt verloren");
            Debug.Print("... " + obj.Status.ToString() + ": " + obj.BytesSent + " bytes übtertragen");
            if (obj.Exception != null)
            {
                Debug.Write("... Exception:" + obj.Exception.ToString());
                thumbnailStream.Close();
                uploadList[aktuelleUploadPosition].Status = UploadVideoStatus.ThumbnailFehler;
                objectListViewUploads.RefreshObjects(uploadList);
                Starte_Uploads();
            }
        }

        void mediaUploadThumbnail_ResponseReceived(ThumbnailSetResponse obj)
        {
            Debug.Write("... Fertig:" + obj.Items[0].Standard.Url);
            thumbnailStream.Close();
            uploadList[aktuelleUploadPosition].Status = UploadVideoStatus.Fertig;
            objectListViewUploads.RefreshObjects(uploadList);
            Starte_Uploads();
        }

Ich bekomme folgenden Output im Debig Log:> Fehlermeldung:

Versuche Thumbnail zu setzen...... Starte asynchronen Upload.... Progress changed... Starting: 0 bytes übtertragen
... Progress changed... Uploading: 262144 bytes übtertragen
... Progress changed... Uploading: 524288 bytes übtertragen
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in YouTube Premium Uploader Advanced.exe aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in Microsoft.Threading.Tasks.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.NullReferenceException" ist in Microsoft.Threading.Tasks.dll aufgetreten.
... Progress changed... Failed: 524288 bytes übtertragen
... Exception:System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
bei Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
bei Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
bei Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable1.ConfiguredTaskAwaiter.GetResult() bei Google.Apis.Upload.ResumableUpload1.<UploadCoreAsync>d__e.MoveNext() in c:\code\google.com\google-api-dotnet-client\default\Tools\Google.Apis.Release\bin\Debug\output\default\Src\GoogleApis\Apis[Media]\Upload\ResumableUpload.cs:Zeile 459.Eine Ausnahme (erste Chance) des Typs "System.Threading.ThreadStateException" ist in System.Windows.Forms.dll aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.Threading.ThreadStateException" ist in Microsoft.Threading.Tasks.dll aufgetreten.
Der Thread 0x129c hat mit Code 259 (0x103) geendet.
Der Thread 0x1d7c hat mit Code 259 (0x103) geendet.

Kann mir jemand sagen, was diesen Fehler verursacht bzw. wie ich ihn beheben kann?

Dank und Gruß
garv3

185 Beiträge seit 2005
vor 9 Jahren
G
garv3 Themenstarter:in
70 Beiträge seit 2009
vor 9 Jahren

Hallo MartinH,

danke für die Antwort!
Mir ist schon klar, dass es sich um eine NullReferenceException handelt. Die Frage, die sich mir stellt ist lediglich, ob dies ein Bug in der YouTube API ist, oder vielleicht irgendetwas mit der Einbindung zu tun hat.
So wie ich die Ausgabe verstehe, scheint der Fehler tatsächlich in der API aufzutreten. Ich habe diese per NuGet eingebunden und soweit ich weiß, ist die Quelle nicht öffentlich. Kann ich irgendwas tun?

Gruß
garv3

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo garv3,

die FAQ geht auch auf den Fall ein, dass die NullReferenceException in fremden Code ausgelöst wird. Ich denke, mehr als dort beschrieben lässt sich nicht sagen und nicht machen. Insgesamt steht in der FAQ, alles was man wissen muss. Lies sie also bitte gründlich, komplett und nötigenfalls mehrfach durch.

herbivore