如何使用Youtube API检查视频观看是否受限制?

时间:2011-06-20 00:23:59

标签: c# youtube youtube-api

视频可以受到限制,如果视频设置为用户区域不可用,如果视频是私有的,或视频所有者对其显示位置设置了限制。我不想展示它们。

查询我目前所拥有的内容:

Feed<Video> videoFeed = request.GetStandardFeed(
    "http://gdata.youtube.com/feeds/api/videos?v=2" +
    "&format=5&iv_load_policy=3&q=" + this.textBox1.Text);

最初我构建了一个类型项列表,它充当数据源。这里的先决条件也可以解决我的问题。

foreach (Video entry in feed.Entries) 
    dsList.Add(new item { ID = entry.VideoId, TITLE = entry.Title });

如何使用Youtube API检查视频观看是否受限制?

编辑:

我假设,我可以使用:

foreach (Video entry in feed.Entries) 
    if (entry.Status == null)
        dsList.Add(new item { ID = entry.VideoId, TITLE = entry.Title });

但至少存在两个问题:

  1. Youtube api每次查询最多可以返回50个项目超过10个页面。最多500件 - 更多,然后在平均情况下使用。但是,如果受限制的内容具有更高的排序优先级(例如:主要标签音乐视频),则可以丢弃99%或更多的结果。
  2. 过滤器适用于大多数情况,但它似乎不起作用(EMI:Coldplay - Every Teardrop Is A Waterfall (Official)),它列在最受欢迎的视频供稿下。我不想显示:
  3. enter image description here

2 个答案:

答案 0 :(得分:1)

YouTube API包含一个名为accessControl的属性。这包括告诉您是否允许在移动设备和电视机上嵌入和播放的字段。

有关详情,请参阅此页面: https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_yt:accessControl

答案 1 :(得分:0)

我会看一下custom parameters上的API文档。

特别是限制区域参数。