Этим вопросом я озадачился когда начал изучать принцип онлайн трансляций и прямых эфиров. Мне предложили заняться сайтом местной телестудии и уже по собственной инициативе я начал копать в сторону онлайн трансляции эфира. До моего прихода в сеть выкладывались только записи эфира.
Первым этапом была организация прямых эфиров в одноклассниках. Там это проще всего ибо есть выбор между способами отправки потока. Имея один поток можно создавать множество трансляций в разных группах и аккаунтах. Количество ограничено мощностью сервера, откуда берется поток.
Параллельно с этим я начал засматриваться на инстаграм и искать разные возможности. Причем мне нужна была возможность полной автоматизации процесса. Каждый день получать ключ трансляции и втыкать его в тот же OBS, крайне скучно. Я не люблю рутину. В тех же одноклассниках трансляции создаются автоматически.
Для инстаграма я нашел два работающих решения. Во всяком случае это решения, которые заработали у меня. Если бы второе решение я нашел первым, то первое я бы не стал искать ибо мне больше всего подходит именно второй вариант. Но я расскажу про оба. А там уже сами выберите для себя более подходящий. Но прежде поговорим о самом насущном вопросе блокировки аккаунта.
Содержание
Работают ли эти способы в рамках ограничений в России?
После того, как все ресурсы Meta, признанной экстремисткой, были заблокированы и многие любители книгалиц и нельзяграмов, вынуждены были отказаться от них. Другие же продолжают пользоваться этими ресурсами при помощи VPN сервисов. И эти люди также задумываются о реализации трансляций в instagram при помощи OBS. Эта задача и до блокировок была весьма не тривиальна, а ко всем прочим трудностям добавилась необходимость обхода блокировки.
Оба способа, приведенных в этой статье продолжают работать. Для первого необходимо VPN подключение на компьютере, а для второго достаточно прикупить сервер с местоположением за рубежом. Кстати сервер зарубежом может решить проблему блокировки и в первом случае, ведь можно прикупить самый дешевый сервер и настроить там VPN. В итоге получите относительно недорогой стабильный VPN без «соседей» и рекламы. Можно настроить VPN-сервер таким образом, что и реклама на сайтах будет блокироваться.
У меня лично прикуплен сервер как в Финляндии, так и в Польше, дополнительно поднят сервер с TORом. Последний, если вы не в курсе, имеет возможность смены IP адреса. Это необходимо когда имеем дело с ресурсами, которые любят чуть-что блокировать пользователей по IP адресу. TOR прекрасно помогает решить эту проблему.
В случае с instagram использование одного VPN как на телефоне, так и на компьютере или сервере, позволяет иметь одно местоположение с программой, которая выдает нам ключ трансляции. Наверняка вы вкурсе что бечсплатные VPN часто меняют IP. Получается что одно приложение выходит из Латвии, приложение для трансляции из Германии и т.д. Система безопасности instagram моментально сходит с ума и велика вероятность блокировки аккаунта, которая снимается подтверждениями через почту или телефон и последующей сменой пароля. Занятие не самое веселое, особенно если надо авторизовывать всякие марафонные аккаунты.
Блокирует ли инстаграм аккаунты за трансляции с OBS и т.д.?
За сами трансляции инстаграм не блокирует аккаунты. Инстаграм блокирует аккаунты за подозрительную деятельность. Но аккаунт блокируется для нашей же безопасности. Система безопасности считает что мы где-то просрали пароль и злоумышленники получили доступ к нашему аккаунту.
Какие действия вызывают подозрение у систему безопасности?
Частые авторизации. Некоторые скрипты при каждом запуске авторизуются. Инстаграм считает это подозрительным. Но за это он блокирует не аккаунт, а устройство по IP с которого приходят авторизации. Если использовать прокси, например Tor, то в этом случае заблокируют аккаунт, посчитав что польователя взломали.
В этой ситуации приложение Streamon самое подходящее решение ибо авторизация происходит только один раз и дальше мы запрашиваем только ключи трансляции. С точки зрения инстаграма это нормальное поведение и наш аккаунт не подвергнется блокировке.
Streamon
Готовое приложение для разных операционных систем. но подойдет для тех, кому надо просто выйти в эфир с помощью ПО типа OBS и т.д. Работа с приложением элементарна и не требует инструкции. Просто вбиваем логин с паролем, авторизуемся. После этого в поле указываем тему прямого эфира.

