Анализ популярности YouTube видео участников Евровидения 2020

13 марта на официальном YouTube канале Евровидения была выложена композиция группы Little Big, которая будет представлять Россию на конкурсе. Посмотрев клип, захотелось сравнивать статистику видео нашей группы, с видео других участников; какие ролики самые просматриваемые, у кого самый большой процент лайков, кого чаще всего комментируют. Гугление готовой статистики ни к чему не привело. Поэтому было решено самому собрать нужную статистику.


Структура статьи:



Открыв плейлист участников можно увидеть 39 роликов, по факту там 38 песен, композиция Hurricane — Hasta La Vista — Serbia была загружена дважды, поэтому статистика по ней будет просуммирована. Для сбора статистики будем использовать R.


Код выгрузки


Нам понадобятся следующие пакеты:


library(tuber) # пакет взаимодействует с API YouTube, выгрузит нам статистику по роликам
library(dplyr) # пакет для работы с таблицами
library(ggplot2) # рисует графики

Для начала переходим в консоль разработчика google и создаем ключ OAuth на api "YouTube Data API v3". Получив ключ авторизуемся из R.


yt_oauth("Идентификатор клиента", "Секретный код клиента")

Теперь можем собирать статистику:


# получаем список роликов из плэйлиста
list_videos <- get_playlist_items(filter = c(playlist_id = "PLmWYEDTNOGUL69D2wj9m2onBKV2s3uT5Y"))

# Собираем статистику по просмотрам, функция get_stats
stats_videos <- lapply(as.character(list_videos$contentDetails.videoId), get_stats) %>% 
  bind_rows()
stats_videos <- stats_videos %>% 
  mutate_at(vars(-id), as.integer)

# Получаем названия роликов, функция get_video_details
description_videos <- lapply(as.character(list_videos$contentDetails.videoId), get_video_details)
description_videos <- lapply(description_videos, function(x) {
    list(
      id = x[["items"]][[1]][["id"]],
      name_video = x[["items"]][[1]][["snippet"]][["title"]]
    )
  }) %>% 
  bind_rows()

Т.к. названия роликов имеют шаблон Исполнитель — Название песни — Страна [Код страны] — Official Music Video — Eurovision 2020, то все что находится после страны, можно удалить. Удаляем и объединяем таблицу статистики с таблицей названий роликов.


# Удаляем лишнюю часть названия ролика
description_videos$name_video <- description_videos$name_video %>% 
  gsub("[^[:alnum:][:blank:]?&/\\-]", '', .) %>% 
  gsub("(  .*)|( - Offic.*)", '', .)

# Объединяем таблицу названий роликов со статистикой
df <- description_videos %>% 
  left_join(stats_videos, by = 'id') %>% 
  rowwise() %>% 
  mutate( # считаем долю лайков
    proc_like = round(likeCount / (likeCount + dislikeCount), 2)
    ) %>% 
  ungroup()

# Hurricane - Hasta La Vista - Serbia две композиции в одном плейлисте, суммируем их
df <- df %>% 
  group_by(name_video) %>% 
  summarise(
    id = first(id),
    viewCount = sum(viewCount),
    likeCount = sum(likeCount),
    dislikeCount = sum(dislikeCount),
    commentCount = sum(commentCount),
    proc_like = round(likeCount / (likeCount + dislikeCount), 2)
  )

df$color <- ifelse(df$name_video == 'Little Big - Uno - Russia','red','gray')

Анализ


Теперь у нас есть итоговая таблица для анализа и можно начать смотреть кто самый популярный. Формируем графики.


# Кол-во просмотров
ggplot(df, aes(x = reorder(name_video, viewCount), y = viewCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "Кол-во просмотров") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::number_format(big.mark = " "))

# Доля лайков к дизлайкам
ggplot(df, aes(x = reorder(name_video, proc_like), y = proc_like, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "Доля лайков к дизлайкам") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

# Кол-во комментариев
ggplot(df, aes(x = reorder(name_video, commentCount), y = commentCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "Кол-во комментариев") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::number_format(big.mark = " "))

# Доля комментариев к просмотрам
ggplot(df, aes(x = reorder(name_video, commentCount/viewCount), y = commentCount/viewCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "Доля комментариев к просмотрам") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 0.25))

