Наткнулся на YouTube на топ-20 общественно-политических ютуб-каналов, результат за месяц. Подумал, такое легко сделать самому, заодно изучу API YT и проверю результаты. А готовый алгоритм можно применить и на другие тематические каналы.

Почитал статью на Хабр, посмотрел ролик на YouTube, полистал документацию и приступил писать код на коленке в jupyter notebook.

Первая проблема - как выбрать каналы, которые будут участвовать в рейтинге? Поиск по каналам по ключевым словам оказался бесполезным. Для отладки взял готовый список каналов из оригинального обзора. Для других тематик идея такая: ищем топ видео за месяц/неделю по заданным ключевым словам с сортировкой по количеству просмотров. Выделяем уникальные каналы. Проверяем глазками на корректность.

Далее проходимся по каналам, собираем все видео, которые были опубликованы в прошлом месяце. Затем по каждому видео собираем статистику просмотров. В оригинальном обзоре shorts учитываются с коэффициентом 1/10. В API нет признака видео shorts или нет. ChatGPT любезно подсказал определять по длине видео: меньше минуты - shorts. (По факту не так. На StackOverflow предлагают ходить по адресу https://www.youtube.com/shorts/<video_id> , если вернулся код 301 редирект, значит не shorts) Ок, вытаскиваем длину видео, определяем тип, коэффициент и взвешенное количество просмотров. Сортируем и получаем список. Сверяем с оригиналом.

Скрытый текст
Таблица рейтинг каналов в сравнении с оригиналом
Таблица рейтинг каналов в сравнении с оригиналом

В целом неплохо, место каналов более менее похоже. Но представьте, какого участникам рейтинга, если из-за ошибки кто-то попадет на 4, вместо 3 места. Нужен более однозначный алгоритм. Сравниваю количество просмотров - отклонения местами гигантские, например, 11 млн просмотров.

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

Возвращаемся к решению. На ум приходит два варианта:

  1. брать общее количество просмотров канала на начало месяца и брать разницу между месяцами. То есть инкрементное увеличение общего количества просмотров и есть количество просмотров канала за месяц.
    Проблема - как вычленить shorts?

  1. проходиться дополнительно по всем старым видео на канале и фиксировать их количество просмотров, а потом по каждому видео высчитывать увеличение.
    Проблема - объемы и лимиты. На YT API есть лимит обращений в сутки в 10К. Причем поиск стоит 100 очков. По 25 каналам за последний месяц у меня набралось порядка 3 тысяч видео. Смотреть во всю глубину канала и собирать статистику выглядит дорого. Как я понял, именно так и делали в оригинальном обзоре.

Можно использовать комбинацию решений. Смотреть изменение числа просмотров канала, сравнить с суммой просмотров по видео и копать вглубь, пока эти величины не будут в рамках желаемой погрешности. Но такое решение кажется сложноватым для такой "простой" изначальной задачи. Для проверки этого подхода нужно иметь данные по каналу за прошлый месяц. Смогу проверить через месяц.

Для чего я описал этот случай. Мне он показался наглядным примером частых случаев, когда заказчик дает "простую" задачу, которая из-за каких-то деталей может иметь сложное техническое решение. Вспомнилось

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

Хотя может я не до конца разобрался с API YouTube и есть элегантное решение? Если есть идеи, пишите в комментариях. Интересно ваше мнение.

P.S. код писал на коленке для себя. Но по рекомендациям вставлю ссылку на репозитарий.

Комментарии (48)


  1. killyself
    09.09.2024 10:46
    +1

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


    1. legofrend Автор
      09.09.2024 10:46

      мне YT порой в шортсах показывает видео годовой давности. Так что кажется не очень надежный подход


  1. drmiltonfine
    09.09.2024 10:46
    +25

    Забавно, что каналы почти все сплошная мусорка от крайне тупых пропагандистов, ориентированные на умственно-отсталый электорат


    1. georgiy08
      09.09.2024 10:46
      +4

      Забавно, что во многих странах люди не всегда доверяют правительственным каналам, и только в России ситуация кардинально наоборот.


      1. 1CHer
        09.09.2024 10:46
        +18

        Я бы имея хоть капельку мозгов не доверял бы большинству каналов из списка. Столь отборной лапши ещё поискать нужно. Вообще топ непонятен абсолютно. Разве что этот топ активно раскручивается ботами. Вот на это бы проверить.


        1. RKrop
          09.09.2024 10:46
          +8

          А каким каналам, имея хоть каплю мозгов, посоветуете доверять? Неужели, первому каналу из телевизора?


          1. Psychosynthesis
            09.09.2024 10:46
            +2

            Если вам вариант только такой на ум приходит, то и правда лучше не доверять никаким каналам. А ещё лучше вам вообще интернетом не пользоваться, там плохого же наговорят кучу.


            1. RKrop
              09.09.2024 10:46
              +2

              Понятно же что в моем вопросе был элемент троллинга. А так то я этим вашим интернетом пользуюсь с 98го года, сейчас уже не смогу его бросить - привычка!


          1. larasage
            09.09.2024 10:46

            Доверять кому-то в области политики? Как по мне - довольно наивно. Зачем позволять вкладывать в свою голову чужую систему ценностей. Официоз я получаю из новостей на РБК. Взгляд "с той стороны" - 2-3 раза в неделю читая BBC (Есть обычай на Руси ночью слушать БиБиСи). Со всех сторон - пропаганда. Умышленная или невольная. Простой пример - что говорят про потери Украины прозападные каналы и что говорят про потери РФ - проофициальные каналы. И те и другие - молчат.
            И выбирать себе в этой области источники информации только те, что транслируют взгляды, близкие тебе самому... Ну такое...


            1. RKrop
              09.09.2024 10:46

              Ну существуют же какие-никакие стандарты журналистики. BBC действительно довольно близка к ним. РБК раньше читал, но в последнее время перестал: слишком много новостей стали подавать под одним углом. Из наших СМИ почитываю Коммерсант - он пока ещё не вызывает большого отвращения. Вообще, мне кажется, на чистые новости нет смысла время тратить - от новостного шума особо пользы нет, лучше уж какую-нибудь аналитику по новостным поводам (поэтому и Коммерсант, а не РБК).


              1. gedo
                09.09.2024 10:46

                Кроме стандартов, у ВВС есть ещё и госфинансирование. Журналистика может и есть, но независимая ли?

                Опираться на чужую аналитику, буквально что бы кто-то подумал за тебя - ещё более сомнительная идея.


                1. Bombus
                  09.09.2024 10:46

                  Куда вы клоните понятно. Жалко что только задаете вопросы и пытаетесь одним только этим "набросить тень на плетень". Факты бы, конкретные примеры нарушения стандартов журналистики.
                  Так и науку тоже финансируют, они не на самообеспечении. Или это просто другое?
                  Правильно ли я понимаю, что так как все СМИ финансируются, то вы не смотрите/читаете никакие СМИ. Да и блогеров, чтобы вы не думали как они?
                  Вот в чем соглашусь - не буду опираться на вашу аналитику.


                  1. larasage
                    09.09.2024 10:46

                    Ну я уже писал про потери в текущем конфликте - BBC считают потери России, но не считают потери Украины. Что это как не принятие одной из сторон?


              1. larasage
                09.09.2024 10:46

                Если вы читаете аналитику с одной стороны - значит согласны принять точку зрения авторов.


                1. Bombus
                  09.09.2024 10:46

                  Прочитал контракт значит подписался?
                  Ну конечно же нет. Просто читаешь аргументы и доводы и потом делаешь выводы самостоятельно.

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


        1. Juggernaut
          09.09.2024 10:46
          +3

          Ну так представьте список каналов, соответствующих вашей капельке мозгов.


          1. Bombus
            09.09.2024 10:46

            Застеснялся "умственно-неотсталый" предоставить список "правильных" каналов. Тоже посмотрел бы, но нет.


      1. suburg
        09.09.2024 10:46
        +3

        Каналы из статьи в массе своей тоже правительственные

        Вопрос только в том какой страны это правительство


        1. ITDiver77
          09.09.2024 10:46
          +5

          Ага, отечественные. Только отечество не наше (с)


      1. yoz
        09.09.2024 10:46
        +2

        Лучший выбор не доверять и тем и другим.


    1. fed_medved007
      09.09.2024 10:46
      +2

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


    1. GreyArt
      09.09.2024 10:46
      +19

      Забавно, что на хабр подвезли кучку ботов продвигающих нужную линию.


      1. fermentum
        09.09.2024 10:46

        Просто это ловушка для тех, кто сперва читает комментарии, а потом статью, если годная.


  1. Alexx5222
    09.09.2024 10:46
    +7

    "Но представьте, какого участникам рейтинга..."

    "Какого" чего? Х*я или числа?


  1. BeMySlaveDarlin
    09.09.2024 10:46
    +10

    Выглядит как реклама пропагандонских мусором.


  1. georgiy08
    09.09.2024 10:46

    "он некрасивый и непонятный" - в любом случае, фрагменты все равно стоит прикреплять. Даже если "забьют" за код - так сможете и улучшить код, и получить (скажем так) консультации.


    1. legofrend Автор
      09.09.2024 10:46

      ок, спасибо :) обновил статью, добавил ссылку на репозитарий, тут


  1. AlexandrovRoman
    09.09.2024 10:46
    +4

    Здорово что решили написать статью, но ощущается она незавершенной. И результат в виде кода всё же стоит по возможности прикреплять. Плюс, но авансом


    1. legofrend Автор
      09.09.2024 10:46

      спасибо :) обновил статью, добавил ссылку на репозитарий и в комм. выше

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


  1. PA_Marvin
    09.09.2024 10:46
    +3

    Странно что в списке нет unian, кажется надо тоже добавить.


    1. legofrend Автор
      09.09.2024 10:46

      Это как раз первая проблема - как составить список каналов. Если вручную, то возникает много вопросов "почему Х не включен". Если запросить топ каналов в поиске YT, то там полная ерунда. Например хотел сделать рейтинг юморных каналов, вот что получаю таким способом. На 2 месте канал с 14 подписчиками :(
      Так что в данном конкретном случае вопрос про unian надо адресовать автору оригинала. Я просто повторил %)


  1. Majestic108
    09.09.2024 10:46

    А почему список совпал с моим?


  1. IceGerda
    09.09.2024 10:46

    Я могу понять вражьи голоса, уровень съёмок и дикторов там очень высокий (не будем спорить про взгляды и навязывание) - но какие-то Швецы, Кацы. Это же унылый блоггинг -уныло говорящие головы


  1. Grogcm20
    09.09.2024 10:46

    Нужно добавить графы "левый / правый", "способ финансирования", "за войну / против войны / нейтральный".

    А то "рейтинг" выглядит, как будто дождь самый лучший, но это только по просмотрам.


    1. tambiet88
      09.09.2024 10:46

      Следует внимательней читатать статью. Автор занимается числом просмотров, а не оценкой каналов.


    1. legofrend Автор
      09.09.2024 10:46

      За подобным анализом это к другим. Я хотел универсальный алгоритм для составления рейтинга каналов по каким-то объективным метрикам, типа просмотры, лайки, коменты, доля лайков.
      Согласен, "лучший" и количество просмотров разные вещи


  1. moscowman
    09.09.2024 10:46

    Я не настолько силён в каналах. НО от Ходорковского я отписался довольно давно, смотрел его выборочно, как правило Асланяна. В начале был хорош.
    Но потом и его понесло куда-то совсем не туда, такую дичь стал пороть, что смотреть его - свой холодильник не уважать.


  1. Psychosynthesis
    09.09.2024 10:46
    +1

    А зачем вообще считать шортсы? У них конверсия оклонулевая, там коэффициент должен быть 1/10000, можно просто выкинуть их из статы вообще без потери смысла.


    1. Ivan22
      09.09.2024 10:46
      +1

      ты статью читал? Автор не нашел 100% точного способа отличить шортс от нешортса в API


      1. Psychosynthesis
        09.09.2024 10:46

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


        1. Ivan22
          09.09.2024 10:46

          тебе нужно, автору было не нужно


        1. legofrend Автор
          09.09.2024 10:46

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

          P.s. я ошибся с определением шортса. Обновил в статье. Надо ходить по адресу в youtube  https://www.youtube.com/shorts/<video_id> , если вернулся код 301 редирект, значит не shorts. Так что все еще геморойнее %)


  1. Besquait
    09.09.2024 10:46

    А вот у Куплинова подписчиков и просмотров больше! Всех вместе взятых!!! На первое место его!


    1. legofrend Автор
      09.09.2024 10:46

      кажется у него немного другая тематика :) если дадите список каналов из его категории, то могу и там сделать рейтинг


  1. Viktoriatory
    09.09.2024 10:46

    Панченко алгоритм игнорирует?


    1. legofrend Автор
      09.09.2024 10:46

      я для теста брал каналы как в оригинале. Но ради интереса добавлю ее, посмотрим


  1. ktim8168
    09.09.2024 10:46

    Странно, что Редакции нету в списке.


    1. legofrend Автор
      09.09.2024 10:46

      в моем варианте она есть, но не вошла в топ 20. Канал из тех, где у меня большое отклонение от оригинала -> видимо много просмотров старых видео