Избранное | Русский | Войти

Справочное руководство: протокол данных API

Содержание

  1. Обзор
  2. Типы проекций
  3. Типы каналов
    1. Каналы видео
      1. Канал видео
      2. Канал похожих видео
      3. Канал видеоответов
      4. Стандартные каналы
        1. Получение стандартных каналов для определенного региона
        2. Использование параметра времени со стандартными каналами
      5. Канал избранных видео пользователя
      6. Канал плейлиста
    2. Канал плейлистов пользователя
    3. Канал подписок пользователя
    4. Канал комментариев к видео
    5. Профиль пользователя
    6. Канал знакомых пользователя
  4. Переход между каналами
  5. HTTP-коды ответов на запросы API данных YouTube
    1. Получение каналов
    2. Загрузка видео
    3. Добавление информации через HTTP POST
    4. Обновление информации через HTTP PUT
    5. Удаление элементов через HTTP DELETE
    6. Дополнительные коды ответов для невыполненных запросов
  6. Поиск видео
    1. Определения параметров запросов
      1. Стандартные параметры API данных Google
      2. Специальные параметры API данных YouTube
    2. Поиск в каналах видео по категориям

Обзор

Этот документ предназначен для программистов, создающих клиентские приложения, взаимодействующие с YouTube. Этот документ дополняет информацию протокола руководства разработчика, а также руководства разработчиков для языков Java и PHP.

Этот документ приводит различные типы каналов, которые можно получить с помощью API данных YouTube. В нем также приведены схемы, поясняющие, как переходить между различными каналами, например, на схемах показано, что канал плейлистов пользователя содержит URL, ссылающиеся на отдельные плейлисты и такие данные, как профиль пользователя. Схемы указывают, как перейти с одного канала на другой. Наконец, этот документ определяет параметры, использующиеся в запроса API данных YouTube, а также теги XML, возвращаемые в ответе API. Для разработчиков на Java и PHP, теги XML могут соответствовать непосредственно свойству VideoEntry, ProfileEntry или другого типа объектов.

Типы проекций

API данных YouTube предоставляет различные просмотры, или проекции, данных, доступных в API. Руководство разработчика и примеры в этом документе используют проекцию api, которая поддерживает все теги, определенные в разделе элементов XML этого документа.

Большинство разработчиков, использующих эту документацию, будут использовать проекцию api. Но если вы разрабатываете приложения для мобильных устройств, вы можете заменить во всех примерах запросов в документации API "api" на "mobile". Также, если вы предпочитаете использовать проекцию base, хорошо подходящую для программ чтения каналов, можно заменить "api" на "base" во всех примерах запросов в документации API.

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

Название проекции Описание
api Эта проекция выдает каналы, поддерживающие все элементы XML, определенные в этом документе, в том числе все теги YouTube и схемы Media RSS. Все свойства содержат обычный текст, а не HTML.
base Эта проекция выдает базовые каналы Atom без дополнительных элементов. Ее свойства <atom:summary> и <atom:content> содержат закодированный HTML.
mobile Эта проекция поддерживает большинство элементов XML, определенных в этом документе; ее следует использовать разработчикам приложений для мобильных устройств.

Типы каналов

Из API данных YouTube можно получить следующие типы каналов:

Каналы видео* – есть несколько типов каналов видео
Канал плейлистов пользователя
Канал подписок пользователя
Канал комментариев к видео
Профиль пользователя
Канал знакомых пользователя

API позволяет получать все эти каналы без аутентификации. В некоторых случаях, однако, аутентифицированный запрос получит больше дополнительной информации. Например, если вы подаете аутентифицированный запрос на список видео, добавленных самим пользователем, канал будет содержать частные видео, а также отклоненные и ожидающие обработки видео. Частные, ожидающие обработки и отклоненные видео не появятся в ответе на неаутентифицированный запрос API или запрос видео, добавленных кем-либо помимо аутентифицированного пользователя.

Для добавления или обновления видео, плейлистов, подписок, оценок, комментариев или других элементов, необходимо аутентифицировать все запросы, включая запросы GET, используя ключ разработчика и аутентификацию AuthSub или ClientLogin.

Каналы видео

Каналы видео возвращают набор записей видео. В свою очередь, каждая запись видео содержит сведения об определенном видео в наборе результатов канала видео. API данных YouTube позволяет получать следующие типы каналов видео:

Канал видео
Канал похожих видео
Канал видеоответов
Стандартные каналы
Канал избранных видео пользователя
Канал плейлиста

Videos feed

API возвращает канал видео в ответ на запрос поиска видео. Канал видео содержит до 999 записей. Для получения результатов поиска, отправьте запрос API на следующий URL:

http://gdata.youtube.com/feeds/projection/videos

Запросы поиска могут использовать любой из параметров запроса, определенных в разделе Справка по параметрам запросов этого документа, кроме параметра time. Например, этот URL запрашивает все видео, относящиеся к критерию поиска "skateboarding dog", начинающиеся с 21 результата поиска и возвращает 10 результатов:

http://gdata.youtube.com/feeds/api/videos?
     vq=skateboarding+dog
     &start-index=21
     &max-results=10

Related videos feed

Канал похожих видео содержит список видео, похожих на другое видео. YouTube использует алгоритм, отбирающий похожие видео.

Каждое видео в ответе API содержит набор тегов <link>. Тег <link>, имеющий значение http://gdata.youtube.com/schemas/2007/#video.related атрибута rel, определяет URL для получения других видео, похожих на это. (Атрибут href тега <link> определяет URL.)

<link rel="http://gdata.youtube.com/schemas/2007#video.related"
     type="application/atom+xml"
     href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/related"/>

Канал похожих видео содержит до 100 записей.

Video responses feed

Канал видеоответов содержит видео, обозначенные как ответы на другое видео. Видео может быть обозначено как ответ только на одно видео, а некоторые видео могут не иметь видеоответов.

Каждое видео в ответе API содержит набор тегов <link>. Тег <link>, имеющий значение http://gdata.youtube.com/schemas/2007/#video.responses атрибута rel, определяет URL для получения видеоответов на это видео. (Атрибут <link> тега href определяет URL, как в следующем примере.)

<link rel="http://gdata.youtube.com/schemas/2007#video.responses"
     type="application/atom+xml"
     href="http://gdata.youtube.com/feeds/api/videos/ZTUVgYoeN_b/responses"/>

Standard feeds

Стандартные каналы содержат списки видео, которые либо отражают поведение пользователей, как каналы с лидерами просмотров или лучшими оценками, либо отобранные сотрудниками YouTube, как каналы "в центре внимания" и с мобильными видео. Многие из них можно видеть во вкладке Видео на веб-сайте YouTube.

Для получения стандартного канала отправьте запрос HTTP GET на URL, связанный с этим каналом. В таблице перечислены URL, связанные со стандартными каналами.

Название Идентификатор канала Пример
Лучшие оценки top_rated http://gdata.youtube.com/feeds/api/standardfeeds/top_rated
Лидеры в избранном top_favorites http://gdata.youtube.com/feeds/api/standardfeeds/top_favorites
Лидеры просмотров most_viewed http://gdata.youtube.com/feeds/api/standardfeeds/most_viewed
Последние добавления most_recent http://gdata.youtube.com/feeds/api/standardfeeds/most_recent
Лидеры обсуждений most_discussed http://gdata.youtube.com/feeds/api/standardfeeds/most_discussed
Лидеры по ссылкам most_linked http://gdata.youtube.com/feeds/api/standardfeeds/most_linked
Лидеры по ответам most_responded http://gdata.youtube.com/feeds/api/standardfeeds/most_responded
В центре внимания recently_featured http://gdata.youtube.com/feeds/api/standardfeeds/recently_featured
Видео для мобильных телефонов watch_on_mobile http://gdata.youtube.com/feeds/api/standardfeeds/watch_on_mobile

Получение стандартных каналов для определенного региона

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

http://gdata.youtube.com/feeds/api/standardfeeds/regionID/feedID

Например, получить видео с лучшими оценками в Японии можно, отправив запрос HTTP GET на следующий URL:

http://gdata.youtube.com/feeds/api/standardfeeds/JP/top_rated

Note: Нет региональных версий стандартного канала watch_on_mobile.

В следующей таблице перечислены страны и regionID для каждой из стран, для которых API данных YouTube поддерживает местные каналы.

Страна Идентификатор региона
Австралия AU
Бразилия BR
Канада CA
Франция FR
Германия DE
Великобритания GB
Голландия NL
Гонконг HK
Ирландия IE
Италия IT
Япония JP
Мексика MX
Новая Зеландия NZ
Польша PL
Россия RU
Южная Корея KR
Испания ES
Тайвань TW
США US

Использование параметра времени со стандартными каналами

Все стандартные каналы поддерживают параметр запросов time, позволяющий ограничить канал результатами только прошедшего дня, недели или месяца. Например, получить видео с лучшими оценками за прошедший день можно, отправив запрос HTTP GET на следующий URL:

http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?time=today

