DENSETOS DevCorner
Inline URL Button в Telegram. Как выглядит запрос

Я измучился, да, буквально измучился при разработке собственного Telegram-бота для своего радио. Проблема возникла при составлении корректного ответа на запрос WebHook, который должен был отобразить кнопочку, нажатие на которую вызывает открытие ссылки у пользователя. Проблема была в том, что я никак не мог понять, как должен выглядеть ответ в формате JSON и как описывать поле… Моар →

Glitch0r и rgbsplit0r для Windows

Продолжаем тему плагинов для платформы Frei0r. Немногим ранее я рассказывал о библиотеке эффектов Frei0r, а также о том, как установить написанные мною плагины в kdenlive. Здесь же я покажу, как можно попробовать эти же эффекты под Windows. Единственным нормальным решением для «винды», совместимым с Frei0r, оказался Shotcut. Его-то и будем патчить. Для начала загружаем отсюда… Моар →

Новейшие эффекты Frei0r для kdenlive

Ранее я рассказывал о библиотеке эффектов для видео с красивым названием Frei0r. Это, конечно, здорово, но как её применять на практике? Здесь я расскажу как использовать последние эффекты Frei0r (а если конкретнее — мои :3) в kdenlive, самом, на мой взгляд, понятном и удобном редакторе видео для Linux. Можно, конечно, просто дождаться, когда эти эффекты… Моар →

Frei0r: библиотека эффектов для видео

Около полутора месяцев назад я наткнулся на библиотеку со странным, очень странным названием — Frei0r. Это минималистичная библиотека видеоэффектов, призванная привести реализации простых фильтров и генераторов видео в единый вид, так, чтобы другие приложения просто подключали её к себе, а не городили свои велосипеды. К счастью, у них это получилось. Огого! Честно сказать, я бы… Моар →

Регистрируем радиостанцию в каталогах

После того, как мы исправили метаданные, можно научить нашу радиостанцию сообщать о своём состоянии разным каталогам, например, TuneIn. В данной статье я расскажу как зарегистрироваться в каталоге TuneIn и, в качестве приятного бонуса, Liquidsoap Flows. После регистрации в каталоге мы научимся сообщать ему данные о своей станции для повышения её рейтинга в поиске. Регистрация в… Моар →

Исправляем метаданные в интернет-радио

Правильное название композиции, играющей на радио — залог успеха. Более того, правильно сформированные и заполненные поля исполнителя и названия трека могут пригодиться при регистрации в каталогах и взаимодействии с их API, например, как я сделал с TuneIn. В этой статье я расскажу о том, как сделать правильное отображение метаданных. Ранее я уже рассказывал о том,… Моар →

Прячем радиостанцию за nginx

Интернет-радио зиждется на слегка модифицированном протоколе HTTP. Отличие от стандартного HTTP заключается лишь в специальных ICY-заголовках, в которых содержатся метаданные о радиостанции и текущей композиции. Соответственно, есть резон «спрятать» сервер радио за уже настроенным nginx. Причин на то несколько, самые значимые из них — безопасность (минус один открытый порт), настраиваемость (nginx лучше аудиосервера знает как… Моар →

Избавляемся от Icecast на интернет-радио

Когда мы слышим «интернет-радио», на ум сразу приходит сервер потокового вещания Icecast. Этот сервер прослужил моим радиостанциям около пяти лет, два из которых он работал в связке с Liquidsoap, генератором аудиопотоков. С некоторого времени он стал скрываться за веб-сервером nginx (о том как это сделать читаем тут), ибо воистину. И вот, настал тот час, когда… Моар →

«Исключающий рандом» для Liquidsoap

Да, да, да. Вновь про «мыло», но на сей раз быстро и по делу. Если вы хотите сделать так, чтобы композиции включались в случайном порядке, но при этом не повторялись, то есть, чтобы проигрывался абсолютно весь плейлист, и ни один трек не повторился, пока не проиграются остальные, следует при формировании плейлиста указать следующие параметры: Я… Моар →

Имя файла вместо тегов в Liquidsoap

Бывает так, что у файлов с музыкой не указано никаких тегов, по которым можно определить исполнителя, но сам файл назван правильно. В таких случаях целесообразно выводить имя файла вместо надписи «Unknown», которую Liquidsoap подставляет, если у него не получилось считать метатеги. Делается это очень просто: у нас в распоряжении есть функция map_metadata, которая, не поверите,… Моар →