2017-12-11 1 views
0

Ich erstelle eine kleine Fensterform-Anwendung, die eine Liste von Videos basierend auf Abfrage zurückgibt. Ich benutze diesen Link https://developers.google.com/youtube/v3/code_samples/dotnet Alles funktioniert gut, außer für das Problem, dass, wenn die Einbettung von Besitzer eines Videos deaktiviert ist, bekomme ich einen Fehler beim Versuch, das Video zu spielen: "Dieses Video auf Youtube. Wiedergabe auf anderen Websites wurde vom Video Onwer deaktiviert "..Net Youtube Daten API. Erkennen, ob die Einbettung deaktiviert wurde?

So, jetzt habe ich zwei Fragen

1) Gibt es eine Möglichkeit, dass Video zu spielen?

2) Wenn anwser der ersten Frage nein ist, wie kann ich die Videos filtern, deren Einbettung vom Eigentümer deaktiviert wurde? Also ich möchte diese Videos nicht in meine Liste aufnehmen.

Danke.

Antwort

0

Danke für alle Antworten. Nach dem Erforschen der Dokumentation habe ich schließlich die Lösung gefunden, die Videos zu filtern, deren Einbettung vom Eigentümer deaktiviert wurde.

Es gibt eine VideoEmbeddable-Eigenschaft der YoutubeService.Search.List-Methode, die Google.Apis.YouTube.v3.SearchResource.ListRequest.VideoEmbeddableEnum erwartet.

var searchListRequest = youtubeService.Search.List("snippet"); 
      searchListRequest.Q = ""; // Replace with your search term. 
      searchListRequest.MaxResults = 50; 
      searchListRequest.Type = "video"; 
      searchListRequest.VideoEmbeddable = SearchResource.ListRequest.VideoEmbeddableEnum.True__; 

Bei Angabe eines Typs "Video" werden nur Videos aller Videos, Playlists und Kanäle wiedergegeben.

0

Nach official documentation hat jedes Video status.embeddable Eigenschaft, die Sie in Ihrem Code einchecken können.

+0

Danke für die Antwort, aber ich kann status.embeddable in .Net nicht finden – diamond421

0

Der Status.embedabble, unabhängig von der verwendeten Sprache, ist eine Reaktion, wenn eine der in Videos reference verwendeten Methoden erfolgreich aufgerufen wird.

Also würde ich empfehlen, die Methodenliste zum Beispiel zu verwenden. Um dies zu demonstrieren, platziere ich ein Youtube-Video in diesem videos.list Try-it und platziere "status" als Teilparameter.

Und tatsächlich habe ich den embedabble Status:

"items": [ 
    { 
     "kind": "youtube#video", 
     "etag": "\"7991kDR-QPaa9r0pePmDjBEa2h8/7NFYOO88j54fU9aKM8MsjN4zPro\"", 
     "id": "kIBdpFJyFkc", 
     "status": { 
     "uploadStatus": "processed", 
     "privacyStatus": "public", 
     "license": "youtube", 
     "embeddable": true, 
     "publicStatsViewable": true 
     } 
    } 
    ] 
Verwandte Themen