User's favorites feed

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

  • Для запроса канала с избранными видео вошедшего в систему пользователя, отправьте запрос HTTP GET на следующий URL. Note: В этом запросе необходимо включить идентификатор аутентификации в заголовок HTTP запроса Authorization. Идентификатор аутентификации позволяет YouTube определить пользователя.

    http://gdata.youtube.com/feeds/api/users/default/favorites
  • Для запроса канала с избранными видео другого пользователя, отправьте запрос HTTP GET на следующий URL. Этот запрос не требует аутентификации.

    http://gdata.youtube.com/feeds/api/users/username/favorites

    В URL выше нужно заменить текст именем пользователя YouTube.username

Канал избранных возвращает до 50 записей. Мы настоятельно рекомендуем разделять канал на страницы с помощью параметров start-index и max-results для оптимизации размера и скорости получения ответа. Рекомендуемое значение max-results – 10, что дает ответ, содержащий приблизительно 60 Кб данных.

Playlist feed

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

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

Перед получением канала плейлиста, сперва нужно получить канал плейлистов пользователя, содержащий список плейлистов, созданных этим пользователем. В канале плейлистов пользователя каждая запись описывает один плейлист. (При этом канал плейлиста описывает отдельные видео, составляющие один плейлист.) Каждая запись в канале плейлистов пользователя содержит тег <gd:feedLink>, определяющий URL, позволяющий получить канал этого плейлиста.

<gd:feedLink rel='http://gdata.youtube.com/schemas/2007#playlist'
    href='http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID'/>

Note: Фактический URL вместо термина PLAYLIST_ID содержит идентификатор, однозначно определяющий плейлист.

Канал плейлистов пользователя

Канал плейлистов пользователя содержит список плейлистов, созданных этим пользователем. Если вы запрашиваете канал плейлистов аутентифицированного в данный момент пользователя, канал будет содержать как плейлисты для всех, так и для избранных. Однако если вы отправляете неаутентифицированный запрос или запрашиваете плейлисты, созданные не аутентифицированным в настоящий момент пользователем, канал будет содержит только плейлисты для всех.

В канале плейлистов, каждая entry содержит информацию об отдельном плейлисте, включая его название, описание и автора. Тег <gd:feedLink> в записи определяет URL, позволяющий получить канал плейлиста, указывающий информацию о видео в плейлисте.

  • Для запроса канала с плейлистами вошедшего в систему пользователя, отправьте запрос HTTP GET на следующий URL. Note: В этом запросе необходимо включить идентификатор аутентификации в заголовок HTTP запроса Authorization. Идентификатор аутентификации позволяет YouTube определить пользователя.

    http://gdata.youtube.com/feeds/api/users/default/playlists
  • Для запроса канала с плейлистами другого пользователя, отправьте запрос HTTP GET на следующий URL. Этот запрос не требует аутентификации.

    http://gdata.youtube.com/feeds/api/users/username/playlists

    В URL выше нужно заменить текст username именем пользователя YouTube.

Канал подписок пользователя

Канал подписок пользователя содержит список каналов, списков избранных видео и критериев поиска, на которые подписался пользователь.

  • Для запроса канала с подписками вошедшего в систему пользователя, отправьте запрос HTTP GET на следующий URL. Note: В этом запросе необходимо включить идентификатор аутентификации в заголовок HTTP запроса Authorization. Идентификатор аутентификации позволяет YouTube определить пользователя.

    http://gdata.youtube.com/feeds/api/users/default/subscriptions
  • Для запроса канала с подписками другого пользователя, отправьте запрос HTTP GET на следующий URL. Этот запрос не требует аутентификации.

    http://gdata.youtube.com/feeds/api/users/username/subscriptions

    В URL выше нужно заменить текст username именем пользователя YouTube.

В канале подписок, каждая entry содержит сведения об одной подписке. Каждая запись содержит следующие ключевые теги:

  • Тег <gd:feedLink> определяет URL, позволяющий получить видео в подписке.

  • Для одного их тегов <category> в записи, значение атрибута scheme будет http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat. Атрибут term тега означает, описывает ли запись подписку на канал (term="channel"), на список избранных видео другого пользователя (term="favorites") или на видео, соответствующие определенным ключевым словам (term="query").

  • Если подписка – на канал или список избранных видео другого пользователя, тег <yt:username> определяет пользователя, владеющего каналом или списком избранных видео.

    Если подписка – на ключевые слова, элемент <yt:queryString> будет содержать термины-критерии подписки.

Канал комментариев к видео

Каждое видео содержит тег <gd:comments>, включающий URL, на который нужно отправлять запросы API для получения (или добавления к нему) списка комментариев к видео. В примере XML ниже показано, как этот URL выглядит в канале видео:

<feed>
  <entry>
    ...
    <media:group>
      ...
    </media:group>
    <gd:comments>
      <gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments'/>
    </gd:comments>
  </entry>
</feed>

Каждая запись в канале комментариев содержит информацию об одном комментарии. У каждого комментария есть автор, название и содержание.

Профиль пользователя

Профиль пользователя содержит информацию, которую пользователь разместил на странице своего профиля YouTube.

  • Для запроса профиля вошедшего в систему пользователя, отправьте запрос HTTP GET на следующий URL. Note: В этом запросе необходимо включить идентификатор аутентификации в заголовок HTTP запроса Authorization. Идентификатор аутентификации позволяет YouTube определить пользователя.

    http://gdata.youtube.com/feeds/api/users/default
  • Для запроса профиля другого пользователя, отправьте запрос HTTP GET на следующий URL. Этот запрос не требует аутентификации.

    http://gdata.youtube.com/feeds/api/users/username

    В URL выше нужно заменить текст username именем пользователя YouTube. В зависимости от типа ответа API YouTube, имена пользователей будут находится в теге <name> или в теге <yt:username>.

Note: Многие ответы API содержат сведения о канале ответа и список записей, но запрос на получение профиля содержит только одну запись. Поэтому корневой тег в ответе API для этого запроса – <entry>.

Канал знакомых пользователя

Канал знакомых пользователя состоит из всех знакомых указанного пользователя.

  • Для запроса списка знакомых вошедшего в систему пользователя, отправьте запрос HTTP GET на следующий URL. Note: В этом запросе необходимо включить идентификатор аутентификации в заголовок HTTP запроса Authorization. Идентификатор аутентификации позволяет YouTube определить пользователя.

    http://gdata.youtube.com/feeds/api/users/default/contacts
  • Для запроса списка знакомых другого пользователя, отправьте запрос HTTP GET на следующий URL. Этот запрос не требует аутентификации.

    http://gdata.youtube.com/feeds/api/users/username/contacts

    В URL выше нужно заменить текст username именем пользователя YouTube.

Знакомые могут относится к категории Friends или Family.

Переход между каналами

Каждый канал и запись использует теги <link rel="relationshipID"> и элементы <gd:feedLink rel="relationshipID">, содержащие ссылки на похожие каналы и записи. В целом, тег <link> определяет связь между похожими, но не вложенными, каналами. С другой стороны, тег <gd:feedLink> определяет канал, который мог бы быть вложен в исходный ответ, но канал бы тогда стал слишком велик.

Эти теги определяют URL, позволяющие реализовать функции API, не добавляя URL в код своего приложения. Например, следующий элемент <link>, который может появится в записи видео, дает ссылку на канал, содержащий видеоответы на это видео.

<link rel="http://gdata.youtube.com/schemas/2007#video.responses" 
    type="application/atom+xml" 
    href="http://gdata.youtube.com/feeds/api/videos/UwOA8H5Vaak/responses"/>

Сходно, следующий элемент <gd:feedLink> может появится записи профиля пользователя. Этот тег определяет URL, с которого можно получить канал знакомых этого пользователя.

<gd:feedLink 
    rel="http://gdata.youtube.com/schemas/2007#user.contacts" 
    href="http://gdata.youtube.com/feeds/api/users/liz/contacts"/>

Случаи использования в Руководстве разработчика могут помочь понять, как переходить между каналами. Кроме того, схема ниже показывает взаимосвязи между каналами API данных YouTube. Сплошные стрелки обозначают элементы <link>, а пунктирные – элементы <gd:feedLink>. Синие стрелки обозначают ссылки <link rel="related">. Запись в подписке может содержать тег <gd:feedLink>, указывающий на один из нескольких типов каналов, в зависимости от типа подписки.

Последний термин в каждом кружке – это "тип" записей данных Google в данном канале. Например, канал подписок содержит записи типа "подписки", а канал "видео" содержит записи типа "видео".

Схема взаимосвязей каналов

HTTP-коды ответов на запросы API данных YouTube

В этом разделе описаны HTTP-коды ответов, возвращаемых YouTube на разные типы запросов API.

Получение каналов

  • Код ответа 200 означает, что запрос HTTP GET для получения канала был успешно обработан YouTube.

  • Код ответа 400 указывает на неправильный запрос. Например, вы получите код ответа 400, если подадите запрос на неправильный URL или включите в него неподдерживаемый или несуществующий параметр. Содержимое ответа API пояснит причину, по которой API вернул код ответа 400.

