ОБНОВЛЕНИЕ (12 мая 2015 г.
): Вынужден сообщить Вам, что по состоянию на 1 мая 2015 года данные устарели.
Youtube изменил правила API: теперь невозможно делать анонимные запросы.
Для получения данных необходим API-ключ авторизации.
Фон
Совсем недавно у нас возникла ситуация, когда все ссылки YouTube и Vimeo на видеоролики, количество просмотров которых нам нужно было отобразить на сайте, «потерялись».Это необходимо для того, чтобы потенциальные инвесторы и партнеры могли видеть текущие показатели наших серийных проектов.
Скрипт обновляет данные раз в сутки, хотя я неоднократно просил обновить показатели в реальном времени.
Я не программировал уже много лет, ушел в совершенно другой вид деятельности и сейчас возглавляю анимационную студию.
Меня конечно обескуражила возникшая ситуация с потерей данных, я организовал ругань и так далее, но это не имеет к делу никакого отношения.
Ссылки восстановились, но счетчик меня смутил.
Пока шло восстановление, я собирал цифры вручную в большие группы, и теперь, после того как скрипт их перебрал и выдал результат, они катастрофически не реагировали.
На мои претензии к программистам получил ответ, что все ок, хоть проверьте.
Не желая слишком усложнять, я решил пойти очень странным путём: просканировать ссылки с помощью Google.Sheets и посмотреть на результаты, а заодно проверить, действительно ли это такой мучительный процесс: просканировать несколько сотен ссылок и получить данные по просмотрам.
Я потратил на свой эксперимент несколько часов и выяснил, что это не такое уж и хитрое дело, собирать данные в реальном времени довольно просто, но скрипт на нашем сайте на самом деле работает криво и собирает данные неточно, теряя по пути миллионы просмотров.
ИмпортXML и Vimeo
Вспомнив, что я каким-то образом разобрался с текущими курсами доллара и евро, я нашел старый документ и посмотрел в нем удобную функцию Google.Sheets — это ImportXML (у Google есть 4 функции, которые удобно вытягивают данные из сети: ImportXML, ImportDATA, ImportHTML, ImportFEED).В ячейке таблицы просто пишем «=ImportXML» и Google подскажет, как правильно извлечь необходимые данные.
Я зашел на Vimeo и нашел страницу с API и описание того, где взять XML с видеоданными.
Все банально: http://vimeo.com/api/v2/video/00000000.xml где 00000000 — идентификатор видео (взят из адресной строки на Vimeo) Открыв XML, я увидел, что всё что мне нужно.
Контейнер третьего порядка содержал данные просмотра.
Таким образом получите данные о просмотрах в Google.Sheets, например здесь это видео , вы можете просто ввести в ячейку следующее значение:
В первых кавычках идет ссылка на XML, во вторых кавычках указываем XPath до нужного контейнера.=IMPORTXML(" http://vimeo.com/api/v2/video/17589726.xml ", "http://videos/video/stats_number_of_plays")
Дополнительную информацию о синтаксисе XPath можно найти здесь.
Импортируйте JSON и YouTube.
С YouTube оказалось немного сложнее.Да, они предоставляют данные о видео, но в контейнерах JSON. Найти файл сводки оказалось не сложнее, чем на Vimeo. Все также не сложно: http://gdata.youtube.com/feeds/api/videos/00000000Эv=1&alt=json где 00000000 — идентификатор видео (берётся из адресной строки на YouTube) Но сам JSON — лично для меня новая история.
Я пробовал обращаться к нему и так и сяк, и в результате подумал, что стоит поискать что-то вроде «ImportJSON», и не ошибся.
Я нашел скрипт для добавления такой возможности в Google.Sheet, добавил и сразу подружился с JSON. Сам текст сценария здесь по ссылке .
Вам нужно установить скрипт в Google.Sheets следующим образом: 1. Создайте новую таблицу Google. 2. Нажмите Инструменты -> Редактор скриптов.
3. Нажмите «Создать сценарий для электронной таблицы».
4. Удалите новый шаблон сценария и вставьте текст нашего скрипта .
5. Переименуйте его в ImportJSON.gs и сохраните.
6. Вернитесь к своему документу, где новая функция «=ImportJSON()» уже работает в полную силу.
Открыв JSON с YouTube, мы можем найти все необходимые данные о видео.
у контейнера есть атрибут viewCount, который нам и нужен.
Таким образом получите данные о просмотрах в Google.Sheets, например здесь это видео , вы можете просто ввести в ячейку следующее значение: =ImportJSON(" http://gdata.youtube.com/feeds/api/videos/GRNZ0wwNOTcЭv=2&alt=json ", "/entry/yt$statistics/viewCount", "noHeaders")
Вот и все.
Кстати, в итоге оказалось, что Google.Sheets вычисляет данные сотен видеороликов.
менее чем за одну минуту.
Я был прав.
Программисты меня просто обманули.
Получение данных из XML и JSON-контейнеров с помощью PHP — еще менее сложная задача, чем та, которую я перед собой поставил.
Более того, и YouTube, и Vimeo предлагают готовые PHP-решения для разработчиков.
Всем удачи! Я надеюсь, что эта короткая статья окажется полезной.
Теги: #Google #Excel #youtube #vimeo #json #import #views #разработка сайтов #xml #api
-
Тонкости Scala: Изучаем Canbuildfrom
19 Oct, 24 -
Webalta Готовится Запустить Почту
19 Oct, 24 -
Компоненты Zend Framework Отдельно
19 Oct, 24 -
Трогаем Дальше =)
19 Oct, 24