Men煤
Con conteo de tiempo de visualizaci贸n. Y pasando por alto las limitaciones de API 馃ぃ.
Publicado domingo, 11 de abril de 2021
Hace un tiempo decid铆 hacer un concurso para celebrar el hecho que hab铆a logrado el gran hito del afiliado en Twitch. La idea el concurso era simple: quienes me siguieran en el canal, pod铆an unirse al concurso a trav茅s del comando !sorteo, y donde mientras m谩s horas pase viendo el canal m谩s oportunidades tendr铆a de ganar; luego de todo obtendr铆a una lista que luego ser铆a parte de una gran t贸mbola. B谩sicamente un programa de fidelizaci贸n, un win-win para mi (como streamer) y los viewers.
En el papel sonaba simple: Streamlabs me ayudar铆a a la gesti贸n, a trav茅s de los m贸dulos Giveaway y Loyalty, donde todo se juntar铆a para obtener la lista de participantes.
El tema que estos m贸dulos no conversan entre s铆, o sea si quer铆a hacer que el usuario tenga m谩s tickets a partir del tiempo, no era posible. Debido a esto es que tom茅 la decisi贸n de hacer un script que tomase toda la informaci贸n de las APIs y las juntara para obtener la lista.
La parte de obtener la lista de followers fue un tanto truculenta dado que la API de Twitch no se explica muy bien - gracias a Stackoverflow por las pistas. La parte de la API de Streamlab fue la gran piedra: para usar la API de Loyalty deb铆a solicitar un permito de forma manual, el cual no me aseguraba la autorizaci贸n, ya que no ten铆a una aplicaci贸n publica para demostrar su uso.
Como soluci贸n al problema es que us茅 directamente las API que usa el dashboard web de Streamlabs para acceder la informaci贸n; a pesar de la falta de documentaci贸n es bastante f谩cil de comprender.
Luego de definitivamente sortear todas las dificultades me puse manos a la obra. El c贸digo original es de marzo de 2021, pero la versi贸n que ver谩n tiene un par de modificaciones para hacerlo m谩s configurable a las necesidades.
Antes de todo y se ir al c贸digo, se entiende que si est谩s aqu铆 tendr谩s por lo menos una cuenta de Twtich y potencialmente una cuenta de Streamlabs. Si no las tienes, empieza creando una cuenta en Twitch y luego ocupala para iniciar sesi贸n en Streamlabs, y enlaza la informaci贸n de tu canal.
Necesitamos extraer unos valores desde ambos servicios. Para el caso de las credenciales de Twitch:
Para el caso de Streamlabs necesitamos usar un par de m贸dulos antes de obtener la clave:
/mod Streamlabs
en el chat de tu canal.Con todo creado necesitamos obtener las claves de Streamlabs:
https://streamlabs.com/api/v5/giveaway/active
, es del tipo GET.Ahora a lo que venimos...
El script lo hice en base a Python 3.8.5, as铆 que no aseguro su funcionamiento en versiones inferiores. En mi caso lo hice funcionar en dicha versi贸n de Python, bajo el kernel de Ubuntu en el WSL 1 (ambiente virtual de Windows 10).
Por otro lado es necesario definir algunos valores en la variables de entorno dentro del archivo .env dentro de la misma carpeta donde pondremos el c贸digo.
https://api.twitch.tv/v5/
.Finalmente, el c贸digo.
El c贸digo b谩sicamente realiza varias request a diversas API y junta la informaci贸n. Espec铆ficamente a la API de Twitch para obtener la lista de followers, y la API de Streamlabs para obtener los usuarios en el concurso y la informaci贸n del sistema de lealtad. Con todos los datos, comprueba cuales de los usuarios participantes del sorteo son efectivamente seguidores del canal, y sobre esa lista a帽ade los puntos del sistema de fidelidad.
El c贸digo contiene algunos par谩metros que podemos usar.
--loyalty
: Usar el sistema de lealtad en Streamlabs, para usar los puntos asociados. Si no est谩 presente todos los usuarios quedan con el puntaje por defecto (1).--ltime
: Para el sistema de letaltad, ocupar el tiempo de visualizaci贸n como sistema de puntos.--lmin
: M铆nimo de puntos de otorgar.--lmax
: M谩ximo de puntos a otorgar.--outfolder
: Cambiar el nombre de la carpeta de los archivos de salida.Una vez ejecutado obtendremos varios archivos de salida.
Con todos estos archivos podemos hacer gr谩ficas, o usarlo en servicios de sorteo como AppSorteos o Wheel of names.
La gracia de esto es que podemos adaptarlos para sorteos a largo plazo en funci贸n de la fidelidad, o bien usarlo para un sorteo breve para solo quienes se unan en el momento - aunque en dicho caso el m贸dulo Giveaway puede ser suficiente por si solo. 馃憣
Con 馃崼 desde Santiago, Chile
ChocoChipsLab 2023