Загрузка видео

  • Загрузка через браузер

    • 200 – API возвращает код ответа 200, если метаданные видео добавлены успешно. Раздел руководства разработчика Добавление метаданных видео рассказывает об этом процессе подробнее.

    • 301 – Когда пользователь добавляет видеофайл прямо на YouTube через форму на вашем сайте, YouTube отправляет браузеру пользователя перенаправление 301, что заставляет браузер запросить и загрузить URL, который вы указали в параметре nexturl формы добавления. (Больше сведений о форме добавления.) YouTube добавит в этому URL следующие переменные, которые нужно извлечь, чтобы обеспечить пользователю реализацию всех возможностей:

      • id – Этот параметр запроса определяет идентификатор только что добавленного видео.
      • status – Этот параметр запроса указывает, успешно ли пользователь добавил видео. Значение будет 200, если видео было добавлено успешно, либо 4хх или 5хх (т.е. 400, 403, 503 и т.д.), если добавление не было успешным.
      • code – Этот параметр запроса дает дополнительные сведения о том, почему произошла ошибка добавления. Возможные значения этого параметра - "INVALID_TOKEN", "MISSING_TOKEN", "DUPLICATE", "TOKEN_EXPIRED" и "FILE_MISSING".

  • Прямая загрузка

    • 201 – API возвращает код ответа 201, если видео успешно добавлено.

    • 400 (неправильный запрос) – Код ответа 400 означает, что запрос имел неправильный формат или содержал некорректные данные. Например, API вернет код ответа 400, если ваш запрос содержал неверно отформатированный XML или если вы попытались подать ключевые слова, содержащие недопустимые символы.

Добавление информации через HTTP POST

API возвращает приведенные ниже коды ответов на запросы добавления таких элементов, как оценки, комментарии, видеоответы, жалобы, избранные видео, плейлисты, записи в плейлисты, подписки и знакомые.

  • 201 (создано) – Код ответа 201 означает, что запрос HTTP POST для добавления оценки, комментария, видеоответа, жалобы, плейлиста, подписки или знакомого был обработан успешно.

  • 400 (неправильный запрос) – Код ответа 400 означает, что запрос имел неправильный формат или содержал некорректные данные. Например, API вернет код ответа 400, если ваш запрос содержал неверно отформатированный XML или вы попытались подать для видео оценку "16" (оценка должна быть от 1 до 5). Содержимое ответа API пояснит причину, по которой API вернул код ответа 400.

Обновление информации через HTTP PUT

API возвращает следующие коды ответов на запросы обновления таких элементов, как видео, плейлисты, записи в плейлистах и знакомые.

  • 200 (ОК) – Код ответа 200 означает, что YouTube успешно выполнил запрос обновления элемента HTTP PUT.

  • 400 (неправильный запрос) – Код ответа 400 означает, что запрос имел неправильный формат или содержал некорректные данные. Содержимое ответа API пояснит причину, по которой API вернул код ответа 400.

Удаление элементов через HTTP DELETE

API возвращает приведенные ниже коды ответов на запросы удаления таких элементов, как видео, видеоответы, избранные видео, плейлисты, записи в плейлисты, подписки и знакомые.

  • 200 (ОК) – Код ответа 200 означает, что YouTube успешно выполнил запрос удаления элемента HTTP DELETE.

  • 401 (нет полномочий) – Код ответа 401 означает, что запрос не содержал заголовка Authorization, что формат заголовка Authorization был неверным, либо что идентификатор аутентификации, приведенный в заголовке, был недействителен.

  • 403 (запрещено) – Код ответа 403 означает, что вы подали запрос, не имеющий подобающей аутентификации для запрошенной операции.

  • 404 (не найдено) – Код ответа 404 означает, что вы попытались изменить несуществующий элемент. Например, вы получите код ответа 404 при попытке удалить подписку с указанием неправильного URL подписки.

Дополнительные коды ответов для невыполненных запросов

API также может вернуть следующие коды ответов:

  • 401 (нет полномочий) – Код ответа 401 означает, что запрос не содержал заголовка Authorization, что формат заголовка Authorization был неверным, либо что идентификатор аутентификации, приведенный в заголовке, был недействителен.

  • 403 (запрещено) – Код ответа 403 означает, что вы подали запрос, не имеющий подобающей аутентификации для запрошенной операции.

  • 500 (внутренняя ошибка) – Код ответа 500 означает, что при выполнении запроса на YouTube произошла ошибка. Запрос можно попробовать повторить позже.

  • 501 (невозможно выполнить) – Код ответа 501 означает, что вы попытались выполнить не поддерживаемую операцию, например, получить список оценок или обновить жалобу.

  • 503 (служба недоступна) – Код ответа 503 означает, что служба API данных YouTube недоступна. Запрос можно попробовать повторить позже.

Поиск видео

Для поиска видео, направьте запрос HTTP GET на этот URL, добавив к запросу подходящие параметры:

http://gdata.youtube.com/feeds/api/videos

Например, запрос на следующий URL ищет второй десяток недавно добавленных видео, соответствующих критерию "football", но не соответствующих критерию "soccer":

http://gdata.youtube.com/feeds/api/videos?
    vq=football+-soccer
    &orderby=published
    &start-index=11
    &max-results=10

Определения параметров запросов

Standard Google Data API parameters

API данных YouTube поддерживает следующие стандартные параметры запросов данных Google.

Название Определение
alt Параметр alt указывает формат возвращаемого канала. Возможные значения – atom, rss и json. Значение по умолчанию – atom; в этом документе описывается только формат ответов Atom.
author Параметр author ограничивает поиск видео, добавленными определенным пользователем YouTube. Этот параметр более подробно описан в разделе "Видео, добавленное определенным пользователем".
max-results Параметр max-results указывает наибольшее число результатов, которые должны быть включены в набор. Этот параметр работает вместе с параметром start-index, опредляя, какие результаты вернуть. Например, для того, чтобы получить вторую порцию в 10 результатов, т.е. результаты 11-20, параметр max-results устанавливается как 10, а параметр start-index как 11. Значение этого параметра по умолчанию для всех API данных Google – 25, а максимальное значение – 50. Для отображения списка видео мы рекомендуем выставлять значение 10 параметра max-results.
start-index Параметр start-index указывает порядковый номер первого результата, включаемого в набор результатов. В этом параметре первый порядковый номер – 1, то есть первый результат – 1, второй – 2 и так далее. Параметр работает вместе с параметром max-results, определяя, какие результаты возвращать. Например, для того, чтобы получить вторую порцию в 10 результатов, т.е. результаты 11-20, параметр start-index устанавливается как 11, а параметр start-index как 10.

Более подробные сведения о стандартных функциях API данных Google или об этих параметрах можно найти в Справке по протоколу API данных Google.

Custom parameters for the YouTube Data API

Кроме стандартных параметров запросов данных Google, API данных YouTube определяет следующие специальные параметры. Эти параметры доступны только для каналов видео и плейлиста.

Название Определение
vq Параметр vq определяет критерий поиска. YouTube ищет все метаданные видео для видео, соответствующих критерию. Метаданные видео включают названия, ключевые слова, описания, имена пользователей-авторов и категории.

Заметьте, что все пробелы, кавычки и другие знаки препинания в значении параметра должны быть переведены в URL.

Для поиска точной фразы, включите ее в кавычки. Например, для поиска видео, соответствующих фразе "spy plane" (самолет-шпион), установите параметр vq на значение %22spy+plane%22.

В запросе можно применять логические операторы NOT (-) и OR (|), для того, чтобы исключить видео или найти видео, связанные с одним из нескольких критериев. Например, для поиска видео, соответствующих "boating" или "sailing" (хождение на веслах или под парусами), установите параметр vq на значение boating%7Csailing. (Заметьте, что символ вертикальной черты должен быть переведен в URL.) Таким же образом, для поиска видео, соответствующих "boating" или "sailing", но не "fishing", установите параметр vq на "boating&7Csailing+-fishing".
orderby Параметр orderby указывает значение, которое используется для сортировки видео в наборе результатов. Возможные значения – relevance, published, viewCount и rating. Кроме того, можно делать запрос на результаты, наиболее подходящие для определенного языка, выставив значение параметра relevance_lang_languageCode, где languageCodeдвухбуквенный код языка по ISO 639-1. (Используйте значения zh-Hans для упрощенного китайского и zh-Hant для традиционного китайского.) Также, заметьте, что будут возвращены и результаты на других языках, если он имеют высокое соответствие критерию поиска.

Значение этого параметра по умолчанию для канала результатов поиска – relevance. Для канала плейлиста, сортировка по умолчанию основана на положении отдельных видео в плейлисте. Для каналов плейлистов или подписок, порядок по умолчанию – произвольный.
format Параметр format указывает, что видео должны быть в определенном формате. Запрос может указывать любой из этих форматов:

Значение Форматы видео
1 Потоковый URL RTSP для воспроизведения мобильного видео. Видео H.263 (до 176x144) и звук AMR.
5 URL HTTP на встраиваемый проигрыватель (SWF) для этого видео. Формат доступен только для встраиваемого видео. Разработчики часто добавляют к запросам &format=5, чтобы ограничить результаты теми видео, которые можно встроить на свой сайт.
6 Потоковый URL RTSP для воспроизведения мобильного видео. Видео MPEG-4 SP (до 176x144) и аудио AAC.
lr Параметр lr ограничивает поиск видео, имеющими определенный язык названия, описания или ключевых слов. Возможные значения параметра lrдвухбуквенные коды языка по ISO 639-1. Используйте значения zh-Hans для упрощенного китайского и zh-Hant для традиционного китайского. Этот параметр можно использовать, запрашивая не стандартные видео каналы.
racy Параметр racy позволяет включать в результаты, помимо обычного содержания, содержание с ограниченным доступом. Возможные значения – include и exclude. По умолчанию, содержание с ограниченным доступом исключено. В каналах видео, содержащие содержание с ограниченным доступом, будут содержать дополнительный элемент <yt:racy>.
restriction Параметр restriction определяет адрес IP, который следует использовать для отбора видео, которые можно воспроизводить только в определенных странах. По умолчанию, API отбрасывает видео, которые нельзя проигрывать в стране, из которой отправляются запросы. Это ограничение основано на адресе IP вашего клиентского приложения.

