API данных Youtube: получение нескольких записей видео по идентификаторам в одном запросе - PullRequest
11 голосов
/ 16 января 2010

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

Я смотрю на 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 случайных запросов, но он ожидает, что некоторые кормить я не имею в качестве параметра при выполнении пакета. С некоторыми Uri есть перегрузка, но она плохо документирована.

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

Ответы [ 5 ]

8 голосов
/ 16 августа 2010

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

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

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

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

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

7 голосов
/ 23 апреля 2015

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

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

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

.

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

4 голосов
/ 19 июня 2011

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

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

например:

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

3 голосов
/ 09 марта 2012

Вот более понятное объяснение для людей, не являющихся PHP

http://oktryitnow.com/?p=83

1 голос
/ 28 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...