И жмем кнопку Start Live Stream.

Копируем сервер и ключ трансляции, вставляем в OBS и начинаем эфир. Все просто. Не забудьте нажать в Streamon кнопку завершающую прямой эфир.
У этого приложения есть один нюанс. В нем не работает двузфакторная авторизация. Не знаю в чем проблема, но приложение выдает ошибку, когда вбиваешь проверочный код.
Скачать Streamon: https://getstreamon.com/downloads
It’s A Gram Live
It’s A Gram Live — это библиотека на языке Python. Данное решение подойдет тем, кто хочет автоматизировать запуск прямых трансляций без необходимости ручного управления. Именно такое решение я искал все это время.
Скачать библиотеку можно по ссылке https://github.com/harrypython/itsagramlive
Для установки библиотеки в системе достаточно выполнить команду:
pip3 install ItsAGramLive
Добавляем в файл:
from ItsAGramLive import ItsAGramLive
Создаем сессию:
live = ItsAGramLive(username='user', password='pass' )
Где вместо user и pass имя пользователя и пароль.
Теперь рассмотрим основные методы.
live.login() — авторизуемся.
live.create_broadcast() — создаем трансляцию
live.start_broadcast() — запускаем трансляцию
live.end_broadcast() — останавливаем трансляцию
live.stream_server — сервер для трансляции
live.stream_key — ключ трансляции
Дополнительные методы:
live.add_post_live_to_igtv( ‘Комментарий’, ‘Заголовок’ ) — завершает трансляцию и публикует её в IGTV. Редко правда когда срабатывает. Иногда может повесить скрипт в бесконечный цикл запросов. Если так необходимо сохранить эфир в IGTV, то лучше записать эфир и потом загрузить его отдельно.
live.mute_comments() — отключает комментарии
live.unmute_comments() — включает комментарии
live.get_viewer_list() — возвращает информацию о зрителях. Метод вернет массив из двух массивов. Первый массив содержит никнеймы, а второй идентификаторы. С помощью этого метода я собираю статистику и пишу её в файл SQLite3. Удобная штука, когда нужна база данных, а разворачивать сервер типа MySQL избыточно. После каждого эфира можно посмотреть охват, кто дольше всех смотрел и т.д.
Информацию по остальным методам читайте на странице проекта или в исходном коде модуля. По сути их не так много.
Имея на вооружении такой инструмент мы можем вытворять с трансляцией все что угодно.
Поскольку у меня работает сервер RTMP на Nginx, то мне остается только взять поток с сервера и отправить его в инстаграм.
ffmpeg -i 'rtmp://<server-ip>/live/stream' -t 00:30:00 -vcodec libx264 -preset:v ultrafast -acodec aac -f flv '{stream_server}{stream_key}'".format( stream_server=live.stream_server, stream_key=live.stream_key )
Если вдруг решите скопировать команду выше, то учтите что параметр -t 00:30:00 указывает программе отработать 30 минут и отключиться, тем самым завершить прямой эфир.
Поскольку видео трансляции в альбомной ориентации, а инстаграм ожидает видео в портретной ориентации, видео в трансляции обрезалось и видно было только середину. Очевидно что никто не будет менять формат видео для инстаграма. Решение оказалось простым: повернуть видео на 90 градусов по часовой стрелке. Для этого ffmpeg надо указать аргумент с соответствующим параметром: -vf ‘transpose=1’
Вот результат:

Смотрится это конечно странно, но зато не нужно ничего обрезать или масштабировать. Подписчику достаточно просто повернуть телефон в горизонтальное положение и можно смотреть видео.
Внимание! При частых авторизациях возможна блокировка IP. Использование прокси не поможет. Система безопасности посчитает что вы просрали свой пароль и потребует сменить.
Если вам нужна автоматизация, но вы не программист, то с удовольствие помогу. Если задача тривиальная, то это обойдется не дорого.