2017-12-11 11 views
0

私はクエリに基づいてビデオのリストを返す小さなウィンドウフォームアプリケーションを作成しています。私はこのリンクを使用していますhttps://developers.google.com/youtube/v3/code_samples/dotnet埋め込みが一部のビデオの所有者によって無効にされている場合、ビデオを再生しようとしているときにエラーが発生するという問題を除いて、すべてがうまくいきます: "他のウェブサイトで再生ビデオオンアで無効になっています "。.Net youtube data api。埋め込みが無効になっているかどうかを検出しますか?

だから今、私は二つの質問

1を持っている)は、そのビデオを再生する方法はありますか?

2)最初の質問のアンサーが「いいえ」の場合、その所有者が埋め込みを無効にした動画をどのようにフィルタリングできますか?私はそれらのビデオを私のリストに追加したくありません。

ありがとうございました。

答えて

0

ありがとう:

そして真は十分な私はembedabbleステータスを取得します。ドキュメンテーションを調べた後、私は最終的に、埋め込みが所有者によって無効になっているビデオをフィルタリングするソリューションを見つけました。

YoutubeService.Search.ListメソッドのVideoEmbeddableプロパティは、Google.Apis.YouTube.v3.SearchResource.ListRequest.VideoEmbeddableEnumがそのトリックを行うことができると期待しています。

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__; 

「ビデオ」タイプを指定すると、すべてのビデオ、プレイリスト、およびチャンネルのビデオインスタントメントだけが返されます。

0

official documentationによれば、すべての動画にはstatus.embeddableというプロパティがあり、コードで確認できます。

+0

回答ありがとうございます。しかし、私はstatus.embeddableを.Netで見つけることができません – diamond421

0

status.embedabbleは、使用されている言語にかかわらず、Videos referenceで使用されているメソッドのいずれかが正常に呼び出されたときの応答です。

たとえば、メソッドリストを使用することをお勧めします。説明するために、私はこのvideos.list Try-itにyoutubeビデオを配置し、 "status"をパーツパラメータとして配置します。すべての答えのための

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