Поиск видео с помощью API Bing для поиска видео
Предупреждение
30 октября 2020 г. API поиска Bing перемещены из служб ИИ Azure в службы поиска Bing. Эта документация предоставляется только для справки. Чтобы ознакомиться с обновленной документацией, смотрите документацию по API поиска Bing . Инструкции по созданию новых ресурсов Azure для поиска Bing см. в статье Создание ресурса поиска Bing с помощьюAzure Marketplace.
API поиска видео Bing упрощает интеграцию возможностей поиска когнитивных новостей Bing в ваши приложения. Хотя API в основном находит и возвращает соответствующие видео из Интернета, он предоставляет несколько функций для интеллектуального и ориентированного получения видео в Интернете.
Получение видео
Чтобы получить видео, связанные с поисковым термином пользователя из Интернета, отправьте следующий запрос GET:
GET https://api.cognitive.microsoft.com/bing/v7.0/videos/search?q=sailing+dinghies&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-Search-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Все запросы должны выполняться с сервера.
Если вы впервые вызываете любой из API Bing, не включайте заголовок идентификатора клиента. Включайте только идентификатор клиента, если вы ранее вызвали API Bing, и Bing вернул идентификатор клиента для комбинации пользователя и устройства.
Чтобы получить видео из определенного домена, используйте сайт : оператор запроса.
GET https://api.cognitive.microsoft.com/bing/v7.0/videos/search?q=sailing+dinghies+site:contososailing.com&mkt=en-us HTTP/1.1
Ответ содержит ответ Видео, который включает список видео, которые Bing считает относящимися к запросу. Каждый объект Video в списке содержит URL-адрес видео, его длительность, размеры и формат кодирования среди других атрибутов. Видео-объект также содержит URL-адрес эскиза видео и измерений эскиза.
{
"_type" : "Videos",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=81EF7545...",
"totalEstimatedMatches" : 1000,
"value" : [
{
"name" : "How to sail - What to Wear for Dinghy Sailing",
"description" : "An informative video on what to wear when...",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=81EF7...",
"thumbnailUrl" : "https:\/\/tse4.mm.bing.net\/th?id=OVP.DYW...",
"datePublished" : "2014-03-04T11:51:53",
"publisher" : [
{
"name" : "Fabrikam"
}
],
"creator" :
{
"name" : "Marcus Appel"
},
"contentUrl" : "https:\/\/www.fabrikam.com\/watch?v=vzmPjZ--g",
"hostPageUrl" : "https:\/\/www.bing.com\/cr?IG=81EF7545D569...",
"encodingFormat" : "h264",
"hostPageDisplayUrl" : "https:\/\/www.fabrikam.com\/watch?v=vzmPjZ--g",
"width" : 1280,
"height" : 720,
"duration" : "PT2M47S",
"motionThumbnailUrl" : "https:\/\/tse3.mm.bing.net\/th?id=OM.Y62...",
"embedHtml" : "<iframe width=\"1280\" height=\"720\" src=\"https:...><\/iframe>",
"allowHttpsEmbed" : true,
"viewCount" : 8743,
"thumbnail" :
{
"width" : 300,
"height" : 168
},
"videoId" : "6DB795E11A6E3CBAAD636DB795E113CBAAD63",
"allowMobileEmbed" : true,
"isSuperfresh" : false
},
...
],
"queryExpansions" : [...],
"nextOffsetAddCount" : 0,
"pivotSuggestions" : [...]
}
Эскизы видео
Вы можете отобразить все или подмножество миниатюр видео, возвращаемых API поиска видео Bing. Если вы отображаете подмножество, укажите пользователю возможность просмотреть оставшиеся видео. В рамках требований к использованию и отображению API Bing , вы должны отображать видео в порядке, указанном в ответе. Сведения об изменении размера эскиза см. в изменения размера и обрезки эскизов.
При наведении указателя мыши на эскиз можно использовать motionThumbnailUrl для воспроизведения эскиза видео. При отображении не забудьте атрибутировать эскиз движения.
При нажатии на эскиз есть три варианта просмотра видео:
- Используйте hostPageUrl, чтобы просмотреть видео на веб-сайте хоста (например, YouTube)
- Использование webSearchUrl для просмотра видео в браузере видео Bing
- Использование embdedHtml для внедрения видео в собственный интерфейс
Не забудьте использовать издателя и создателя, чтобы атрибутировать видео при его воспроизведении.
Дополнительные сведения об использовании videoId для получения аналитических сведений о видео см. в разделе Video Insights.
Фильтрация видео
По умолчанию API поиска видео возвращает все видео, относящиеся к запросу. Если требуется только бесплатные видео или видео менее пяти минут, вы будете использовать следующие параметры запроса фильтра:
- цены— фильтрация видео по ценам (например, видео, которые бесплатны или за которые нужно платить).
- разрешение— фильтрация видео по разрешению (например, видео с разрешением 720p или выше)
- videoLength— фильтрация видео по длине видео (например, видео, которые меньше пяти минут)
- свежесть— фильтрация видео по возрасту (например, видео, обнаруженные Bing за прошлую неделю)
Чтобы получить видео с определенного домена, в строку запроса включите поисковый оператор site::.
Примечание.
В зависимости от запроса, если вы используете оператор запроса site:
, существует вероятность того, что ответ содержит содержимое для взрослых независимо от параметра safeSearch. Вы должны использовать site:
только в том случае, если вы знаете о содержимом на сайте, и ваш сценарий поддерживает возможность содержимого для взрослых.
В следующем примере показано, как получить бесплатные видео из ContosoSailing.com с разрешением 720p или выше, и что Bing обнаружил в прошлом месяце.
GET https://api.cognitive.microsoft.com/bing/v7.0/videos/search?q=sailing+dinghies+site:contososailing.com&pricing=free&freshness=month&resolution=720p&mkt=en-us HTTP/1.1
Ocp-Apim-Subscription-Key: 123456789ABCDE
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 822)
X-MSEdge-ClientIP: 999.999.999.999
X-Search-Location: lat:47.60357;long:-122.3295;re:100
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>
Host: api.cognitive.microsoft.com
Расширение запроса
Если Bing может развернуть запрос, чтобы сузить исходный поиск, объект Видео содержит поле queryExpansions
. Например, если запрос был очистка водостоков, развернутые запросы могут быть: очистка водостоков средства, очистка водостоков с земли, очистка водостоков машинаи легкая очистка водостоков.
В следующем примере показаны развернутые запросы для очистка водостоков.
{
"_type" : "Videos",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=B52FBC5...",
"totalEstimatedMatches" : 1000,
"value" : [...],
"nextOffsetAddCount" : 4,
"queryExpansions" : [
{
"text" : "Gutter Cleaning Tools",
"displayText" : "Tools",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=B52FB....",
"searchLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v5...",
"thumbnail" : {
"thumbnailUrl" : "https:\/\/tse4.mm.bing.net\/th?q=Gutter..."
}
},
...
]
"pivotSuggestions" : [...],
}
Поле queryExpansions
содержит список объектов запроса. Поле text
содержит развернутый запрос, а поле displayText
содержит термин расширения. Вы можете использовать поля текста и эскиза для отображения развернутых строк запроса пользователю в случае, если развернутая строка запроса действительно является тем, что они ищут. Сделайте эскиз и текст кликабельными по URL-адресу webSearchUrl
или URL-адресу searchLink
. Используйте webSearchUrl
, чтобы отправить пользователя в результаты поиска Bing или searchLink
, если вы предоставляете собственную страницу результатов.
Поворот запроса
Если Bing может сегментировать исходный поисковый запрос, объект Видео содержит поле pivotSuggestions
. Например, если исходный запрос был очистка желобов, Bing может сегментировать запрос на очистка и желоба.
В следующем примере показаны предложения по очистке водостоков .
{
"_type" : "Videos",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=B52FBC...",
"totalEstimatedMatches" : 1000,
"value" : [...],
"nextOffsetAddCount" : 0,
"queryExpansions" : [...],
"pivotSuggestions" : [
{
"pivot" : "cleaning",
"suggestions" : [
{
"text" : "Gutter Repair",
"displayText" : "Repair",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=B52...",
"searchLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v5\/videos...",
"thumbnail" : {
"thumbnailUrl" : "https:\/\/tse3.mm.bing.net\/th?q=Gutter..."
}
},
...
]
},
{
"pivot" : "gutters",
"suggestions" : [
{
"text" : "Window Cleaning",
"displayText" : "Window",
"webSearchUrl" : "https:\/\/www.bing.com\/cr?IG=B52FBC59...",
"searchLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v5...",
"thumbnail" : {
"thumbnailUrl" : "https:\/\/tse2.mm.bing.net\/th?q=Window..."
}
},
...
]
}
]
}
Для каждой сводной таблицы ответ содержит список объектов запроса, содержащих предлагаемые запросы. Поле text
содержит предлагаемый запрос, а поле displayText
содержит термин, заменяющий опорную точку в исходном запросе. Например, очистка окна.
Вы можете использовать поля text
и thumbnail
для отображения развернутых строк запроса пользователю в случае, если развернутая строка запроса действительно то, что они ищут. Сделайте эскиз и текст кликабельными, используя URL-адрес webSearchUrl
или URL-адрес searchLink
. Используйте webSearchUrl
, чтобы отправить пользователя в результаты поиска Bing или searchLink
, если вы предоставляете собственную страницу результатов.
Запросы на ограничение скорости
Служба и тип подписки определяют количество запросов в секунду (QPS), которые можно сделать. Убедитесь, что ваше приложение включало логику по соблюдению вашей квоты. Если ограничение QPS выполнено или превышено, запрос завершается ошибкой и возвращается код состояния HTTP 429. Ответ содержит заголовок Retry-After
, указывающий, сколько времени необходимо ждать перед отправкой другого запроса.
Отказ в обслуживании против регулирования
Служба делает различие между атакой типа "отказ в обслуживании" и нарушением QPS. Если служба подозревает атаку DoS, запрос завершается успешно (код состояния HTTP равен 200 ОК). Однако текст ответа пуст.