Найти тему

Гугл-таблицы. Парсинг ютуб по-честному

Оглавление

А что если не ломиться в открытую дверь? Если нужны данные от ютуба, может можно ютуб попросить эти данные дать? В двух прошлых статьях мы рассмотрели варианты парсинга веб-страницы, которую ютюб отдает браузеру и извлечение из нее данных, сегодня мы попробуем попросить ютюб дать эти данные в удобном для нас виде.

Это третья в цикле статей про парсинг ютуба, и пятая на тему парсинга вообще. Вот ссылки на предыдущие две:

Введение. Что такое API?

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

  • фронтенд — часть, видимая пользователю: набор из html файлов, скриптов, изображений, таблиц стилей и других компонентов, которые пользователь через браузер, и которые в браузере отображаются как веб-страница.
  • бэкенд — часть, которая невидима пользователю, запущенная на сервере. Эта часть получает от пользователя запросы на веб-страницу, запрашивает данные из систем хранения (база данных или другие) и компонует содержимое “под пользователя”, с учетом прав доступа, настроек, типа устройства, с которого пришел запрос.
  • база данных или система хранения данных — в базе лежит информация о пользователе, его контенте, настройках, доступах и другая внутренняя информация. “Тяжелые” файлы, например, видео, могут лежать в системах хранения данных.

API (Application Programming Interface) — это специально оговоренный язык, на котором могут коммуницировать приложения, в том числе, фронтенд с бэкендом. Чем нам это может быть полезно? С помощью API зачастую можно получить больше данных, чем через прямой парсинг. Но на доступ к API могут быть свои ограничения: по количеству запросов, по типу запросов или другие.

Используем API

Нам повезло, для Ютюба есть публичный API, с примерами и проверкой кода: https://developers.google.com/youtube/v3/docs. Нам повезло еще раз, и для гугл-таблиц есть уже готовый модуль API Youtube, нужно его только подключить:

  • Открываем редактор скриптов
  • В левой панели в раскрыващейся вкладке “Сервисы” жмем на плюс
-2
  • Листаем список вниз и почти в самом низу находим “YouTube Data API v3” - нажимаем кнопку “Добавить” (проверьте, чтобы идентификатор соответствовал указанному на скриншоте, или поменяйте потом в коде скрипта)
-3

Пол дела сделано. Теперь нужно написать код скрипта:

Воспользуемся заготовкой из прошлой статьи и добавим функцию “GetData

Через API можно получить очень много информации (подробнее смотрите в документации), в частности "Snippet", куда входит информация о видео (название, описание, длительность, размеры и картинки-превью), и “Statistics”, куда входят просмотры, лайки, дизлайки.

Запрашиваем данные через API мы следующей командой:

var response  =  YouTube.Videos.list( "snippet,contentDetails,statistics",  {"id": id})

Осталось только вывести всю эту информацию с помощью функции appendRow

Заключение

Делюсь с вами гугл-таблицей, где скрипт уже реализован: https://docs.google.com/spreadsheets/d/1HRgsMXeTnnnfoXruNkiXO14hqnMPs6gzlVP4j7ZRrXY/edit?usp=sharing

А самые пытливые из вас могут найти и третий (самый правильный!) способ получения данных из ютюба, про который я расскажу в следующей статье.

Хотите видео с пошаговым объяснением что как и почему?

Я не очень люблю снимать видео, хотя, говорят, что это очень востребованный формат. Напишите в комментариях или в личное сообщение, если вы хотите видео-версию статьи.

Что бы еще такого спарсить?

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