Для запроса видео, которые можно воспроизводить на конкретном компьютере, включите в запрос параметр ограничения и установите его значение на адрес IP этого компьютера, например, restriction=255.255.255.255.

Для запроса видео, которые можно воспроизводить в определенной стране, включите в запрос параметр ограничения и установите его значение на двухбуквенный код этой страны по ISO 3166, например, restriction=DE.
time Параметр time доступный только для стандартных каналов top_rated, top_favorites, most_viewed, most_discussed, most_linked и most_responded ограничивает поиск видео, добавленными за определенное время. Возможные значения – today (1 день), this_week (7 дней), this_month (1 месяц) и all_time. Значение по умолчанию – all_time.

Поиск в каналах видео по категориям

Видео YouTube могут делиться на категории следующими способами:

  • Каждое видео может быть связано с одной определенной категорией YouTube, например, комедия, музыка, новости или спорт. Категория видео определяется тегом <media:category> и тегом <category>, для которого значение атрибута schemehttp://gdata.youtube.com/schemas/2007/categories.cat.

  • Каждое видео связано с произвольным числом ключевых слов, которые еще называют тегами. Теги видео определяются тегом <media:keywords> в запросах и ответах API. Теги ключевых слов также определяются тегами <category>, для которых атрибут scheme имеет значение http://gdata.youtube.com/schemas/2007/keywords.cat.

  • Каждое видео, кроме того, может быть связано с произвольным числом тегов разработчика. Можно искать видео с помощью тегов разработчика. Теги разработчика, однако, не отображаются на веб-сайте YouTube и их не следует отображать в вашем приложении. Теги разработчика для видео определяются в тегах <media:category> и <category>, для которых атрибут scheme имеет значение http://gdata.youtube.com/schemas/2007/developertags.cat.

    Более подробно о присвоении тегов разработчика можно узнать в руководстве разработчика.

Для получения видео, относящихся к определенной категории или отмеченных определенными ключевыми словами или тегами разработчика, используйте следующий URL:

http://gdata.youtube.com/feeds/api/videos/-/category_or_tag

Дефис в URL – стандартное обозначение API данных Google, означающее, что оставшаяся часть URL состоит из одного или нескольких тегов. Инструкции ниже сообщают более подробные сведения о запросе видео, связанных с определенными категориями или тегами:

  • Если запрос содержит категорию и одно или несколько ключевых слов, или если запрос не содержит категории, но содержит несколько ключевых слов, разделите отдельные категории и ключевые слова косой чертой. Например, для запроса видео, связанных с ключевыми словами "bass" и "fishing", используется такой URL:

    http://gdata.youtube.com/feeds/api/videos/-/bass/fishing
  • В запросе можно применять логические операторы NOT (-) и OR (|), для того, чтобы исключить видео или найти видео, связанные с одним из нескольких ключевых слов или категорий. Например, если вы хотите отобразить видео, связанные со словами "bass" (бас, окунь) и "music" (музыка), лучше всего искать видео, связанные со словом "bass", но не связанные со словами "fish" или "fishing" (рыба или рыбалка), как в примере далее. (Поиск видео в категории "Music" и ключевым словом "bass" может исключить видео, обучающих игре на басовых инструментах.)

    http://gdata.youtube.com/feeds/api/videos/-/bass/-fish/-fishing

    В следующем примере – как искать видео, связанные с бейсболом, находящиеся в категориях "Sports" (спорт) или "Howto" (обучение). Названия категорий разделены значением "%7C", означающее символ | в кодировке URL, указывающий на то, что видео должны быть в одной из двух категорий:

    http://gdata.youtube.com/feeds/api/videos/-/Sports%7CHowto/baseball
  • Названия категорий должны быть с прописной буквы, ключевые слова – со строчной. например, такой запрос определяет видео, связанные с ключевым словом "comedy", но не находящиеся в категории "Comedy":

    http://gdata.youtube.com/feeds/api/videos/-/comedy/-Comedy
  • Если вы создаете поиски по категориям или ключевым словам автоматически, на основании информации в ответе API, задайте схему как часть названия категории, чтобы четко отличать категории YouTube от тегов ключевых слов или тегов разработчика. Следующие URL показывают, как указать схему в названии категории:

    http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fcategories.cat%7DNews
    http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fkeywords.cat%7Ddog
    http://gdata.youtube.com/feeds/api/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fdevelopertags.cat%7Dexample.com
    
  • Всегда указывайте схему, см. выше, если вы запрашиваете видео, связанные с определенным тегом разработчика.

Определение элементов XML

API данных YouTube использует теги из нескольких схем XML. Следующая таблица определяет различные схемы, используемые API, префикс пространства имен, связанный с каждой из схем и URL пространства имен для всех схем.

Схема Префикс пространства имен URL схемы
Формат синдикации Atom [нет] – это пространство имен по умолчанию http://www.w3.org/2005/Atom
Схема Open Search openSearch http://a9.com/-/spec/opensearchrss/1.0/
Media RSS media http://search.yahoo.com/mrss/
Схема XML YouTube yt http://gdata.youtube.com/schemas/2007
Схема данных Google gd http://schemas.google.com/g/2005
GeoRSS georss http://www.georss.org/georss
Язык географической разметки (Geography Markup Language) gml http://www.opengis.net/gml
Протокол публикации Atom app http://www.w3.org/2007/app

В следующих таблицах определены теги XML, появляющиеся в запросах и ответах API данных YouTube, для каждой из этих схем. Каждая таблица содержит определение одного тега. Теги перечислены в алфавитном порядке для каждой схемы.

Рядом с некоторыми дочерними тегами в определениях могут быть определенные символы. Эти символы и их значения таковы:

? = дополнительный дочерний тег
* = ноль или более экземпляров дочернего тега
+ = один или более экземпляров дочернего тега

Справка по элементам Atom
 
Справка по элементам OpenSearch
 
Справка по элементам YouTube
 
Справка по элементам Media RSS
 
Справка по элементам GData
 
Справка по элементам GeoRSS
 
Справка по элементам GML
 
Справка по элементам протокола публикации Atom Publishing
 
Справка по элементам ответов API добавления через браузер
 
Справка по элементам ответов при ошибках
 

Справка по элементам Atom

author

Тег <author> содержит информацию о пользователе YouTube, владеющем видеосодержанием, подпиской, списком избранных видео, знакомым или другим элементом.

Пример

<author>

Дочерний по отношению к

feed, entry

Дочерние

name, uri

category

Тег <category> указывает категорию, к которой относится видео.

  • Если тег <category> является подтегом <feed> или <entry>, он может определять тип элемента, описанного в каждой из записей в канале. Значение атрибута schemehttp://schemas.google.com/g/2005#kind, а значение атрибута term указывает, описывают ли записи в канале видео, ссылки плейлистов, подписки, знакомых или другие типы элементов.

  • Когда тег <category> является подтегом <entry> и запись описывает видео, тег может также указывать, с каким ключевым словом или категорией связано это видео. В этом случае атрибут scheme означает, относится ли значение атрибута term к ключевому слову или же к категории.



Тег <category> необходим в запросах добавления подписки или добавления и обновления знакомого:

  • В запросе для добавления подписки, тег <category> означает, подписывается ли пользователь на канал, список избранного другим пользователем или же на ключевое слово:

    • Если пользователь подписывается на канал, значение атрибута term тега <category> должно быть channel.

    • Если пользователь подписывается на список избранного другого пользователя, значение атрибута <category> тега term должно быть favorites.

    • Если пользователь подписывается на ключевое слово, значение атрибута term тега <category> должно быть query.

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

    • Если знакомый – член семьи, значение атрибута term тега <category> должно быть Family.

    • Если знакомый – друг, значение атрибута term тега <category> должно быть Friends.

Атрибуты

НазваниеФорматОписание
scheme Сложный Атрибут scheme указывает URL, определяющий схему категоризации, связанную с меткой.

  • В запросе добавления подписки, значение атрибута scheme должно быть http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat.
  • В запросе добавления знакомого, значение атрибута scheme должно быть http://gdata.youtube.com/schemas/2007/contact.cat.
term Сложный Атрибут term определяет тип элемента, содержащегося в записи канала, или категории или ключевого слова, связанных с видео.

  • В запросе добавления подписки, значение атрибута term должно быть channel, favorites or query.
  • В запросе добавления знакомого, значение атрибута term должно быть Family или Friends.
label Сложный Атрибут label указывает переведенное в элемент название категории YouTube, к которой относится видео. Атрибут включается только в теги <category>, относящиеся к категории (но не к ключевому слову или типу элемента).

Пример

<category scheme='http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat' term='channel'/>

Дочерний по отношению к

feed, entry

content

Тег <content> содержит текст комментария или описания видео или плейлиста. Если тег <content> оказывается в записи видео или плейлиста, он может содержать то же описание, что и тег <media:description>.

