2011-02-08 13 views
3

.netのYoutube APIはしばらく更新されていないようです。そのようなものとして、ビデオを非公開として設定するために公開されるプロパティまたはメソッドはありません。以前にこの問題に遭遇したことがある人は、回避策を提案できますか?Youtube .net APIを使用して動画を未登録のままアップロードして設定する

+0

新しい動画をアップロードする際に、動画を未登録として設定することができます。[** **記事を見るにはここをクリック**](http://aocampo.com/blog/index.php/2011/ 08/how-to-upload-a-video-as-unlisted-google-data-api-c /) – Sukhjeevan

答えて

2

この投稿は、私にとって大きな助けた:

How do I disable comments and ratings using the YouTube API asp.net

私は属性リストにnullチェックを追加するためにコードを変更する必要が終わった

:に、

private Video SetAcessControl(Video video, string type, string permission) 
    { 
     var exts = video.YouTubeEntry.ExtensionElements 
         .Where(x => x is XmlExtension) 
         .Select(x => x as XmlExtension) 
         .Where(x => x.Node.Attributes != null && x.Node.Attributes["action"] != null && x.Node.Attributes["action"].InnerText == type); 

     var ext = exts.FirstOrDefault(); 

     if (ext != null) ext.Node.Attributes["permission"].InnerText = permission; 

     return video; 
    } 

その後それを使用してください:

 YouTubeRequest request = CreateYouTubeRequest(configuration); 
     Uri youTubeUrl = new Uri(string.Format("http://gdata.youtube.com/feeds/api/users/default/uploads/{0}", youTubeVideoId)); 
     Video video = request.Retrieve<Video>(youTubeUrl); 

     video = SetAcessControl(video, "list", "denied"); // removes the video from searches, thus making it Unlisted (what you're looking for) 
     video = SetAcessControl(video, "comment", "denied"); // disables comments 
     video = SetAcessControl(video, "commentVote", "denied"); // disables voting on comments 
     video = SetAcessControl(video, "videoRespond", "denied"); // disables video responses 
     video = SetAcessControl(video, "rate", "denied"); // disables rating 

     Video updatedVideo = request.Update(video); 

これは重要ではありませんアップロードしている動画に適用されます(あなたは新しいVideo()にそれを適用することはできませんrequest.Upload(ビデオ)を呼び出す前に。アップロードプロセスが完了してからこのコードが機能するまで待つ必要があります。このことができます http://code.google.com/apis/youtube/2.0/reference.html#youtube_data_api_tag_yt:accessControl

希望:

は、あなたがこの方法を使用して無効にすることができます項目の完全なリストを表示するには、次のURLを参照してください!

+0

新しい動画をアップロードしている間に動画を非公開に設定することができます。 *記事を見るにはここをクリック**](http://aocampo.com/blog/index.php/2011/08/how-to-upload-a-video-as-unlisted-using-the-google-data -api-c /) – Sukhjeevan

6

私はこのことを理解することに問題がありました。だから、これに対する答えを探している人に私の発見を投稿すると思いました。

this threadごとに、yt:accessControlのサポートがrevに追加されました。 1118.

この執筆時点では、このリビジョンは、GoogleのAPIダウンロードページからダウンロードしたAPIには含まれていません。 API here(SVN Checkout)の最新バージョンを入手する必要があります。

あなたの場所に、あなたはこのような何かができることをしたら:

Video newVideo = new Video(); 
newVideo.YouTubeEntry.AccessControls.Add(new YtAccessControl("list", "denied")); 

乾杯を!

+0

これは公式にダウンロード可能なAPIになりました。 –

2

YouTubeRequestSettings」のユーザー名とパスワードを渡してください。

YouTubeRequestSettings settings = new YouTubeRequestSettings("My Channel", YouTubeDeveloperKey, "username", "password"); 

あなたがあなたのリクエストで認証を渡す必要があり、「非上場」や「プライベート」の動画を検索したい場合は

関連する問題