如何使用来自json请求的youtube api处理youtube删除的视频

时间:2013-03-02 04:45:35

标签: windows-8 microsoft-metro youtube-api jsonresult youtube-channels

我想使用json请求从youtube api获取youtube视频。现在我使用json从youtube上获取视频。示例网址包含一些已删除的视频(http://www.youtube.com/watch?v=MlOHWLqgcoY&list=PLD62D6701B15FD3E1),但我只播放视频而非删除的视频。是否有可能或任何其他方式使用json结果处理youtube删除的视频。

这是我获取youtube视频的代码

string getPlaylistVideoUrl = https://gdata.youtube.com/feeds/api/playlists/PLD62D6701B15FD3E1?v=2&safeSearch=strict&orderby=position&start-index=1&max-results=25&alt=json;
var webRequest = (HttpWebRequest)WebRequest.Create(getPlaylistVideoUrl);
using (WebResponse response=await webRequest.GetResponseAsync())
using (Stream responseStream=response.GetResponseStream())
using (StreamReader reader = new StreamReader(responseStream))
{
   var jsonResult = reader.ReadToEnd();
   var videosList = JsonConvert.DeserializeObject<YouTubeVideosByPlaylist>(jsonResult);
   if (videosList.Feed != null)
   {
      if (videosList.Feed.Entry != null)
      {
           //Add entries to class
      }
}

提前致谢。

3 个答案:

答案 0 :(得分:1)

我解决了youtube删除的视频问题。如果您在youtube api Url中获得 format = 6 的播放列表。

string getPlaylistVideoUrl = https://gdata.youtube.com/feeds/api/playlists/PLD62D6701B15FD3E1?v=2&safeSearch=strict&orderby=position&start-index=1&max-results=25&alt=json&format=6;

答案 1 :(得分:0)

使用数据API的v2检索时,无法播放的视频通常会在其JSON响应中设置app$control个元素。以下是您的响应JSON中要查找的内容的示例:

"app$control": {
 "app$draft": {
  "$t": "yes"
 },
 "yt$state": {
  "$t": "This video is not available in your region.",
  "name": "restricted",
  "reasonCode": "requesterRegion"
 }
}

other reasons为什么视频在给定的播放场景中可能无法播放,因此缺少app$control并不能确保始终播放视频。但如果app$control ,那么视频将无法播放。

答案 2 :(得分:0)

来自Google文档“如果视频无法播放,则该视频的条目不会包含&lt; media:content&gt;标记。此外,该条目可能包含&lt; app:control&gt;标记,其中包含解释视频无法播放的原因“

https://developers.google.com/youtube/2.0/developers_guide_protocol_testing