API данных Youtube: получение нескольких видеозаписей по идентификаторам в одном запросе

Мне интересно, есть ли способ запросить YouTube для нескольких случайных видео (идентификатор видео известен) в одном запросе? Я сохраняю идентификатор видео в локальном db и должен показать несколько детали (список с большими пальцами, рейтинг, имя автора и т.д.) на веб-странице.

Я смотрю API данных Youtube и вижу, что могу данные сущности:

Uri  videoEntryUrl = new Uri("http://gdata.youtube.com/feeds/api/videos/video_id");
Video video = request.Retrieve<Video>(videoEntryUrl);

Повторение этого в цикле кажется плохой идеей, поскольку квоты.

Существует также "пакетная обработка" - http://code.google.com/apis/youtube/2.0/developers_guide_dotnet.html#Batch_processing. Похоже, я могу выдавать до 50 случайных запросов, но он ожидает, что некоторые feed Я не имею в качестве параметра при выполнении партии. Существует перегрузка с некоторыми Uri, но она не документирована хорошо - google-gdata.googlecode.com/svn/docs/folder59/M_Google_GData_Client_FeedRequest_1_Batch__1_2.htm

Есть ли у кого-нибудь идеи о том, как извлекать несколько видеозаписей по id? Любая помощь будет оценена.

Ответ 1

У меня тоже была одна и та же проблема, мне нужен список объектов видео, связанных с произвольным списком идентификаторов видео, т.е. не соответствующих ни одному из каналов.

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

В конце дня, выполняя основной поиск видео для идентификатора, разделенного каналом "|", достигает требуемого результата:

http://gdata.youtube.com/feeds/api/videos?q=h5jKcDH9s64|elzqvWXG1Y

Надеюсь, что это поможет

Ответ 2

В Youtube Data API версии 3.0 вы можете сделать это простым способом.

https://www.googleapis.com/youtube/v3/videos?key=API_KEY&part=snippet&id=video_id1,video_id2

Просто добавьте идентификаторы видео, разделенные запятой. Он предоставит вам данные для всех видео в JSON

Я не знаю, в чем предел для этого, обновит ответ, как только найду его.

Ответ 3

Ответ RobD работает хорошо. Вы можете добавить что-то вроде этого в конец URL-адреса только для получения необходимых данных, экономя некоторую пропускную способность:

& поля = запись (идентификатор, название)

например:

http://gdata.youtube.com/feeds/api/videos?q=h5jKcDH9s64|elzqvWXG1Y&fields=entry(id,title)

Ответ 5

Вы можете отправить несколько запросов на данные youtube api, завернутые в один запрос. YouTube позволяет отправлять не более 50 запросов в одном запросе. Этот вид запроса известен как запрос пакетной обработки. Для этой проблемы я разработал рабочую часть кода. Я должен был делать то же самое для веб-сайта, над которым я работал. В любом случае вы можете увидеть, как это сделать здесь (пример кода также присутствует для загрузки): http://www.ovaistariq.net/2010/06/youtube-batch-processing-requests-made-less-costly/