Тег <content> необходим в запросах добавления комментария.

Пример

<content type="text">Video comments are cool.</content>

Дочерний по отношению к

entry

entry

Тег <entry> включает информацию о видео, плейлисте, подписке, знакомом или другом элементе. Тег <entry> – корневой во всех запросах добавления (POST) или обновления (PUT) API данных YouTube.

Пример

<entry>

Дочерний по отношению к

feed

Дочерние

В записи видео или плейлиста: id, published, updated, category*, title?, content?, link*, author?, media:group?, yt:description? (этот тег используется только в записи плейлиста), yt:position? (этот тег используется только в записи плейлиста), yt:statistics?, gd:comments?, gd:rating?, location?, yt:recorded?, georss:where?, app:control?

В канале комментариев: id, published, updated, category*, title?, content?, link*, author?

В канале плейлистов: id, published, updated, category*, title?, content?, link*, author?, yt:description?, gd:feedLink

В канале подписок: id, published, updated, category*, title?, content?, link*, author?, yt:username?, yt:queryString?, gd:feedLink

В записи профиля: id, published, updated, category*, title?, content?, link*, author?, yt:age?, yt:books?, yt:company?, firstName?, yt:gender?, yt:hobbies?, lastName?, yt:location?, yt:movies?, yt:music?, yt:occupation?, yt:school?, yt:username?, yt:statistics?, media:thumbnail?, gd:feedLink*

Добавление избранных видео: id

Добавление и обновление плейлистов: title, yt:description, yt:private

Добавление и обновление записей плейлистов: title, yt:description, yt:position

Добавление подписок: category, yt:username, yt:queryString

Добавление и обновление знакомых: category, yt:username

Добавление комментариев: content

Добавление видеоответов: id

Добавление оценок: gd:rating

Добавление жалоб: yt:description

feed

Тег <feed> – корневой для некоторых каналов API данных YouTube, включая каналы видео, подписки, плейлиста, избранных видео и знакомых. Канал содержит набор элементов <entry>, каждый из которых включает сведения об одном видео, плейлисте, подписке или другом элементе.

Пример

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:yt='http://gdata.youtube.com/schemas/2007' xmlns:gd='http://schemas.google.com/g/2005'>

Дочерние

id, updated, category*, title, logo?, link*, author?, generator, openSearch:itemsPerPage?, openSearch:startIndex?, openSearch:totalResults?, entry+

generator

Тег <generator> определяет программное обеспечение, создавшее канал. Это информация может использоваться для отладки.

Атрибуты

НазваниеФорматОписание
version Сложный Атрибут version указывает версию программы, создавшей канал.
uri Сложный Атрибут uri указывает URI, относящийся к программе создания канала.

Пример

<generator version='beta' uri='http://gdata.youtube.com/'>YouTube data API</generator>

Дочерний по отношению к

feed

id

Тег <id> указывает URI, постоянно и однозначно определяющий канал или запись видео.

Пример

<id>http://gdata.youtube.com/feeds/api/users/andyland74/subscriptions/5c56f45db338111c</id>

Дочерний по отношению к

feed, entry

link

Тег <link> содержит ссылку IRI (интернационализированный идентификатор ресурса), относящуюся к каналу или записи в канале.

Атрибуты

НазваниеФорматОписание
rel Сложный Атрибут rel определяет, как URI, указанный в атрибуте href, относится к текущему набору результатов:

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

  • Если значение атрибута reledit, то ссылка указывает URL для изменения записи в канале.

  • Если значение атрибута relalternate, ссылка определяет URL, дающий другое представление канала, например, ссылку на представление этой записи канала в HTML.

  • Если значение атрибута relprev, то ссылка указывает на предыдущую страницу набора результатов канала.

  • Если значение атрибута relnext, то ссылка указывает на следующую страницу набора результатов канала.

  • Если значение атрибута relrelated, то ссылка указывает на другой канал, похожий на этот канал. Например, если канал содержит список знакомых, ссылка на похожий канал для знакомого может указывать на канал профиля этого знакомого.

  • Атрибут rel может также содержать ссылку на схему, определяющую тип элемента, содержащегося в соответствующей ссылке. Например, запись видео содержит теги <link>, указывающие на ответы, оценки, жалобы и похожие видео для этого видео. Некоторые из этих тегов <link> могут применяться для получения дополнительных каналов, например, похожих видео и видеоответов, а другие можно использовать для размещения данных, например, оценок или жалоб.

type Сложный Атрибут type указывает тип мультимедиа ресурса в связанном URL. Ссылки в ответах API данных YouTube обычно указывают на страницу HTML или другой ответ API (канал Atom). Поэтому обычно атрибут type имеет значения text/html и application/atom+xml.
href Сложный Атрибут href указывает URI, определяющий ресурс, указанный в теге <link>.

Пример

<link rel='http://gdata.youtube.com/schemas/2007#video.related' type='application/atom+xml' href='http://gdata.youtube.com/feeds/api/videos/AlPqL7IUT6M/related'/>

Дочерний по отношению к

feed, entry

logo

Тег <logo> указывает на изображение, представляющее канал. Логотип канала API данных YouTube – логотип YouTube.

Пример

<logo>http://www.youtube.com/img/pic_youtubelogo_123x63.gif</logo>

Дочерний по отношению к

feed

name

Тег <name> указывает имя пользователя YouTube автора.

Пример

<name>andyland74</name>

Дочерний по отношению к

author

published

Тег <published> указывает время создания этой записи в канале.

Пример

<published>2007-10-15T15:39:34.000-07:00</published>

Дочерний по отношению к

entry

title

Тег <title> дает удобочитаемое название канала или записи в канале. Этот тег нужен для добавления плейлистов и может применяться дополнительно для добавления или обновления записей в плейлистах.

  • В запросе добавления или обновления плейлиста, тег <title> указывает название плейлиста.

  • В запросе добавления или обновления записи в плейлисте, тег <title> указывает пользовательское название, которое может отображаться в плейлисте вместо исходного названия видео. Если пользователь не вводит собственного названия, YouTube отображает в плейлисте исходное название видео.

Пример

<title type='text'>andyland74's Subscriptions</title>

Дочерний по отношению к

feed, entry

updated

Тег <updated> указывает время последнего обновления канала или записи в канале.

Пример

<updated>2007-10-15T15:39:34.000-07:00</updated>

Дочерний по отношению к

feed, entry

uri

Тег <uri> содержит URL, относящийся к author.

Пример

<uri>http://gdata.youtube.com/feeds/api/users/andyland74</uri>

Дочерний по отношению к

author

Справка по элементам OpenSearch

openSearch:itemsPerPage

Тег <openSearch:itemsPerPage> указывает, сколько записей в ответе API.

Пример

<openSearch:itemsPerPage>25</openSearch:itemsPerPage>

Дочерний по отношению к

feed

openSearch:startIndex

Тег <openSearch:startIndex> определяет номер (начинается с единицы) первого элемента, возвращаемого в канале.

Пример

<openSearch:startIndex>1</openSearch:startIndex>

Дочерний по отношению к

feed

openSearch:totalResults

Тег <openSearch:totalResults> определяет количество элементов в наборе результатов в канале. Заметьте, что это значение приблизительное и может не отражать точного значения. Это значение не следует использовать для создания ссылок перелистывания страниц. Определять, показывать ли ссылки для перехода между страницами, следует с помощью тегов <link rel="next"> и <link rel="prev">:

<link rel="next" type="application/atom+xml" href="http://gdata.youtube.com/feeds/videos?start-index=26&max-results=25"/>


Если канал содержит тег <link>, значение атрибута rel которого – next, значит, есть еще страница результатов. В противном случае, текущая страница – последняя в наборе результатов. Также, если канал содержит тег <link>, значение атрибута rel которого – prev, значит, есть предыдущая страница результатов. В противном случае, текущая страница – первая в наборе результатов.

Пример

<openSearch:totalResults>36</openSearch:totalResults>

Дочерний по отношению к

feed

Справка по элементам YouTube

yt:age

Тег <yt:age> указывает возраст пользователя, который рассчитывается на основании даты рождения, приведенной в профиле пользователя YouTube. Тег <yt:age> встречается в канале профиля пользователя.

Пример

<yt:age>33</yt:age>

Дочерний по отношению к

entry

yt:books

Тег <yt:books> определяет любимые книги пользователя, указанные в профиле пользователя YouTube.

Пример

<yt:books>Catch-22</yt:books>

Дочерний по отношению к

entry

yt:company

Тег <yt:company> определяет компанию, в которой работает пользователь, указанную в профиле пользователя YouTube.

Пример

<yt:company>Google</yt:company>

Дочерний по отношению к

entry

yt:description

Тег <yt:description> содержит описание, которое пользователь ввел для плейлиста, собственное описание видео, которое пользователь ввел в плейлисте, или текст жалобы.

Пример

<yt:description>My new playlist description</yt:description>

Дочерний по отношению к

entry

yt:duration

Тег <yt:duration> дает длину видео в секундах.

Атрибуты

НазваниеФорматОписание
seconds Сложный Атрибут seconds дает длину видео в секундах.

Пример

<yt:duration seconds='344'/>

Дочерний по отношению к

media:group

yt:firstName

Тег <yt:firstName> указывает имя этого пользователя.

Пример

<yt:firstName>John</yt:firstName>