Небольшая ремарка, когда я задался темой статьи у Little Big было меньше 1 млн просмотров, и часть показателей не так сильно отличалась от других участников.


Количество просмотров. У композиции Little Big виден огромный отрыв, но это больше связано с тем что ролик попал в тренды. А вот самое маленькое кол-во просмотров у эстонской группы.


image


Доля лайков среди суммы лайков, дизлайков. Больше всего смотревшим понравились композиции Грузии и Литвы. А вот самая плохая композиция у Чехии.


image


Количество комментариев коррелирует с количеством просмотров.


image


Доля комментариев к просмотрам(комментарии / просмотры). Чем больше комментариев по отношению к просмотрам тем более вероятна заинтересованность просмотревших. Наибольший интерес вызывает клип Азербайджана и Украины.


image


Итого по состоянию на 13.03.2020 18:00 в той или иной мере у пользователей вызывают интерес клипы России, Грузии, Литвы, Азербайджана и Украины.


UPD: по состоянию на 14.03.2020 20:30


Количество просмотров. Без изменения. У композиции Little Big так же огромный отрыв, Украина на втором месте по количеству просмотров.


image


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


image


Количество комментариев Без изменений.


image


Доля комментариев к просмотрам(комментарии / просмотры). С момента написания последнего поста ещё 2 участника выложили видео, один из них, Армения, вызвала наибольший интерес пользователей. И теперь этот ролик самый обсуждаемый в комментариях.


image


Итого по состоянию на 14.03.2020 20:30 список роликов интересных пользователям не сильно изменился это так же Россия, Грузия, Литва, Азербайджан, Украина. К ним просто добавилась Армения.


Дополнительно: Смотрим зависимость просмотров от численности населения страны


helg1978 высказал интересную мысль что количество просмотров может коррелировать с количеством населения страны. Захотелось проверить эту мысль.


К композициям подгрузил численность населения стран из википедии


Код сравнения зависимости
library(rvest)
library(tidyr)

# Выгружаем численность населения
hdoc <- read_html('https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population')

tnode <- html_node(hdoc, xpath = '/html/body/div[3]/div[3]/div[4]/div/table')
df_population <- html_table(tnode)

df_population <- df_population %>% filter(`Country (or dependent territory)` != 'World')

df_population$Population <- as.integer(gsub(',','',df_population$Population,fixed = T))

df_population$`Country (or dependent territory)` <- gsub('\\[.*\\]','', df_population$`Country (or dependent territory)`)

df_population <- df_population %>% 
  select(
    `Country (or dependent territory)`,
    Population
    ) %>% 
  rename(Country = `Country (or dependent territory)`)

# добавляем численность населения в копию основной таблицы
df2 <- df %>% 
  separate(name_video, c('compozitor', 'name_track', 'Country'), ' - ', remove = F) %>% 
  mutate(Country = ifelse(Country == 'The Netherlands', 'Netherlands', Country)) %>% 
  left_join(df_population, by = 'Country')

# Зависимость просмотров от численности населения
cor(df2$viewCount,df2$Population)
ggplot(df2, aes(x = Population, y =  viewCount)) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = "Население, чел", y = "Кол-во просмотров") +
  scale_y_continuous(labels = scales::number_format(big.mark = " ")) +
  scale_x_continuous(labels = scales::number_format(big.mark = " "))

# Зависимость просмотров от численности населения, без России
cor(df2[df2$Country != 'Russia',]$viewCount,df2[df2$Country != 'Russia',]$Population)
ggplot(df2 %>% filter(Country != 'Russia') , aes(x = Population, y = viewCount)) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = "Население, чел", y = "Кол-во просмотров") +
  scale_y_continuous(labels = scales::number_format(big.mark = " ")) +
  scale_x_continuous(labels = scales::number_format(big.mark = " "))

# Зависимость просмотров от численности населения, ранги
cor(df2$viewCount,df2$Population, method = "spearman")
ggplot(df2 , aes(x = rank(Population), y = rank(viewCount))) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = "Население, чел (Ранги от 1 до 40)", y = "Кол-во просмотров (Ранги от 1 до 40)") +
  guides(fill = F)

