0

我想使用 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
      }
}

提前致谢。

4

3 回答 3

1

我解决了 youtube 删除视频的问题。如果您在 youtube api Url 中获得给定格式 = 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;
于 2013-03-09T04:46:15.277 回答
0

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

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

在给定的播放场景中,视频可能无法播放还有其他原因app$control,因此缺少并不能确保视频始终可以播放。但如果app$control 存在,则无法播放视频。

于 2013-03-04T21:17:04.857 回答
0

来自 Google 文档“如果视频不可播放,则该视频的条目将不包含 <media:content> 标签。此外,该条目可能包含 <app:control> 标签,其中包含视频原因的说明无法播放”

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

于 2013-06-21T13:29:52.797 回答