Дочерний по отношению к

entry

yt:gender

Тег <yt:gender> определяет пол пользователя, согласно профилю пользователя YouTube.

Пример

<yt:gender>m</yt:gender>

Дочерний по отношению к

entry

yt:hobbies

Тег <yt:hobbies> определяет хобби пользователя, указанные в профиле пользователя YouTube.

Пример

<yt:hobbies>Testing YouTube APIs</yt:hobbies>

Дочерний по отношению к

entry

yt:hometown

Тег <yt:hometown> определяет город пользователя, указанный в профиле пользователя YouTube.

Пример

<yt:hometown>Albany, GA</yt:hometown>

Дочерний по отношению к

entry

yt:lastName

Тег <yt:lastName> указывает фамилию пользователя.

Пример

<yt:lastName>Smith</yt:lastName>

Дочерний по отношению к

entry

yt:location

В записи видео, тег <yt:location> содержит текст описания места, где было снято видео. В записи профиля пользователя, тег <yt:location> определяет место нахождения пользователя, введенное в профиле пользователя YouTube.

Пример

<yt:location>US</yt:location>

Дочерний по отношению к

entry

yt:movies

Тег <yt:movies> определяет любимые фильмы пользователя, указанные в профиле пользователя YouTube.

Пример

<yt:movies>Aqua Teen Hungerforce</yt:movies>

Дочерний по отношению к

entry

yt:music

Тег <yt:music> определяет любимую музыку пользователя, указанную в профиле пользователя YouTube.

Пример

<yt:music>Elliott Smith, the Kooks</yt:music>

Дочерний по отношению к

entry

yt:noembed

Тег <yt:noembed> указывает, что видео нельзя встраивать на другие веб-сайты. Этот тег может включаться в запросы добавления или обновления метаданных видео. По умолчанию видео, кроме видео только для избранных, можно встраивать на другие сайты. Если запрос не включает тега <yt:noembed> или тега <yt:private>, видео можно будет встраивать на другие веб-сайты.

Пример

<yt:noembed/>

Дочерний по отношению к

entry

yt:occupation

Тег <yt:occupation> определяет занятие пользователя, указанное в профиле пользователя YouTube.

Пример

<yt:occupation>Technical writer</yt:occupation>

Дочерний по отношению к

entry

yt:position

Тег <yt:position> указывает порядок, в котором видео отображаются в плейлисте.

Пример

<yt:position>4</yt:position>

Дочерний по отношению к

entry

yt:private

Тег <yt:private> означает, что видео – только для избранных, то есть оно не будет общественно-доступным на веб-сайте YouTube. Видео для избранных могут просматривать только люди, отобранные владельцем видео. Этот тег может включаться в запросы добавления или обновления метаданных видео. Этот тег не должен указывать значение. Само присутствие тега означает, что видео – для избранных. Отсутствие тега означает, что видео будет доступно всем пользователям YouTube. По умолчанию, все видео доступны на YouTube для всех. Отсутствие тега означает, что видео будет доступно всем пользователям YouTube. (По умолчанию, видео доступны всем пользователям YouTube; для того, чтобы видео стало доступно только избранным, следует включить тег <yt:private> во все запросы добавления или обновления видео.)

Пример

<yt:private/>

Дочерний по отношению к

media:group

yt:queryString

Тег <yt:queryString> указывает ключевое слово (слова) или строку запроса, связанные с подпиской.

Пример

<yt:queryString>Dog skateboarding</yt:queryString>

Дочерний по отношению к

entry

yt:racy

Тег <yt:racy> указывает, содержит ли видео содержание с ограниченным доступом. Если вы запрашиваете канал видео, содержание такого характера будет включаться в него только при наличии в API запроса параметра racy.

Пример

<yt:racy/>

Дочерний по отношению к

entry

yt:recorded

Тег <yt:recorded> указывает дату записи видео.

Пример

<yt:recorded>2003-08-03</yt:recorded>

Дочерний по отношению к

entry

yt:relationship

Тег <yt:relationship> указывает семейное положение пользователя согласно информации, приведенной в профиле пользователя YouTube.

Пример

<yt:relationship>taken</yt:relationship>

Дочерний по отношению к

entry

yt:school

Тег <yt:school> указывает школу, в которой учился пользователь, согласно информации, приведенной в профиле пользователя YouTube.

Пример

<yt:school>University of North Carolina</yt:school>

Дочерний по отношению к

entry

yt:state

Тег <yt:state> содержит информацию о состоянии видео. Для тех видео, которые не добавились или были отклонены после добавления, атрибут reasonCode и значение тега помогут определить причину проблемы.

Атрибуты

НазваниеФорматОписание
name Сложный Атрибут name указывает статус неопубликованного видео. Возможные значения – processing, rejected и failed.
reasonCode Сложный Атрибут reasonCode дает сведения о том, почему видео не добавилось или было отклонено после добавления. Тег <yt:state> не будет включать атрибут reasonCode, если значение атрибута name равно processing. Следующий список определяет возможные значения reasonCode для отклоненных или неудачных добавлений:
  • rejected

    • copyright – Видео нарушает авторские права.
    • inappropriate – Видео имеет неприемлемое содержание.
    • duplicate – Это видео - точная копия уже добавленного ранее видео.
    • termsOfUse – Видео нарушает условия использования.
    • suspended – Действие аккаунта, связанного с видео, приостановлено.
    • tooLong – Видео превышает 10 минут (максимальная продолжительность).
    • blocked – Видео заблокировано владельцем содержимого.

  • failed

    • cantProcess – YouTube не удалось преобразовать видеофайл.
    • invalidFormat – Добавленное видео имеет неправильный формат.
    • unsupportedCodec – Видео использует неподдерживаемый кодек.
    • empty – Добавленный файл пуст.
    • tooSmall – Добавленный файл слишком мал.

helpUrl Сложный Параметр helpUrl содержит ссылку на страницу Справочного центра YouTube, которая может помочь разработчику или владельцу видео определить причину, по которой добавление было неуспешным или было отклонено.

Пример

<yt:state name="rejected" reasonCode="tooLong" helpUrl="http://www.youtube.com/t/community_guidelines">Video is too long</yt:state>

Дочерний по отношению к

app:control

yt:statistics

Тег <yt:statistics> дает статистику о видео или пользователе. Тег <yt:statistics> не включается в запись видео, если значение атрибута viewCount0.

Атрибуты

НазваниеФорматОписание
viewCount Сложный Если атрибут viewCount относится к видео, атрибут указывает число его просмотров. Если атрибут viewCount относится к профилю пользователя, атрибут указывает число его просмотров.
videoWatchCount Сложный Атрибут videoWatchCount указывает число видео, которые пользователь посмотрел на YouTube. Атрибут videoWatchCount используется только тогда, когда в записи профиля пользователя есть тег <yt:statistics>.
subscriberCount Сложный Атрибут subscriberCount указывает число пользователей YouTube, подписавшихся на канал определенного пользователя YouTube. Атрибут subscriberCount используется только тогда, когда в записи профиля пользователя есть тег <yt:statistics>.
lastWebAccess Сложный Атрибут lastWebAccess указывает, когда данный пользователь последний раз пользовался YouTube.
favoriteCount Сложный Атрибут favoriteCount указывает число пользователей YouTube, добавивших видео в свой список избранных. Атрибут favoriteCount используется только тогда, когда в записи видео пользователя есть тег <yt:statistics>.

Пример

<yt:statistics viewCount='9' videoWatchCount='24' subscriberCount='1' lastWebAccess='2008-02-29T13:09:48.000-08:00'/>

Дочерний по отношению к

entry

yt:status

Тег <yt:status> определяет состояние знакомого. Этот тег появляется только при получении знакомых аутентифицированного в настоящий момент пользователя. В следующем списке – возможные значения этого тега:

  • Значение тега будет accepted, если аутентифицированный пользователь и знакомый обозначили друг друга друзьями.
  • Значение тега будет requested, если знакомый попросил, чтобы его добавили в список знакомых аутентифицированного пользователя, но запрос еще не принят (или еще не отклонен).
  • Значение тега будет pending, если аутентифицированный пользователь попросил, чтобы его добавили в список знакомых знакомого, но запрос еще не принят (или еще не отклонен).

Пример

<yt:status>accepted</yt:status>

Дочерний по отношению к

entry

yt:username

Тег <yt:username> указывает имя пользователя YouTube. В канале подписок или запросе добавления подписки, тег <yt:username> определяет владельца канала YouTube или список избранных, на который происходит подписка. В записи профиля, тег <yt:username> определяет пользователя, связанного с профилем. В записи знакомого пользователя, тег <yt:username> определяет знакомого вошедшего в систему пользователя.

Пример

<yt:username>andyland74</yt:username>

Дочерний по отношению к

entry

Справка по элементам Media RSS

media:category

Тег <media:category> определяет жанр или тег разработчика, описывающий видео. Раздел Список категорий добавляемых видео определяет категории видео YouTube, которые можно связать с видео. Каждое видео можно отнести к одной из категорий в этом списке.

Кроме того, всякое видео можно связать с одной или несколькими собственными категориями (ключевыми словами), используя схему категорий http://gdata.youtube.com/schemas/2007/developertags.cat. Более подробные сведения о тегах разработчика можно найти в разделе Присоединение тегов разработчика протокола.

Атрибуты

