Аутентификация для стриминга на twitch.tv

Telegram dou#techПідписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

У меня есть десктопная программа, которая броадкастит видео на сайты типа justin.tv. Но вот недавно justin был куплен амазоном и весь его сервис был перенесен на twitch.tv.
Соответственно, код в проге надо переделывать. Первое с чем столкнулся, это аутентификация.

Для justin.tv это делалась через вот эту урл

http://www.justin.tv/live/stream_key?login=%s&password=%s"

Перешерстил их весь API, но так и не нашел аналогичную урл для twitch.tv.

Может, кто подскажет — существует ли она вообще для этого сайта?

Согласно их API аутентификация (github.com/...​/master/authentication.md) должна идти через их access token.
Чтобы получить этот токен, нам надо создать аккаунт на twitch.tv и зарегистрировать там свою программу. После чего, мы получаем client_id.
Далее просто, используя их client_id, пароль и имя пользователя, мы формируем запрос на сервер и получаем это токен, через который мы проходим
аутентификацию.

Теперь у меня сомнения:

— будет ли это работать для других пользователей, ведь client_id привязан к конкретному аккаунту? Т.е., пользователь должен стримить в свой собственный канал.
— Вся эта аутентификация настроена для работы с аккаунтом, а будет ли она работать для стриминга по RTMP?

С их саппортом связывался, отвечают очень медленно и одними отписками, а проект надо срочно закрывать.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

IMHO проще открыть в браузере консоль разработчика (Firebug если это лисица) и посмотреть куда и что летит во вкладке «Network». Обычно достаточно увидеть эти запросы и нет необходимости смотреть скрипты.

Лучше так, чем снифером. Потому что там же из консоли можешь и отправть свои запросы скриптом в 1 строчку, и увидеть что прилетает в ответ.

На тот случай, если api заумное, либо публикация api отстаёт от фактической реализации.

я не думаю, что это будет легче, да и работа браузера, немного отличается от работы приложения

В принципе временное решение есть — в акке пользователя есть stream key, симбиоз пароля/имени пользователя. Можно заставить пользователя вводить его вместо их. Так делают многие проги, н-р Xsplit. Потом этот ключ забивается в RTMP урл для стриминга. Проверял — работает без всяких там токенов

Это токен не пользователя, а приложения. Разрешает ему доступаться к определенному контенту и выполнять определенные действия для пользователя.
Пользователь будет попадать в свою песочницу, разумеется.
Так же работают вообще все известные мне сервисы начиная от гугла и заканчивая вк и дропбоксом, только там еще OAuth2.0 для пущей веселости.

Это токен не пользователя, а приложения.

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

Совершенно верно.
Т.е. по первому вопросу ответ однозначно да (с поправкой на возможные баги в их системе)
По второму — неизвестно и надо пробовать, я с этим сервисом не работал (все почему-то стремятся собственные поднимать).

спасибо, похоже надо пробовать, хотя времени на это почти нет

Той самий токен тільки для одного користувача, тому що само по ньому йде авторазація.
До того ж не забувай про затримку на трвічі біля 30-60 секунд.

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

Ну це як в торентах. Користувачу видається ключ по якому ідентифікують його. Тоб-то у кожного окристувача свій ключ.

upd: До тогож не плутайте аутентифікацію для стрімінгу та аутентифікацію для інших дій. В тому числі oAuth для IRC авторизації.

не понял, как мне в приложении пройти аутентификацию для стриминга

Ключ: yadi.sk/...i/OenXp1rob27EC
прям туди кидай: rtmp://live-ams.justin.tv/app/{user_key}

P.S. Краще зразу на YouTube заточюйте.

спасибо, хотя до этого я сам дошел — см. выше мой пост о stream key. Вот бы было здорово программно вычислять этот ключ, но похоже API этого не дает
С ютубом у меня все работает.

Ааа ну так. Я теж не знайшов. Да і программі яка запросила би логін пароль а не тільки ключ — яб не довіряв.

Підписатись на коментарі