06.09.2025 11:00
3

Анализ истории просмотров Youtube

Задумывались, сколько времени вы проводите за просмотром видео? Давайте считать.

Получение данных

Единственная возможность получить эту информацию - Google Takeout. Кто не знает - это сервис, который Youtube заставили сделать регуляторы. Через него можно скачать всю информацию, какую только знает Google о вас.

Истории поисковых запросов, посещения сервисов гугла, геолокация устройств на андроиде, записи из календаря и все остальные данные из 70 разных сервисов. Может оказаться, что у Google на вас больше данных, чем вы сами знаете.

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

Youtube and Youtube Music (history / JSON)

settings-yt

settings-history

settings-json

Здесь будет json с данными по просмотрам видео и прослушиванию музыки, если вы её слушали в Youtube Music.

Google не хранит историю просмотров за все время, у меня здесь оказались данные только с февраля 2021 года.

My Activity (Youtube / JSON).

settings-my-activity

settings-my-activity-yt

settings-my-activity-json

My Activity - это данные по "активности" - лайки, дизлайки и в том числе просмотры видео на Youtube. Здесь у меня данные по просмотрам с марта 2018 года, по лайкам - с июля 2010. Да и то скорее потому, что в 2010 я завел аккаунт в google.

Просмотры пересекаются с просмотрами из прошлого источника, поэтому мы их будем дедуплицировать (исключать дубли) по времени просмотра и id видео. В целом можно ограничиться только данными из My Activity, но не уверен что у всех будет та же картина, так в скрипте сделал поддержку обоих источников и автоматическое исключение дублей.

Разбираем данные

После формирования архива, скачивания и распаковки данные будут иметь примерно такую структуру:

Takeout/
├── YouTube and YouTube Music/
│   └── history/
│       └── watch-history.json
└── My Activity/
    └── YouTube/
        └── MyActivity.json

Примеры из watch-history.json:

{
  "header": "YouTube",
  "title": "Watched https://www.youtube.com/watch?v\u003dcK3NMZAUKGw",
  "titleUrl": "https://www.youtube.com/watch?v\u003dcK3NMZAUKGw",
  "time": "2021-02-04T20:54:00.428Z",
  "products": ["YouTube"],
  "activityControls": ["YouTube watch history"]
}

Примеры из MyActivity.json:

{
  "header": "YouTube",
  "title": "Liked BEST DNB BEATBOX",
  "titleUrl": "https://www.youtube.com/watch?v\u003dA94EEk2rZpU",
  "subtitles": [{
    "name": "MITYA music",
    "url": "https://www.youtube.com/channel/UCir0GAhcTHfbGvDehH3RtTw"
  }],
  "time": "2010-10-22T14:25:15Z",
  "products": ["YouTube"]
}

Дальше дело нехитрое - просим Cursor написать парсер файликов и построить аналитику. Через некоторое количество итераций получаем cli-скрипт на python, который все это делает.

Ну и оформляем все это дело в репозиторий, чтобы любой желающий мог проанализировать свои данные сам: https://github.com/positron48/youtube-history-analyzer/tree/master.

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

Время просмотра

Увы, данные из Takeout не содержат времени просмотра или даже длительности просмотренных видео. Эту информацию придется собирать ручками. Ну, не буквально - через YouTube Data API v3.

Для этого нужно сначала получить API-ключ:

  1. Создайте проект в Google Cloud Console
  2. Включите YouTube Data API v3
  3. Создайте API ключ
  4. Сохраните ключ в файл youtube_api_key.txt в корне проекта

Детальные инструкции описаны в API_INSTRUCTIONS.md в репозитории.

Один из пунктов меню скрипта позволит вам (при наличии ключа) получить данные по продолжительности просмотра по выборочным видео. Можете устанавливать любое количество, но Youtube API бесплатно дает делать в сутки не больше 10000 запросов, так что больше указывать нет смысла. Да и как показывает практика - на выборке в 1000-1500 видео уже можно получить среднее значение длины видео с достаточно узкими доверительными интервалами:

report-4

В моем инфопузыре среднее видео длится 23.9 минуты (да, я люблю длинные видео). Если не хотите долго ждать - то 200-300 запросов тоже дают достаточно точно посчитанное среднее значение, в пределах пары минут погрешности.

Большое число видеороликов из истории вообще недоступно - у меня это порядка 5% от всех роликов. Отчасти из-за того что ролики удалили или сделали приватными сами авторы, отчасти - блокировка каналов, на статистику они особо не влияют.

Отчет

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

Вот мой отчет:

report-1

report-2

report-3

report-4

report-5

report-6

Жаль что в Takeout все же данные за всю историю. С марта 2018 года я потратил в Youtube около 18k часов времени. Часть из них, конечно, смотрелась фоном и значительная часть - музыка, часть - не полностью. По верхней оценке это примерно 6,5 часов в день!

Анализ результатов

Интересно посмотреть на динамику - с чего вдруг на графике в 2020-2021 резкий всплеск, а в 2024 - спад?

report-1-analytics

Первая часть объясняется просто и думаю кто-то мог и догадаться - пандемия коронавируса. Весной 2020 всех отправили на удаленку и я работал из дома, включая Youtube на фоне. В основном это была музыка, которую я и так всегда слушаю во время работы, так что на продуктивности это не сказывалось. Собственно, пожалуй по этой причине в топе каналов - тоже музыка.

А вот второй сектор с спадом - более личное, у меня появилась девушка и время на просмотр Youtube резко сократилось.

Но смотрю youtube ведь я не с 2018 года, а гораздо раньше. Если оценивать также по верхней оценке - будем считать, что мои предпочтения не изменились. В таком случае наиболее подходящая дата - 1 сентября 2009 года - год, когда я переехал в город и поступил в университет. До этого я жил за городом и нормальный интернет был недоступен.

Таким образом, с 01.09.2009 по 01.09.2025 по максимальной оценке получается 38000 часов.


В торрент-трекерах есть понятие "рейтинга" - соотношение объема отданного к объему скачанного. Если значение больше 1 - вы отдали коллективной торрент-сети больше чем забрали. И это было вполне значимое число еще лет 15 назад. Это сейчас торренты дают скачивать что угодно без ограничений, требуя в лучшем случае регистрацию. Раньше вы не могли ничего скачать, если рейтинг опускался ниже 0.3-0.5. Нужно было отдать хотя бы половину от скачанного, чтобы получить что-то новое.

Сейчас суммарное время просмотра моих видео на Youtube - 4600 часов, в основном благодаря одному 11-секундному шортсу, который насмотрели уже 2+ миллиона раз. Т.е. мой текущий коэффициент - 0.12. Т.е. я отдал Youtube 12% от того, что взял сам. Считаю это неплохим значением для старта, планирую двигаться дальше.

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

Ну и еще раз, если кто пропустил - вы можете провести ту же аналитику на своих данных - скрипт для анализа лежит в репозитории - https://github.com/positron48/youtube-history-analyzer. Все инструкции по выгрузке данных и получении api ключа также в нем продублированы.

Больше эксклюзивного контента и live-обновлений в моём Telegram-канале

Комментариев пока нет

Последние статьи