# Доля от общей численности населения
ggplot(df2, aes(x = reorder(name_video, viewCount/Population), y = viewCount/Population, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "Доля от общей численности населения") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 0.25))

Если смотреть в целом на все, то видно что Россия сильно выбивается из общей картины, у других стран с населением больше 50 млн нет такой тенденции. Формально коэффициент корреляции 71%.
image


Без России этот же график будет выглядеть следующим образом. Корреляция при этом упадет с 71% до 15%. Что в целом будет говорит об отсутствии зависимости.
image


Если смотреть на зависимость не параметрически(по рангам значений), то будет более сильная связь, но все равно не определяющая(Коэф. коррел. 40%).
image


И справочно посчитал долю просмотров от населения страны. Для особо маленьких стран получается что их смотрели больше из других стран. В частности это Мальта, Сан Марино и Исландия
image


Полный код на гитхабе

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 49

    +1
    Закон простой, чем более эпатажно выглядят и действуют участники, чем больше бабла вкачано в раскрутку, чтобы из каждого утюга это все лилось в уши и глаза, тем более вероятна народная любовь.
    Потому что народ в целом не отягощен интеллектом. В пирамиде Маслоу он находится где-то на уровне инстинктов размножения и поглощения еды. С настоящим творчеством — это не к нему.
      +4
      Да просто задрало все, коронавирус, кризис и прочий негатив.
      А Литлбиг поет: Uno-Dos-Quatro на эти все проблемы, что в переводе 1-2-4.
      И как в комментариях пишут в ютубе, всем этим проблемам загибаем пальцы под песню начиная с мизинца. Один, два, четыре. )))

        0
        В интернете пишут, что пропуск тройки это пасхалка — в смысле если загибать пальцы от мизинца, то будет стандартный такой жест
        +3

        А что там эпатажного? Чёрные губы Лиссова? Немного смешной толстячок? И всего-то?

          –8
          Крайне незатейливый мотивчик во всех песнях, черные губы, тату медведя, толстяк, цветастые костюмы, суровая морда певца.
          Всё это направлено на то чтобы:
          1. Выделится визуально там где контент потребляется глазами — ленты соцсетей, телевизор, youtube.
          2. Выделиться аудиально — на радио. Из массы обычной нормальной мелодичной музыки, своими резкими мелодиями из пары нот. По нормальному такую ерунду на радио не поставят. Но если за песню заплачено, её будут крутить пока у слушателя она в подкорку головного мозга своим мотивом не застрянет. Причем, визуальная составляющая в ПЕСНЕ у них оказывается важнее.

          Просто сравните это хайповое дерьмо, изготовленное с единственной целью заработать как можно больше денег с такими песнями и клипами как:
          Михей — Сука-любовь отличная мелодия, замечательный голос, ничем не примечательный клип, люди слушают до сих пор.
          Stardust — Music Sounds Better With You отличная мелодия, ничем не примечательный клип, топ чартов и продаж сингла.
          Sandra — Secret Land нереальный вокал Сандры, очень нетривиальная ритмичная мелодия от Крету, никаких вырвиглазных костюмов, сисек и татуировок.

          Продолжать можно бесконечно, потому что Little Big это просто днище музыки.
            +2
            Вкусовщина, тащ.
              0
              Очевидно что вам не нравится рейв и нравится попса. Ваше право.
              Я вот тоже от рейва не в восторге. Но клипы у Little Big нравятся, и они крутые не потому что эпатажные, а потому что интересные и многослойные.
                0
                > Крайне незатейливый мотивчик во всех песнях, черные губы, тату медведя, толстяк, цветастые костюмы, суровая морда певца

                И что именно из перечисленного является эпатажем? Вот если бы Прусикин в плавках вышел, как в Faradenza, ещё туда-сюда.
              +5
              Тебя самого не тошнит от снобизма в своём комменте?
              • НЛО прилетело и опубликовало эту надпись здесь
                +2
                я понимаю, что эта статистика показывает интерес к композиции Little Big, ведь ребята известные по своим старым неплохим работам и многим было интересно посмотреть с чем они едут на конкурс.

                Интересно было бы посмотреть на немного другое — не было за это видео и за одно и другие группы признаков накручивания просмотров (с целью рекламы и т.п.)? А то это число просмотров, имхо, невыдающейся работы, как-то сильно выдаётся на фоне других участников. Заодно будет можно понять, люди просматривали потому, что понравилось, или потому, что ужастнулись, или просто чтобы посмотреть с чем группа едет на конкурс.

                Даёт ли ютюб такую статистику?
                  +2
                  А то это число просмотров, имхо, невыдающейся работы, как-то сильно выдаётся на фоне других участников.
                  SKIBIDI от Little Big имеет на YouTube треть миллиарда просмотров, то есть на данный момент это мега известная и при этом весьма необычная группа, конечно многие хотят глянуть с чем они выступят на конкурсе, даже те кто вообще очень далек от всех этих конкурсов.
                  PS: Я сам не любитель такой музыки, но ссылку на их «Everyday I'm drinking» мне еще пару лет назад скидывал знакомый американец.
                    0
                    я не о SKIBIDI писал, а о том, что они на фоне других приготовили для Евровиденья :)
                      +4
                      Других смотрят фанаты самого конкурса, а Little Big все те кто знаком с группой по их остальным хитам, даже если само Евровидение им безразлично. Потому и получается такой перекос, что очень многие смотрят ТОЛЬКО их клип.
                        0
                        Да, это вполне может быть объяснением.
                    0
                    api ютюба не дает настолько много статистики для посторонних лиц. Максимум что с помощью него еще можно достать это информацию о комментариях под видео; кто, когда комментировал, что писал.

                    Насколько мне известно сервисов или способов которые достоверно могут сказать что видео накручено, нет. Статистика по динамике просмотров у видео, обычно отключается администратором канала(А это основной способ понять что видео накручено, когда есть резкие всплески просмотров). В теории мне известен единственный способ понять накрученность видео, это исходить из предположения: раз лайки коррелируют с просмотрами, то смотрим на кол-во комментариев во времени, если они резко вырастают то это может быть косвенный признак что видео накручено, но опять же при условии что человек купил накрутку просмотров и лайков. Но опять же многие просто покупают просмотры, не трогая комментарии. Или видео может резко попасть в рекомендации пользователям и со стороны это может выглядеть как накрутка. В общем любой такой косвенный метод это палка на двух концах, который будет очень условен.
                      0
                      Жаль конечно что api такого не покажет. В отношении анализа по комментариям и просмотрам, да, согласен. :)
                        0

                        А нельзя просто брать число просмотров каждые 5 минут, например? Или оно кэшируется?

                          0
                          Можно и так, он не кэширует. Но для этого нужно целенаправленно мониторить конкретный канал/видео.
                      0
                      на самом деле, количество просмотров коррелирует с численностью населения стран
                        +1
                        В Британии почти 70 млн. населения, в Украине почти 40, но Украина на втором, а Британия на третьем месте. В Болгарии — 7, в Португалии — 10, но: Болгария на четвёртом месте сверху, а Португалия — на четвёртом снизу.
                          +1
                          ну, коррелирует != пропорционально.
                          0
                          Немного дополнил статью, добавил про взаимосвязь с кол-вом населения. Ну не знаю, взаимосвязь от численности населения выглядит очень слабой
                            0
                            Возможно это потому, что исполнителей на русском языке посмотрят в странах бывшего СССР и так добавят так число просмотров к статистике, а исполнителя той же Германии за пределами Германии не посмотрят?

                            Если добавить Беларусь, Украину и Казахстан (это очень условная оценка русскоязычной аудитории), то получится 218 млн. потенциальных зрителей. Тогда последняя точка, которая изначально соответствовала России, станет ближе к синей линии.
                              +3
                              исполнителей на русском языке

                              Проблема в том, что Uno поется на смеси английского и испанского.
                                0
                                Да… Это было поздно ночью и фразу «Возможно это потому, что исполнителей на русском языке посмотрят» мне нужно был написать иначе.

                                я писал продолжая логику того, что helg1978 и DaneSoul выше писали. Если группа известна (а у неё вроде бы одна композиция была не на русском до этого, остальные — на русском), то фактор известности работает там, где они известны — в тех странах, где используется русский. Там вдоль оси х, скорее всего, не число населения, а число потенциальной аудитории будет (которое и учёт влиятние фатора известности).
                                  0
                                  Если группа известна (а у неё вроде бы одна композиция была не на русском до этого, остальные — на русском), то фактор известности работает там, где они известны — в тех странах, где используется русский.
                                  А у Little Big на русском хоть одна песня есть вообще (отдельные слова-вкрапления не считается)? В том и фишка этой группы, что у них песни и ролики с эпатажным «национальным колоритом», но поют они на английском, то есть группа сразу позиционировала себя на международный рынок.
                                    0
                                    Ну наверное вот это

                                    Заголовок спойлера

                                      0
                                      Ладно, наверное, надо снять мой аргумент по поводу их русского языка. я действительно ошибся.

                                      я их по «Полюшко-Поле» узнал и помнил, теперь нашёл песню «Танцы», «все сразу». Но посмотрел другое сейчас, у них действительно почти всё на английском. И вполне вероятно что с самого начала они целились на международный рынок.

                                      Другое дело что их популярность, по моему мнению, не вышла за пределы бывшего СССР (вижу внизу пост AllexIn, но имхо, их даже с концертами, всё равно за границей не знают). Вот он интерес на ютюбе и мог обеспечить выше чем у других участников, так, что число просмотров не вписалось в то, что видно было на графике по другим участникам.
                                      0
                                      где они известны — в тех странах, где используется русский

                                      У их известности нет связи с русскоязычностью.
                                      Вроде они по всему миру концерты успешно дают. Так что говорить что их здесь смотрят больше чем там врядли корректно.
                                  0
                                  исполнителя той же Германии за пределами Германии не посмотрят?

                                  Скажи это Линдерманну)
                                    0
                                    Да, о нём я и писал. Могу ещё привести примеры исполнителей Украины, Британии, которые едут на Евровиденье. У них та же самая история.
                              0
                              В 2020 решает то, что Ютьюб выдвинул в тренды/на главную. То и наберёт миллионы просмотров.
                                +1
                                + рекомендации.
                                  +1
                                  Как бы странно не казалось, но в трендах и на главной этого клипа нет, мало того, в гостях хотел показать этот клип, ввел «uno uno» не нашел, добавил littlbig — ютуб вывел только интервью с Ургантом и другие ролики, нашел конечно клип, но не в 2 клика, так что в рекомендациях и на главной сегодня не было этого ролика, это точно, но пока пишу этот коммент количество просмотров перевалит уже за 21 миллион. ))
                                    0
                                    А теперь вот уже есть в трендах. И просмотров уже больше 32 лямов на клипе. И челленджи эти гадские в тик-токе уже полетели. Так что до Евровидения вся планета уже научится подтанцовывать, не то что Европа.

                                    Если что, я не считаю это какой-то особо хорошей музыкой. Это рейв-проект. Дискотека по-нашему. Но они забавно выглядят и забавную дичь творят. Для меня это что-то типа КВНа такого.
                                  0
                                  Поскольку автор не подвёл итог, то мне просто интересно:
                                  1) для чего эта «аналитика»?
                                  2) стоило ли тратить свою время, на данные «исследования»?
                                    0
                                    Просто так. Не для чего, а почему. Потому что интересно.
                                    0
                                    del
                                      0
                                      Получить статистику по просмотрам, лайкам, дизлайкам и комментариям частично можно тут.
                                        0

                                        Спасибо, посмотрел там можно извлечь историю изменения просмотров. Постараюсь сегодня, завтра добавить анимированные графики как менялись просмотры

                                        0
                                        Интересно было бы статистику просмотров посмотреть по дням гифкой, только после евровидения, по всем участникам.
                                        Было бы очень интересно. ))
                                          0

                                          Да постараюсь сегодня завтра добавить гифки изменения просмотров iROOT показал сервис где можно взять историю просмотров

                                            0
                                            Грусть печаль, хотел сделать динамические графики а в dislikemeter хранится история только по 5 роликам из 40.

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

                                          Самое читаемое