НазваниеФорматОписание
label Сложный Атрибут label указывает переведенное в элемент название категории YouTube, к которой относится видео.
scheme Сложный Атрибут scheme указывает URL, определяющий схему категоризации, связанную с меткой.

Пример

<media:category label='Sports' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'>Sports</media:category>

Дочерний по отношению к

media:group

media:content

Тег <media:content> дает URL и другую информацию о видео.

Атрибуты

НазваниеФорматОписание
url Сложный Атрибут url указывает URL объекта мультимедиа.
type Сложный Атрибут type указывает тип MIME объекта мультимедиа.
isDefault Сложный Атрибут isDefault означает, указывает ли соответствующий тег <media:content> источник мультимедиа группы мультимедиа по умолчанию. В ответе API данных YouTube, источник мультимедиа по умолчанию – URL встраиваемого проигрывателя видео (SWF).
expression Сложный Атрибут expression указывает, представляет ли объект видео фрагмент видео, полное видео или потоковое видео в реальном времени. Соответствующие (и единственные) возможные значения этого атрибута – sample, full и nonstop.
duration Сложный Атрибут duration дает длину видео в секундах.
yt:format Сложный Атрибут yt:format указывает формат объекта видео, описанного в элементе <media:content>. В следующем списке – возможные значения этого атрибута:

  • 1 – Потоковый URL RTSP для воспроизведения мобильного видео. Видео H.263 (до 176x144) и звук AMR.
  • 5 – URL HTTP на встраиваемый проигрыватель (SWF) для этого видео. Формат доступен только для встраиваемого видео. Разработчики часто добавляют к запросам &format=5, чтобы ограничить результаты теми видео, которые можно встроить на свой сайт.
  • 6 – Потоковый URL RTSP для воспроизведения мобильного видео. Видео MPEG-4 SP (до 176x144) и аудио AAC.

Пример

<media:content url='http://www.youtube.com/v/8aYQ_wjmriQ' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='166' yt:format='5'/>

Дочерний по отношению к

media:group

media:description

Тег <media:description> содержит сводку или описание видео. Это поле обязательно в запросах добавления или обновления метаданных видео. Описание должно быть составлено из предложений, а не из ключевых слов, и может отображаться в результатах поиска. Описание ограничено 5000 символами и может содержать любые символы UTF-8, кроме < и >.

Атрибуты

НазваниеФорматОписание
type Сложный Атрибут type указывает тип текста, приведенного в значении тега. Каналы содержимого YouTube используют формат обычного текста (type=plain).

Пример

<media:description type="plain">Granny takes crocheting to the extreme during a rodeo and while surfing.</media:description>

Дочерний по отношению к

media:group

media:group

Тег <media:group> включает метаданные о видео.

Пример

<media:group>

Дочерний по отношению к

entry

Дочерние

media:title, media:description, media:keywords, media:category, media:content, media:player, media:thumbnail, yt:duration?, yt:private?, yt:noembed?

media:keywords

Тег <media:keywords> содержит список слов или фраз, связанных с видео, разделенных запятыми. Для каждого видео в канале необходимо дать хотя бы одно ключевое слово. Это поле ограничено 120 символами и может содержать любые символы UTF-8, кроме < и <. Кроме того, ключевые слова не могут быть длиннее 25 символов.

Атрибуты

НазваниеФорматОписание
scheme Текст Атрибут scheme указывает URL, определяющий схему категоризации, связанную с меткой.

  • В запросе добавления подписки, значение атрибута scheme должно быть http://gdata.youtube.com/schemas/2007/subscriptiontypes.cat.
  • В запросе добавления знакомого, значение атрибута scheme должно быть http://gdata.youtube.com/schemas/2007/contact.cat.

Пример

<media:keywords>rodeo, surfing, crochet</media:keywords>

Дочерний по отношению к

media:group

media:player

Тег <media:player> указывает URL, по которому полноразмерное видео доступно в проигрывателе, работающем в браузере. В ответе API данных YouTube, тег <media:player> указывает URL страницы веб-сайта YouTube, на которой воспроизводится видео.

Атрибуты

НазваниеФорматОписание
url Сложный Атрибут url определяет URL, использующий проигрыватель видео для отображения видео в окне браузера.

Пример

<media:player url='http://www.youtube.com/watch?v=8aYQ_wjmriQ'/>

Дочерний по отношению к

media:group

media:thumbnail

Тег <media:thumbnail> указывает расположение изображения, которое можно использовать для представления видео в результатах поиска. Канал видео может ссылаться на несколько таких эскизов, которые могут иметь несколько вариантов размеров. Можно выбрать размер эскиза, наиболее подходящий для вашего пользовательского интерфейса.

Атрибуты

НазваниеФорматОписание
url Сложный Атрибут url указывает URL эскиза.
height Сложный Атрибут height указывает высоту эскиза.
width Сложный Атрибут width указывает ширину эскиза.
time Сложный Атрибут time указывает время, в которое кадр эскиза появляется в видео. Значение атрибута выражается в Normal Play Time (нормальное время воспроизведения) (NTP) DSM-CC, как в RTSP.

Пример

<media:thumbnail url='http://img.youtube.com/vi/8aYQ_wjmriQ/2.jpg' height='97' width='130' time='00:01:23'/>

Дочерний по отношению к

entry, media:group

media:title

Тег <media:title> определяет название видео. Это поле ограничено 60 символами и может содержать любые символы UTF-8, кроме < и >.

Атрибуты

НазваниеФорматОписание
type Сложный Атрибут type указывает тип текста, приведенного в значении тега. Каналы содержимого YouTube используют формат обычного текста (type=plain).

Пример

<media:title type="plain">Extreme crocheting in high surf, rodeo</media:title>

Дочерний по отношению к

media:group

Справка по элементам GData

gd:comments

Тег <gd:comments> содержит ссылку на канал комментариев к видео.

Пример

<gd:comments>

Дочерний по отношению к

entry

Дочерние

gd:feedLink

gd:feedLink

Тег <gd:feedLink> указывает логически вложенный канал. Например, канал комментариев логически вложен в запись видео. Сходным образом, канал одного плейлиста логически вложен в запись плейлиста в канале плейлистов пользователя.

Атрибуты

НазваниеФорматОписание
rel Сложный Атрибут rel определяет, как URI, указанный в атрибуте href, относится к текущему набору результатов:

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

  • Если значение атрибута reledit, то ссылка указывает URL для изменения записи в канале.

  • Если значение атрибута relalternate, ссылка определяет URL, дающий другое представление канала, например, ссылку на представление этой записи канала в HTML.

  • Если значение атрибута relprev, то ссылка указывает на предыдущую страницу набора результатов канала.

  • Если значение атрибута relnext, то ссылка указывает на следующую страницу набора результатов канала.

  • Если значение атрибута relrelated, то ссылка указывает на другой канал, похожий на этот канал. Например, если канал содержит список знакомых, ссылка на похожий канал для знакомого может указывать на канал профиля этого знакомого.

  • Атрибут rel может также содержать ссылку на схему, определяющую тип элемента, содержащегося в соответствующей ссылке. Например, запись видео содержит теги <link>, указывающие на ответы, оценки, жалобы и похожие видео для этого видео. Некоторые из этих тегов <link> могут применяться для получения дополнительных каналов, например, похожих видео и видеоответов, а другие можно использовать для размещения данных, например, оценок или жалоб.

href Сложный Атрибут href указывает URI, определяющий ресурс, указанный в теге <link>.
gd:countHint Сложный gd:countHint указывает количество записей в похожем канале. Например, если тег <gd:feedLink> указывает ссылку на канал комментариев к видео, атрибут gd:countHint указвывает, сколько комментариев есть к этому видео.

Пример

<gd:feedLink href='http://gdata.youtube.com/feeds/api/videos/8aYQ_wjmxiQ/comments' countHint='0'/>

Дочерний по отношению к

entry, gd:comments

gd:rating

Тег <gd:rating> указывает оценку, присваиваемую видео (в запросе добавления оценки) или текущую среднюю оценку видео на основе объединенных оценок пользователей YouTube.

Атрибуты

НазваниеФорматОписание
min Сложный Атрибут min указывает минимальную оценку, которую можно присвоить видео. Это значение должно быть 1.
max Сложный Атрибут max указывает максимальную оценку, которую можно присвоить видео. Это значение должно быть 5.
numRaters Сложный Атрибут numRaters указывает, сколько пользователей оценило видео. Этот атрибут не используется в запросе добавления оценки.
average Сложный Атрибут average указывает среднюю оценку видео. Этот атрибут не используется в запросе добавления оценки.

Пример

<gd:rating min='1' max='5' numRaters='7773' average='4.75'/>

Дочерний по отношению к

entry

Справка по элементам GeoRSS

georss:where

Тег <georss:where> содержит сведения о географическом положении. Заметьте, что если с видео уже связано географическое положение, эту информацию необходимо включать в последующие запросы обновления сведений о видео; в противном случае, информация о положении будет удалена.

Пример

<georss:where>

Дочерний по отношению к

entry

Дочерние

gml:Point

Справка по элементам GML

gml:Point

Тег <gml:Point> содержит сведения об определенном географическом положении. Проекция точек по умолчанию – WGS84. Географическое положение съемки видео можно указать в запросах добавления или обновления метаданных видео. Заметьте, что если с видео уже связано географическое положение, эту информацию необходимо включать в последующие запросы обновления сведений о видео; в противном случае, информация о положении будет удалена.

