Как использовать API YouTube, чтобы проверить, ограничен ли просмотр видео? - PullRequest
1 голос
/ 20 июня 2011

Видео может быть ограничено, если оно установлено как недоступное для региона пользователей, если оно является частным или если владелец видео установил ограничения на то, где оно может отображаться.Я не хочу отображать их.

Запрос того, что у меня есть в данный момент:

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 });

Как использовать API YouTube для проверки, ограничен ли просмотр видео?

edit:

Я предположил,Я могу использовать:

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

Но есть как минимум две проблемы с этим:

  1. API-интерфейс Youtube может максимально вернуть 50 элементов на 10 страницах на запрос.Максимум 500 предметов - это больше, чем привыкнет в среднем случае.Но если контент с ограниченным доступом имеет более высокий приоритет (например, музыкальные клипы основных лейблов), то 99% или более результатов могут быть отброшены.
  2. Фильтр работает в большинстве случаев, но, похоже, он не работает для (EMI: Coldplay - Every Teardrop Is A Waterfall (Official) ), который указан в списке видео с самым высоким рейтингом.Я не хочу отображать:

enter image description here

Ответы [ 3 ]

1 голос
/ 27 января 2013

API YouTube содержит атрибут accessControl. Сюда входят поля, в которых указано, разрешено ли встраивание и воспроизведение на мобильных устройствах и телевизорах.

Смотрите эту страницу для более: https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_yt:accessControl

0 голосов
/ 08 мая 2017

Очень простое решение

 Public Function IsVideoExits(VideoID As String) As Boolean
    Try
        If Image.FromStream(New MemoryStream(WC.DownloadData("http://i3.ytimg.com/vi/" + VideoID + "/hqdefault.jpg"))).Height > 0 Then Return True
    Catch ex As Exception
        Return False
    End Try
End Function

Вы можете найти, если видео выходит / разрешено просматривать таким образом в 6 строках кода, даже без API

Это код VB.Думаю, вы могли бы преобразовать в свой

0 голосов
/ 20 июня 2011

Я бы взглянул на документацию API по пользовательским параметрам .

В частности, ограничение и регион параметры.

...