Новейшая версия API YouTube основана на протоколе данных Google. Этот документ поможет разработчикам перейти на использование нового API YouTube в своих веб-сайтах и приложениях.
YouTube стал ведущим средством размещения видео в Интернете. С момента выхода самого первого API REST/XML-RPC в 2005 году благодаря труду тысяч разработчиков все больше и больше людей получают возможность смотреть видеоролики, которые пользователи со всего мира добавляют на YouTube. Теперь, когда наш сайт стал более солидным, мы хотим предоставить разработчикам надежный API с широким набором возможностей. Мы решили переписать API и стандартизировать его на основе существующего протокола данных Google. Для этого есть множество причин, например, желание увеличить масштабируемость и предоставить больше ресурсов для разработчиков. В этом документе мы расскажем, что появилось нового и что нужно сделать, чтобы перейти на использование новой версии на своем веб-сайте или в приложении. Немало полезной информации можно найти также в справочном руководстве и руководствах для разработчиков на вашем языке.
Всем, кто использует старый API, следует перейти на API на основе данных Google. В старом API больше не будут добавляться новые функции, а исправлены будут только наиболее серьезные неполадки.
Старый API будет работать до 30 августа 2008 года. Мы не можем гарантировать его работу после этой даты. Рекомендуем произвести миграцию как можно раньше, поскольку вопросы по API Legacy будут рассматриваться только после решения более насущных задач.
В приведенных ниже таблицах показаны различия в основных операциях, однако это далеко не полный список. Более подробную информацию можно найти в справочном руководстве.
| Операции | Старый API | API данных YouTube | Примечания и комментарии |
|---|---|---|---|
| Поиск по индексу YouTube | videos.list_by_tag&tag="SEARCH TERMS" |
/feeds/api/videos?vq="SEARCH TERMS" |
|
| Поиск по определенной категории | videos.list_by_category_and_tag&tag="SEARCH TERMS"&category_id=CATEGORY_ID |
/feeds/api/videos/-/CATEGORY_NAME |
|
| Запрос метаданных видео | videos.get_details&video_id=VIDEO_ID |
/feeds/api/videos/VIDEO_ID |
|
| Запрос видеоответов на видео | Недоступно | /feeds/api/videos/VIDEO_ID/responses |
|
| Запрос комментариев к видео | videos.get_details&video_id=VIDEO_ID |
/feeds/api/VIDEO_ID/comments |
API данных YouTube на данный момент не запрашивает ID разработчика, который необходим для любого вызова старого API. Мы обсуждаем возможность введения новых функций в виде параметров и фильтров.
Разбивка на страницы возможна и в старом, и в новом API. Ниже перечислены новые параметры разбивки на страницы.
start-index – указывает, с какого сообщения начать перечисление результатов; этот параметр не совпадает с параметром page в старом API, который указывает, какую страницу результатов следует отображатьmax-results – указывает максимальное количество отображаемых сообщений; он совпадает с параметром per_page в старом APIНапример, если нужно разбить 1000 результатов поиска по 50 на странице, исходный параметр start-index будет равен 1, а max-results – 50. На следующем шаге параметр start-index будет равен start-index + max-results, 51. В старом API параметр page будет начинаться со значения 1, а per_page будет равен 50. Параметр page затем изменится на 2 и будет таким же образом увеличиваться на каждом следующем шаге.
Кроме того, API данных YouTube поддерживает слеующие параметры запроса:
vq – запрос на поиск по всему тексту (поиск таких элементов как заголовки или описание видео, теги и т.п.)format – ограничивает поиск определенным форматом видео (например, format=0 означает Flash, все видео досупны в этом формате); список доступных форматов см. в справочном руководствеalt – управляет форматом результатов (RSS, Atom, JSON), как описано здесь: http://code.google.com/intl/ru/apis/gdata/reference.html#Queriesauthor – сужает поиск до видео, загруженных определенным пользователем YouTube, как описано здесь: http://code.google.com/intl/ru/apis/gdata/reference.html#Queriesorderby – порядок, в котором возвращаются результаты поиска, может быть relevance (по умолчанию), published, viewCount или ratingracy – при добавлении racy=include результаты поиска будут включать содержание с ограниченным доступом, отмеченное сообществом; по умолчаню установлено значение excludeПоиск видео по слову "обезьяна" с разбивкой на страницы будет выглядеть следующим образом в старом API и API данных YouTube соответственно.
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=DEV_ID&tag=monkey&page=1&per_page=50
http://gdata.youtube.com/feeds/api/videos?vq=monkey&start-index=1&max-results=50
Поступил также запрос на возможность сортировки каналов данных видео, так чтобы первыми возвращались самые новые видео. Для этого в API данных YouTube достаточно добавить параметр orderby=published.
http://gdata.youtube.com/feeds/api/videos?vq=monkey&orderby=published&start-index=1&max-results=50
| Операции | Старый API | API данных YouTube | Примечания и комментарии |
|---|---|---|---|
| Запрос профиля пользователя | users.get_profile&user=USERNAME |
/feeds/api/users/USERNAME |
|
| Запрос видео пользователя | videos.list_by_user&user=USERNAME |
/feeds/api/users/USERNAME/uploads |
|
| Запрос избранных видео | users.list_favorite_videos&user=USERNAME |
/feeds/api/users/USERNAME/favorites |
|
| Запрос плейлистов пользователя | Недоступно | /feeds/api/users/USERNAME/playlists |
|
| Запрос подписок пользователя | Недоступно | /feeds/api/users/USERNAME/subscriptions |
Запрос списка видео определенного пользователя с помощью строго и нового API:
http://www.youtube.com/api2_rest?method=youtube.videos.list_by_user&dev_id=DEV_ID&user=USERNAME
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads
Многие фильтры, созданные для каналов данных видео, могут применяться и для каналов данных пользователей. Например, можно выполнить поиск текстов по видео, добавленным определенным пользователем.
http://gdata.youtube.com/feeds/api/users/USERNAME/uploads?vq="dogs on bicycles"
Более подробную информацию о том, какие параметры запросов применяются к разным видам каналов, можно найти в справочном руководстве.
| Операции | Старый API | API данных YouTube | Примечания и комментарии |
|---|---|---|---|
| Запрос видео из плейлиста | videos.list_by_playlist&id=PLAYLIST_ID |
/feeds/api/playlists/PLAYLIST_ID |
|
| Запрос плейлистов пользователя | N/A |
/feeds/api/users/USERNAME/playlists |
В старом API запрос списка видео из определенного плейлиста выглядит следующим образом:
http://youtube.com/dev_api_ref?m=youtube.videos.list_by_playlist&dev_id=DEV_ID&id=PLAYLIST_ID
Запрос в API данных YouTube выглядит так:
http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID
Более подробную информацию о том, какие параметры запросов применяются к разным видам каналов, можно найти в справочном руководстве.
Мы планируем продолжать разработку API на основе данных Google и добавлять новые функции, такие как загрузка и вызовы функций записи. Если у вас есть какие-то пожелания или информация об ошибках, сообщите о них в системе отслеживания проблем Данных Google. Мы также вводим поддержку API YouTube в клиентских библиотеках данных Google. Поддержка Java уже осуществляется, скоро появится поддержка PHP и Python. Если у вас возникли вопросы, задайте их на нашем форуме. Приятного вам кодирования!