Пример

<gml:Point>

Дочерний по отношению к

georss:where

Дочерние

gml:pos

gml:pos

Тег <gml:pos> указывает координаты географической точки. Проекция точек по умолчанию – WGS84. Заметьте, что если с видео уже связано географическое положение, эту информацию необходимо включать в последующие запросы обновления сведений о видео; в противном случае, информация о положении будет удалена.

Пример

<gml:pos>47.367 8.55</gml:pos>

Дочерний по отношению к

gml:Point

Справка по элементам протокола публикации Atom

app:control

Тег <app:control> означает, что видео не опубликовано. Этот тег возвращается только в канале добавленного аутентифицированного в настоящий момент пользователя.

Пример

<app:control>

Дочерний по отношению к

entry

Дочерние

app:draft, yt:state

app:draft

Тег <app:draft> указывает, находится ли видео в состоянии черновика (не опубликовано). Этот тег включается только для неопубликованных видео, поэтому он всегда имеет значение yes.

Пример

<app:draft>yes</app:draft>

Дочерний по отношению к

app:control

Справка по элементам ответов API добавления через браузер

response

Тег <response> содержит возвращаемый YouTube ответ на запрос API добавления метаданных для нового видео с помощью добавления через браузер.

Пример

<response>

Дочерние

url, token

token

Тег <token> содержится в возвращаемом YouTube ответе на запрос API добавления метаданных для нового видео с помощью добавления через браузер. На странице должен быть идентификатор, позволяющий пользователю добавлять новое видео прямо на YouTube.

Пример

<token>AEwbFAQEvf3xox...</token>

Дочерний по отношению к

response

url

Тег <url> содержится в возвращаемом YouTube ответе на запрос API добавления метаданных для нового видео с помощью добавления через браузер. Форма на вашей веб-странице, позволяющая пользователю добавлять видеофайл на YouTube будет подаваться на этот URL.

Пример

<url>http://uploads.gdata.youtube.com/action/FormUpload/AEF3087AUD</url>

Дочерний по отношению к

response

Справка по элементам ответов при ошибках

code

Тег <code> поясняет причину неудачи запроса API. В следующих списках определены возможные значения тега <code> на основании значения соответствующего тега <domain>:

  • yt:validation:

    • required – Этот код означает, что обязательного поля нет либо оно пусто.
    • deprecated – Этот код означает, что значение элемента не поддерживается или недействительно. Например, вышедшее из употребления название категории видео нельзя связать с новыми или обновляемыми видео.
    • invalid_format – Этот код означает, что значение элемента XML не соответствует ожидаемому формату. Например, вы получите эту ошибку, если укажете неправильные координаты в теге <gml:pos>.
    • invalid_character – Этот код означает, что значения поля XML содержит неправильный символ. Например, названия видео не могут содержать символ "меньше" (<).
    • too_long – Этот код означает, что значение элемента XML превышает максимальную допустимую длину. Например, названия видео должны быть короче 60 символов.

  • yt:quota:

    • too_many_recent_calls – Этот код означает, что серверы API получили слишком много вызовов от одного и того же вызывающего за короткий промежуток времени. Эта ошибка не указывает места.
    • too_many_entries – Этот код означает, что пользователь пытается превысить предел хранения для своего аккаунта и должен удалить существующие записи, прежде чем добавить новые.

  • yt:authentication:

    • InvalidToken – Этот код означает, что идентификатор аутентификации, указанный в заголовке Authorization, недействителен.
    • TokenExpired – Этот код означает, что срок действия идентификатора аутентификации, указанного в заголовке Authorization, истек.

Пример

<code>required</code>

Дочерний по отношению к

error

domain

Тег <domain> определяет ошибку, которая привела к неудаче запроса API. В следующем списке приведены возможные значения тега <domain>:

  • Ошибка yt:validation сообщает о проблема, связанной со значением элемента XML в запросе добавления или обновления записи. Функции API, которые вставляют или обновляют видео и другие данные, могут возвращать ошибки yt:validation. Ошибки проверки обычно сопровождаются HTTP-кодом ответа 400.

  • Ошибка yt:quota указывает на проблему, связанную с неправильным использованием API.

  • Ошибка yt:authentication указывает на проблему, связанную с неправильно аутентифицированным запросом, пытающимся выполнить функцию API, требующую аутентификации. Ошибки аутентификации могут определяться HTTP-кодами ответов 401 или 403.

Пример

<domain>yt:validation</domain>

Дочерний по отношению к

error

error

Тег <error> содержит информацию об одной ошибке, которая привела к неудаче запроса API.

Пример

<error>

Дочерний по отношению к

errors

Дочерние

domain, code, location

errors

Тег <errors> содержит ответ API, описывающий ошибки, которые привели к неудаче соответствующего запроса API.

Пример

<errors>

Дочерние

error+

location

Тег <location> дает информацию об элементах запроса, которые привели к ошибке.

  • Если значение тега <domain>yt:validation, то тег <location> определяет положение ошибки как Xpath, указывающий на тег XML, вызвавший ошибку запроса. Расположение Xpath указывается относительно тега <entry> в запросе.

  • Если значение тега <domain>yt:quota, а значение тега <code>too_many_recent_calls, ответ API не будет включать тега <location>.

  • Если значение тега <domain>yt:quota, а тега <code>too_many_entries, то тег <location> указывает канал, вызвавший ошибку.

  • Если значение тега <domain>yt:authentication, то тег <location>, если он есть, определит, что вызвало ошибку аутентификации.

Атрибуты

НазваниеФорматОписание
type Сложный Атрибут type обеспечивает контекст для значения тега <location>. Атрибут type может иметь любое из следующих значений.
  • xpath – Запрос XML содержит ошибку по указанному пути, относительно тега <entry> запроса.
  • parameter – Запрос API содержит ошибку в параметре, указанном в теге <location>.
  • header – Запрос API содержит ошибку в указанном заголовке HTTP-запроса.
  • other – Запрос API содержит другой тип ошибки. Это значение используется для определения ошибок квоты, имеющих значениеcode too_many_entries.

Пример

<location type='xpath'>media:group/media:title/text()</location>

Дочерний по отношению к

error

Приложения

Список категорий добавляемых видео

Документ категорий YouTube, который можно загрузить со страницы http://gdata.youtube.com/schemas/2007/categories.cat, определяет категории, которые можно использовать для классификации видео. Документ категорий – это файл XML, определяющий категории и указывающий, можно ли добавлять к ним новые видео и можно ли найти эту категорию на YouTube.

Фрагмент ниже показывает записи категорий "Entertainment" и "Nonprofit & Activism" ("Кино и ТВ" и "Общественные акции") в документе категорий YouTube от 2 января 2008 года. Заметьте, что видео можно относить к обоим категориям, но только категория Entertainment доступна в тот момент для поиска на YouTube. Как показано в примере, присутствие тега <yt:browsable> означает, что соответствующая категория доступна для поиска на YouTube, а присутствие тега <yt:assignable> означает, что к этой категории можно добавлять новые видео. (К категориям, которые не обозначены тегом <yt:assignable> как открытые, нельзя добавлять новые видео.)

<atom:category term='Entertainment' label='Entertainment'>
  <yt:browsable/>
  <yt:assignable/>
</atom:category>
<atom:category term='Nonprofit' label='Nonprofit & Activism'>
  <yt:assignable/>
</atom:category>

В запросе API добавления значение тега <media:category> должно быть установлено на значение атрибута <atom:category> тега term для соответствующей категории. Следующий пример показывает, как использовать тег <media:category> для присвоения новому видео категории Nonprofit & Activism, приведенной во фрагменте схемы выше.

<media:category
  scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Nonprofit</media:category>

Перевод URL

Для создания запроса поиска HTTP, необходимо следовать некоторым правилам, чтобы Google мог правильно обработать ваш HTTP-запрос и выдал адекватный ответ.

Схема URL HTTP указывает, что запрос HTTP URL может содержать только определенные символы:

  • Буквенно-цифровые символы: [a-z][A-Z][0-9]
  • Специальные символы: $ - _ . | + ! * ' ( )
  • Зарезервированные символы: ; / ? : @ = &

Google использует зарезервированные символы для декодирования URL и использует некоторые специальные символы для поисковых запросов. Поэтому следует перевести в URL все не буквенно-цифровые символы, которые есть в значениях параметров поиска.

Для переведения строки в URL, превратите последовательности пробелов в один "+" (символ плюс) и замените все остальные не буквенно-цифровые символы шестнадцатеричными значениями этих символов. Шестнадцатеричные коды специальных и зарезервированных символов, перечисленных выше, приведены в следующей таблице. Каждый их них должен быть переведен в URL в значениях параметров запросов.

Символ Шестнадцатеричный
код
$ %24
- %2D
_ %5F
. %2E
+ %2B
! %21
* %2A
" %22
' %27
( %28
) %29
; %3B
/ %2F
? %3F
: %3A
@ %40
= %3D
& %26
| %7C

Examples

Исходная строка Строка, переведенная в URL
punch&judy punch%26judy
O'Reilly O%27Reilly

Дополнительные сведения о переводе в URL можно найти в RFC 2396 и W3C.