Вы скорей всего из тех, кто «не смотрит телевизор». Но вы потребляете телевизионный контент, просто через другие каналы — например YouTube.
Значительную часть этого контента составляют новости, интервью, радиоэфиры, лекции, подкасты, стримы, музыка и т.д. — то есть то, что смотреть вовсе не обязательно — главное слушать.

Кого слушать — дело ваше.
AudioTubeBot — Telegram бот, который загрузит аудио дорожку с YouTube, обрежет лишнее, разобьет на части.
Я написал его для себя 2 месяца назад, изучая python. Он изменил мою культуру потребления контента.
Под катом — описание обновленной версии 2.0

Типичный юзкейс


Возьмем для примера видео по неврологии/нейробиологии
youtu.be/BY9v5jOr4BY
В нем, 2 части: первая очень интересная, вторая — нет (как физик говорю).
Первую часть вы скорей всего захотите переслушать.

Обрезаем лишнее — добавляем к ссылке (hh:mm:ss-hh:mm:ss)
И в таком виде скидываем боту:
youtu.be/BY9v5jOr4BY(00:30-21:01)

формат достаточно свободен — можно по 1 цифре указывать, не указывать конец или начало:
от начала до 21:01(-21:01)
от 3мин 5сек до конца(3:5-)

и т.д.

Разбивка на части


Боты ограничены размером пересылаемого файла 50мб. Изначально — разбивка на части была способом загружать большие аудиозаписи. Но оказалось, что разбивка в принципе удобна — быстрее получаете первую часть и начинаете слушать, не нужно грузить разом весь файл в память и т.д.

192к .aac концерт / 96к .mp3 лекция

Разбивка зависит от битрейта —
соответственно куски до 50/40/30мин для битрейтов 96k/128k/192k

Размер файла — до 1.5гб


Воу, воу — а откуда тогда на скрине 120мб концерт?
Это — основное нововведение этого месяца — в принципе за счет Telegram API можно значительно расширить возможности ботов — пересылать большие файлы, создавать чаты и каналы, добавлять в них пользователей — в общем, практически то, что может делать обычный пользователь!
Переключение между разбивкой и загрузкой целиком делается вот этой кнопкой в настройках.


Загрузка видео


Также можно загружать видео в 360p, до 50мб — можно вырезать нужный кусок, как для звука — указав таймкоды

Переключаемся между загрузкой аудио/видео —
кнопкой с микрофоном/кинохлопушкой


Сложно словами написать было? Что за шарады?
Не сложно — сложно сделать это на разных языках, чтобы все слова влезали в ограниченный интерфейс на всех языках. А поскольку бот вы будете использовать достаточно регулярно — достаточно будет первого знакомства, а дальше запомните картинки

Индексация, NoSQL база



Запросы теперь сохраняются в базе данных и индексируются — если запрос с заданными параметрами(формат, битрейт и т.д.) уже обрабатывался когда либо ботом — вы получите записи мгновенно, так как они уже хранятся на серверах Telegram.
Как можете заметить — при этом не используется хеш функция по каждому файлу(они могут быть большими) — вместо этого используется строка входных параметров — битрейт, формат, начало, конец, флаги и т.д. Кроме того — если частей несколько — они тоже сохраняются, запрос с разбиением на части, и запрос целого файла — разные запросы.

«Плейлист»


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

Создается приватный канал, в него добавляется бот администратором. Бот транслирует в канал только аудиозаписи. Главное то, что бот имеет контроль над всеми сообщениями канала, а не только над своими — в личном чате с ботом — он не может «подчистить» запросы, которые ему отправляются, в канале можно хоть перемешивать треки, сортировать и т.д.

Роскомнадзор и т.д


Кроме того — приватные каналы по политике Telegram — не подлежат никакому регулированию. Точка. Смекаете?


Если бот предоставляет публичный доступ к какому то спорному контенту — могут теоретически сделать атата, если бот будет присылать результат в приватный канал, то «на этом наши полномочия — всё».
Бот может получать ссылки в чате, а результат отправлять в приватный канал. Так что формально — в публичный доступ никакого контента не выкладывается. Бот принимает ссылки — это не запрещено, а что там приходит кому в приватный канал — не наше дело.

Ну основное вроде написал)
Если кого интересует техническая часть — дайте знать, могу написать не рекламную статью по API


Если кто чем помочь хочет, предложить идею, задать вопрос и как то поучаствовать — велкам в чат/комменты

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


  1. welcomerooot
    29.01.2018 18:30

    Сомнительный заголовок для geektimes.


    1. SlavikMIPT Автор
      29.01.2018 18:33
      -5

      Заголовок привлек ваше внимание, кроме того — заставил проявить активность — вы оставили коммент, значит не такой уж и сомнительный)


      1. maxzh83
        29.01.2018 18:46

        Думаю, за комментом еще и минус прилетит, а от кого-то минус прилетит и без комментария )


        1. SlavikMIPT Автор
          29.01.2018 18:54

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


      1. Boctopr
        29.01.2018 19:04

        Проявил активность тебе в карму!


      1. alexhott
        29.01.2018 19:09

        Ну видимо все-таки сомнительный раз вы его заменили


        1. SlavikMIPT Автор
          29.01.2018 19:15
          -1

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


  1. redpax
    29.01.2018 18:47

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


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


    Раздумываю о покупке подной версии но както пока жаба душит :)


    Да и дайте возможность сделать битрейт еще ниже, 96 слишком много.


    1. SlavikMIPT Автор
      29.01.2018 18:52

      • opus добавлю скоро — голос в 16кбит — почти не отличить от mp3 в 96Кбит
      • не проигрывается — так вы почитайте /faq — вам нужно просто сменить порядок воспроизведения в плеере телеграма
      • чтобы сохранить как просмотренное — нужно авторизацию делать


  1. D4RKV01D
    29.01.2018 18:57

    Славик умный парень: выучил питон, написал отличный бот для телеграма, но не осилил выучить как правильно называть свой пост


    1. SlavikMIPT Автор
      29.01.2018 19:01

      я экспериментирую — понятно что можно было не так провокационно назвать, но мне интересна реакция — любая, даже пусть негативная — от меня особо не убудет — нужно же куда то тратить карму) Если не пытаться выйти за границы — ты их не найдешь


  1. Rambalac
    29.01.2018 19:26
    +1

    Засекаем сколько Ютубу понадобится всё это забанить.


    1. SlavikMIPT Автор
      29.01.2018 19:28

      перевести на сурдоперевод все видео и выключить звук?)


      1. Rambalac
        29.01.2018 19:32

        Забанить доступ хоть всему провайдеру. Будет потом провайдеру пожизненно капчи разгадывать.


        1. jryj
          29.01.2018 19:34

          Таких ботов полно. А есть ещё youtube-dl.